mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2026-01-06 15:54:22 +01:00
Rough sketching out of a hello world using our refactored autogpt library. See the tracking issue here: #4770. # Run instructions There are two client applications for Auto-GPT included. ## CLI Application 🌟 **This is the reference application I'm working with for now** 🌟 The first app is a straight CLI application. I have not done anything yet to port all the friendly display stuff from the `logger.typewriter_log` logic. - [Entry Point](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_app/cli.py) - [Client Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_app/main.py) To run, you first need a settings file. Run ``` python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py make-settings ``` where `REPOSITORY_ROOT` is the root of the Auto-GPT repository on your machine. This will write a file called `default_agent_settings.yaml` with all the user-modifiable configuration keys to `~/auto-gpt/default_agent_settings.yml` and make the `auto-gpt` directory in your user directory if it doesn't exist). At a bare minimum, you'll need to set `openai.credentials.api_key` to your OpenAI API Key to run the model. You can then run Auto-GPT with ``` python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py make-settings ``` to launch the interaction loop. ## CLI Web App The second app is still a CLI, but it sets up a local webserver that the client application talks to rather than invoking calls to the Agent library code directly. This application is essentially a sketch at this point as the folks who were driving it have had less time (and likely not enough clarity) to proceed. - [Entry Point](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/cli.py) - [Client Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/client/client.py) - [Server API](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/server/api.py) To run, you still need to generate a default configuration. You can do ``` python REPOSITORY_ROOT/autogpt/core/runner/cli_web_app/cli.py make-settings ``` It invokes the same command as the bare CLI app, so follow the instructions above about setting your API key. To run, do ``` python REPOSITORY_ROOT/autogpt/core/runner/cli_web_app/cli.py client ``` This will launch a webserver and then start the client cli application to communicate with it. ⚠️ I am not actively developing this application. It is a very good place to get involved if you have web application design experience and are looking to get involved in the re-arch. --------- Co-authored-by: David Wurtz <davidjwurtz@gmail.com> Co-authored-by: Media <12145726+rihp@users.noreply.github.com> Co-authored-by: Richard Beales <rich@richbeales.net> Co-authored-by: Daryl Rodrigo <darylrodrigo@gmail.com> Co-authored-by: Daryl Rodrigo <daryl@orkestro.com> Co-authored-by: Swifty <craigswift13@gmail.com> Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
103 lines
3.7 KiB
Python
103 lines
3.7 KiB
Python
# Rules of thumb:
|
|
# - Templates don't add new lines at the end of the string. This is the
|
|
# responsibility of the or a consuming template.
|
|
|
|
####################
|
|
# Planner defaults #
|
|
####################
|
|
|
|
|
|
USER_OBJECTIVE = (
|
|
"Write a wikipedia style article about the project: "
|
|
"https://github.com/significant-gravitas/Auto-GPT"
|
|
)
|
|
|
|
|
|
ABILITIES = (
|
|
'analyze_code: Analyze Code, args: "code": "<full_code_string>"',
|
|
'execute_python_file: Execute Python File, args: "filename": "<filename>"',
|
|
'append_to_file: Append to file, args: "filename": "<filename>", "text": "<text>"',
|
|
'delete_file: Delete file, args: "filename": "<filename>"',
|
|
'list_files: List Files in Directory, args: "directory": "<directory>"',
|
|
'read_file: Read a file, args: "filename": "<filename>"',
|
|
'write_to_file: Write to file, args: "filename": "<filename>", "text": "<text>"',
|
|
'google: Google Search, args: "query": "<query>"',
|
|
'improve_code: Get Improved Code, args: "suggestions": "<list_of_suggestions>", "code": "<full_code_string>"',
|
|
'browse_website: Browse Website, args: "url": "<url>", "question": "<what_you_want_to_find_on_website>"',
|
|
'write_tests: Write Tests, args: "code": "<full_code_string>", "focus": "<list_of_focus_areas>"',
|
|
'get_hyperlinks: Get hyperlinks, args: "url": "<url>"',
|
|
'get_text_summary: Get text summary, args: "url": "<url>", "question": "<question>"',
|
|
'task_complete: Task Complete (Shutdown), args: "reason": "<reason>"',
|
|
)
|
|
|
|
|
|
# Plan Prompt
|
|
# -----------
|
|
|
|
|
|
PLAN_PROMPT_CONSTRAINTS = (
|
|
"~4000 word limit for short term memory. Your short term memory is short, so "
|
|
"immediately save important information to files.",
|
|
"If you are unsure how you previously did something or want to recall past "
|
|
"events, thinking about similar events will help you remember.",
|
|
"No user assistance",
|
|
"Exclusively use the commands listed below e.g. command_name",
|
|
)
|
|
|
|
PLAN_PROMPT_RESOURCES = (
|
|
"Internet access for searches and information gathering.",
|
|
"Long-term memory management.",
|
|
"File output.",
|
|
)
|
|
|
|
PLAN_PROMPT_PERFORMANCE_EVALUATIONS = (
|
|
"Continuously review and analyze your actions to ensure you are performing to"
|
|
" the best of your abilities.",
|
|
"Constructively self-criticize your big-picture behavior constantly.",
|
|
"Reflect on past decisions and strategies to refine your approach.",
|
|
"Every command has a cost, so be smart and efficient. Aim to complete tasks in"
|
|
" the least number of steps.",
|
|
"Write all code to a file",
|
|
)
|
|
|
|
|
|
PLAN_PROMPT_RESPONSE_DICT = {
|
|
"thoughts": {
|
|
"text": "thought",
|
|
"reasoning": "reasoning",
|
|
"plan": "- short bulleted\n- list that conveys\n- long-term plan",
|
|
"criticism": "constructive self-criticism",
|
|
"speak": "thoughts summary to say to user",
|
|
},
|
|
"command": {"name": "command name", "args": {"arg name": "value"}},
|
|
}
|
|
|
|
PLAN_PROMPT_RESPONSE_FORMAT = (
|
|
"You should only respond in JSON format as described below\n"
|
|
"Response Format:\n"
|
|
"{response_json_structure}\n"
|
|
"Ensure the response can be parsed by Python json.loads"
|
|
)
|
|
|
|
PLAN_TRIGGERING_PROMPT = (
|
|
"Determine which next command to use, and respond using the format specified above:"
|
|
)
|
|
|
|
PLAN_PROMPT_MAIN = (
|
|
"{header}\n\n"
|
|
"GOALS:\n\n{goals}\n\n"
|
|
"Info:\n{info}\n\n"
|
|
"Constraints:\n{constraints}\n\n"
|
|
"Commands:\n{commands}\n\n"
|
|
"Resources:\n{resources}\n\n"
|
|
"Performance Evaluations:\n{performance_evaluations}\n\n"
|
|
"You should only respond in JSON format as described below\n"
|
|
"Response Format:\n{response_json_structure}\n"
|
|
"Ensure the response can be parsed by Python json.loads"
|
|
)
|
|
|
|
|
|
###########################
|
|
# Parameterized templates #
|
|
###########################
|