-
Notifications
You must be signed in to change notification settings - Fork 44.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prompt Profiles #3954
Comments
Like the idea. And i feel that my PR #3375 (wich you just mentioned) already pretty much covers it. I guess we'll need to wait for the re-architecting to settle down before having it merged, but yes, i think it can be a good way to handle it. |
Not having looked at your commits in detail yet, do you already support a custom directory or how difficult would it be to support a corresponding structure and with sub directories and a Json profile to tell the system which prompt directory to use? |
For now, it just reads everything for a single yaml file. |
This way we could organize things right inside the repo (imagine having 10+ different prompt profiles supported) - and if/when a prompt profile spans multiple files, a folder is probably better to separate things? |
The PROMPT_SETTINGS_FILE can be configured to a full path. Without touching my PR, you could have the main prompt_settings.yaml in the project main folder and any other file everywhere you want. Even outside the project. Also, it's perfectly fine if an user makes his own config, or maybe even a plugin, but i don't think the project should include different prompt profiles unless there's a specific need (the "dynamic prompts" feature from #3937 could be one case) Maybe this can evolve in a plugin wich lets the user download different prompts from a repository for different needs |
Quoting you from #3858:
It doesn't comes to my mind any use case where the same prompt should have different files, at least right now. Also, switching profile on-the-fly isn't needed right now, because those prompts are only used in the first LLM call |
Thanks for clarifying, indeed that sounds already very useful "as is".
I guess we will see how things unfold, if I am trying to over-engineer a solution or if you are not seeing all use-cases yet :-)
I am not sure if something as essential as a "prompt manager" should be a separate plugin - like you said, it would also be one of the lowest building blocks to support other LLM backends. Being able to neatly structure those according to the type of LLM using folders would seem natural to me - but we will see.
We already have different prompt sets that people say perform "better" than the default prompt. These just aren't being accepted/reviewed currently due to a lack of benchmarks/testing. With your work (prompt profiles), we could easily test different prompts and compare them using the same underlying ai_settings.yaml files to see which prompt profiles perform better/worse than others.
Maybe, we should brainstorm some of the goals/non-goals here, and get @merwanehamadi involved, because he's the one actively pushing towards multi-prompt support for CI / regression testing purposes (which I wholeheartedly agree with!). PS: Just to be clear about it, I am not suggesting to change your PR based on my feedback, we will need to wait for feedback from others obviously - if I am the only one foreseeing a directory based profile prompt approach, I am most likely to be mistake here :-) |
I think it's covered as is - the only thing where we were not quite on the same page is the sub-folder idea, and we haven't yet heard back from others. So at this point, it's more proabably more important to get SOME portion of this added, rather than any particular hypothetical version. Can still be revisited/reopened if the need arises. |
Duplicates
Summary 💡
Based on previous comments: #3858 (comment)
Thus, the idea is to add support for so called "Prompt Profiles". A profile would be the equivalent of a sub-directory that contains a single profiles.json file to list sub-directories with other prompt configs.
Given that prompt-related PRs are such a common thing but due to the lack of testing data also are so controversial, how about coming up with support for "prompt profiles", as in a shared folder with sub-folders that contain profiles for different prompts, so that people can tinker with different profiles without stepping on anyone's toes ?
This will enable people to experiment with different "prompt profiles", without affecting the stability/usefulness of the whole project. Also, this would present an option to benchmark (#1359) different prompft profiles against each other (#1354). So, if/when a prompt is promoted to become the official/main one, we can simply change a "default_profile" property.
Having this sort of infrastructure in place would also provide a good baseline for regression testing and benchmarking.
It would not directly be the solution proposed in #3858, but probably would be the only solution to have our cake and eat it, while also growing test data ?
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
Background:
Examples 🌈
No response
Motivation 🔦
No response
The text was updated successfully, but these errors were encountered: