Prompt-Promptor(or shorten for ppromptor) is a Python library designed to automatically generate and improve prompts for LLMs. It draws inspiration from autonomous agents like AutoGPT and consists of three agents: Proposer, Evaluator, and Analyzer. These agents work together with human experts to continuously improve the generated prompts.
-
🤖 The use of LLMs to prompt themself by giving few samples.
-
💪 Guidance for OSS LLMs(eg, LLaMA) by more powerful LLMs(eg, GPT4)
-
📈 Continuously improvement.
-
👨👨👧👦 Collaboration with human experts.
-
💼 Experiment management for prompt engineering.
-
🖼 Web GUI interface.
-
🏳️🌈 Open Source.
-
This project is currently in its earily stage, and it is anticipated that there will be major design changes in the future.
-
The main function utilizes an infinite loop to enhance the generation of prompts. If you opt for OpenAI's ChatGPT as Target/Analysis LLMs, kindly ensure that you set a usage limit.
A more detailed class diagram could be found in doc
- Install Package
pip install ppromptor --upgrade
- Clone Repository from Github
git clone https://github.com/pikho/ppromptor.git
- Start Web UI
cd ppromptor
streamlit run ui/app.py
- Install Required Packages
pip install requirements_local_model.txt
- Test if WizardLM can run correctly
cd <path_to_ppromptor>/ppromptor/llms
python wizardlm.py
- Start the Web App
cd <path_to_ppromptor>
streamlit run ui/app.py
-
Load the Demo Project Load
examples/antonyms.db
(default) for demo purposes. This demonstrates how to use ChatGPT to guide WizardLM to generate antonyms for given inputs. -
Configuration In the Configuration tab, set
Target LLM
aswizardlm
if you can infer this model locally. Or choose bothTarget LLM
andAnalysis LLM
aschatgpt
. If chatgpt is used, please provide the OpenAI API Key. -
Load the dataset The demo project has already loaded 5 records. You can add your own dataset.(Optional)
-
Start the Workload Press the
Start
button to activate the workflow. -
Prompt Candidates Generated prompts can be found in the
Prompt Candidates
tab. Users can modify generated prompts by selecting only 1 Candidate, then modifying the prompt, thenCreate Prompt
. This new prompt will be evaluated by Evaluator agent and then keep improving by Analyzer agent. By selecting 2 prompts, we can compare these prompts side by side.
We welcome all kinds of contributions, including new feature requests, bug fixes, new feature implementation, examples, and documentation updates. If you have a specific request, please use the "Issues" section. For other contributions, simply create a pull request (PR). Your participation is highly valued in improving our project. Thank you!