Significant-Gravitas / AutoGPT

AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
https://agpt.co
MIT License
166.45k stars 44.06k forks source link

Centralize all of our prompts in one place so people can change it easily #3858

Closed waynehamadi closed 12 months ago

waynehamadi commented 1 year ago

Duplicates

Summary 💡

We need help from someone to put all of our prompts (text format) in a centralized place visible to everyone. This way people can beat the challenges just by modifying one central place

If interested helping with that please DM me. Discord (merwanehamadi) Join Auto-GPT's discord channel: https://discord.gg/autogpt

anonhostpi commented 1 year ago

I suggest putting the prompts into a dictionary-like config file. I frequently use JSON and YAML for this.

anonhostpi commented 1 year ago

I also recommend storing the prompts as format/template-strings so they can be formatted dynamically

waynehamadi commented 1 year ago

@Eggrolling-hu is going to take it

Boostrix commented 1 year ago

I also recommend storing the prompts as format/template-strings so they can be formatted dynamically

As mentioned elsewhere, ideally we'd support a dedicated sub-folder for "prompt profiles" with the corresponding json to map directories to each profile - that way, we can have our cake and eat it, and still close 10+ PRs in the process, because these would then all become custom prompt profiles - without any chance to step on anyone's toe. Besides, this would also mean having 10+ different ways to benchmark/test the system in conjunction with different prompts EASILY: https://github.com/Significant-Gravitas/Auto-GPT/pull/1874#issuecomment-1537191222

Dynamic prompts (#3937) will particularly benefit from this capability

waynehamadi commented 1 year ago

@Boostrix yeah great idea. could you create an issue for prompt profiles ?

Boostrix commented 1 year ago

@Boostrix yeah great idea. could you create an issue for prompt profiles ?

DGdev91 commented 1 year ago

There was already my PR, for a couple of weeks ago. #3375 My idea wasn't just moving the prompts in a separate file, i wanted to make them configurable. I used a yaml file, more or less the same code already used for the ai_config file.

I also like Boostrix's idea, and it would be already compatibile with my PR without changing a single bit.

And yes, we can expand it by moving the prompt config files in a different folder and maybe also adding new files for different situations for covering #3937

Boostrix commented 1 year ago

My thought was one top level directory with a Json that then links up sub directories to give those a symbolic name. If this top level directory could be set via a CLI arg or env var, people could also tinker with separate prompt configs outside the project tree

DGdev91 commented 1 year ago

My thought was one top level directory with a Json that then links up sub directories to give those a symbolic name. If this top level directory could be set via a CLI arg or env var, people could also tinker with separate prompt configs outside the project tree

My PR already allows to set the config file to use both in .env and by the CLI (--prompt-settings or -P)

I don't understand why the sub-folder + json structure. We can just set different yaml files as config when needed and put them where we want

Boostrix commented 1 year ago

It was my understanding that prompt configs may span over several files - at which point a folder would seem natural (sharing / maintenance etc) - it's frankly also what I am used to when it comes to thinking about a profile of a complex app (Firefox, libre Office etc). But maybe you're right and a single yaml will suffice?

i18n of a use case specific prompt file set would spring to mind?

Also the dynamic prompting idea is all about adapting prompts as needed, which might involve switching within an active profile?

DGdev91 commented 1 year ago

Let's talk about this in #3954

github-actions[bot] commented 1 year ago

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

github-actions[bot] commented 12 months ago

This issue was closed automatically because it has been stale for 10 days with no activity.