* Clean up prompt generation
* Rename Performance Evaluations to Best Practices
* Move specification of response format from system prompt to Agent.construct_base_prompt
* Clean up PromptGenerator class
* Add debug logging to AIConfig autogeneration
* Clarify prompting and add support for multiple thought processes to Agent
* Use modern material theme for docs
* Further file path fixes, and doc updates to specify when relative paths are expected
* fix: lint
* Remove unwated changes
* Remove comments
---------
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
* Fix and clean up path processing in logs module
* Fix path processing throughout the project
* Fix plugins test
* Fix borky pytest vs mkdir(exist_ok=True)
* Update docs and gitignore for new workspace location
* Fix borky pytest vol.2
* ok james
Changed Colorama.Fore.ORANGE to YELLOW in config.py, As Colorama does not support an ORANGE color. This fixes a fatal error in run.sh when trying to set the API key through the input() method.
Co-authored-by: James Collins <collijk@uw.edu>
* add capability to specify AI config at cmd line
* Make `--ai-goal` multi-parameter
* Fix argument forwarding in run.sh
---------
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
* [Fix] Recover the azure config load function
* [Style] Apply black, isort, mypy, autoflake
* [Fix] Rename the return parameter from 'azure_model_map' to 'azure_model_to_deployment_id_map'
* [Feat] Change the azure config file path to be dynamically configurable
* [Test] Add azure_config and azure deployment_id_for_model
* [Style] Apply black, isort, mypy, autoflake
* [Style] Apply black, isort, mypy, autoflake
* Refactor Azure configuration
- Refactor the `azure_config_file` attribute in the `Config` class to be optional.
- Refactor the `azure_model_to_deployment_id_map` attribute in the `Config` class to be optional and provide default values.
- Update the `get_azure_deployment_id_for_model` function to accept additional parameters.
- Update references to `get_azure_deployment_id_for_model` in `create_text_completion`, `create_chat_completion`, and `get_embedding` functions to pass the required parameters.
* Clean up process for azure
* Docstring
* revert some unneccessary fiddling
* Avoid altering args to models
* Retry on 404s
* Don't permanently change the environment
* Formatting
---------
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: collijk <collijk@uw.edu>
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>
As per
https://github.com/pydantic/pydantic/issues/1729#issuecomment-1300576214,
the implementation of `model_post_init()` is postponed until Pydantic
v2. As a result, the initialization of PluginConfig is being skipped.
This fix calls `plugin.model_post_init()` explicitly.
The recency of the Pydantic v2 release means that some of the other
extensions we use do not support it yet. Specifically, extensions such
as spacy and openapi-python-client are currently limited to Pydantic
versions that are less than 2.0. There may be other extensions that have
the same limitation as well.
---------
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
* Add settings for custom base url and embedding dimension
Making the openai base url and embedding dimension configurable, these are useful to integrate AutoGPT with other models, like LLaMA
* Update to milvus.py to load the configuration also in the init_collection function
* Update radismem.py to get rid of Config() loading
* Update local.py to get rid of Config() loading
* Correct code format (python black)
* Revert DEFAULT_EMBED_DIM name to EMBED_DIM to keep tests valid
* Better description for EMBED_DIM setting
* Set MockConfig to the type Config in Milvus test
* Fix formatting
* Update Milvus test, using Config() instead of building a mock config
* using the last milvus test code from main
* Remove embed_dim , no more needed after #4208
* Add example for OPENAI_BASE_URL
---------
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
* feat: set max token limits for better user experience
* fix: use OPEN_AI_CHAT_MODELS max limits
* fix: use the old default of 8000
* fix: formatting so isort/black checks pass
* fix: avoid circular dependencies
* fix: use better to avoid circular imports
* feat: introduce soft limits and use them
* fix: circular import issue and missing field
* fix: move import to avoid overriding doc comment
* feat: DRY things up and set token limit for fast llm models too
* tests: make linter tests happy
* test: use the max token limits in config.py test
* fix: remove fast token limit from config
* feat: remove smart token limit from config
* fix: remove unused soft_token_limit var
* fix: remove unneeded tests, settings aren't in config anymore
---------
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
* feat: pass config to call_ai_functions in coimmands
* feat: config for read_audio_from_file
* feat: file operations cfg
NOTE: we replaced the CFG in the command enable with TRUE b/c not sure how to handle this yet
* feat: git command conversion
* feat: google search
* feat: image generation
* feat: extract cfg from browser commands
* feat: remove cfg from execute code commands
* fix: file operation related tests
* fix: linting
* fix: tests for read_audio
* fix: test error
* feat: update cassettes
* fix: linting
* fix: test typechecking
* fix: google_search errors if unexpected kw arg is passed
* fix: pass config param to google search test
* fix: agent commands were broken + cassettes
* fix: agent test
* feat: cassettes
* feat: enable/disable logic for commands
* fix: some commands threw errors
* feat: fix tests
* Add new cassettes
* Add new cassettes
* ci: trigger ci
* Update autogpt/commands/execute_code.py
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
* fix prompt
* fix prompt + rebase
* add config remove useless imports
* put back CFG just for download file
* lint
* The signature should be mandatory in the decorator
* black isort
* fix: remove the CFG
* fix: non typed arg
* lint: type some args
* lint: add types for libraries
* Add new cassettes
* fix: windows compatibility
* fix: add config access to decorator
* fix: remove twitter mention
* DDGS search works at 3.0.2 version
* ci: linting
---------
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: kinance <kinance@gmail.com>
* Update remove_color_codes to handle non-string input
The `remove_color_codes` function now accepts any type of input that can be cast to a string. Previously, it was only accepting string input and not casting non-string types to string which was causing errors in some cases.
The changes were made to both logs.py and its corresponding test file.
* Refactor AIConfig to Sanitize Input for Goal Parameters
Details:
- Modified `ai_config.py` to correctly handle and sanitize user input for AI goals and convert them to formatted strings, to fix an issue where some specially formatted ai_settings.yaml files were causing goals to load as list[dict]
- `test_ai_config.py` includes a test for the `sanitize_input` function in `AIConfig` class.
- Removed unnecessary tests from `test_logs.py`
* Update for readabiity
* Update for readabiity
* Updates for conciceness
* Updated tests to confirm AIConfig saves goals as strings
* FIxed trailing space at end of line
---------
Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com>
Co-authored-by: James Collins <collijk@uw.edu>
This properly resets the terminal, ensuring that the red text is red and
the normal text remains unaffected.
Co-authored-by: Richard Beales <rich@richbeales.net>