-
Notifications
You must be signed in to change notification settings - Fork 44.6k
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
refactor(agent/config): Modularize Config
and revive Azure support
#6497
Conversation
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
✅ Deploy Preview for auto-gpt-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
You changed AutoGPT's behaviour. The cassettes have been updated and will be merged to the submodule when this Pull Request gets merged. |
4f5b16e
to
1258b01
Compare
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
You changed AutoGPT's behaviour. The cassettes have been updated and will be merged to the submodule when this Pull Request gets merged. |
…centralized - Refactored the `ConfigBuilder` class to support modular loading and initialization of the configuration from environment variables. - Implemented recursive loading and initialization of nested config objects. - Introduced the `SystemConfiguration` base class to provide common functionality for all system settings. - Added the `from_env` attribute to the `UserConfigurable` decorator to provide environment variable mappings. - Updated the `Config` class and its related classes to inherit from `SystemConfiguration` and use the `UserConfigurable` decorator. - Updated `LoggingConfig` and `TTSConfig` to use the `UserConfigurable` decorator for their fields. - Modified the implementation of the `build_config_from_env` method in `ConfigBuilder` to utilize the new modular and recursive loading and initialization logic. - Updated applicable test cases to reflect the changes in the config loading and initialization logic. This refactor improves the flexibility and maintainability of the configuration loading process by introducing modular and recursive behavior, allowing for easier extension and customization through environment variables.
1258b01
to
a3d74bb
Compare
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
1 similar comment
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
- Move OpenAI API key and other OpenAI credentials from the global config to a new sub-config called OpenAICredentials. - Update the necessary code to use the new OpenAICredentials sub-config instead of the global config when accessing OpenAI credentials. - (Hopefully) unbreak Azure support. - Update azure.yaml.template. - Enable validation of assignment operations on SystemConfiguration and SystemSettings objects.
58eedf6
to
6728ba0
Compare
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
- Added new configuration options for logging and OpenAI usage to .env.template - Removed deprecated configuration options in config/config.py - Updated setup instructions in Docker and general setup documentation to include information on using Azure's OpenAI services
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
- Fix issue with image generation with Dall-E API Additional user context: This commit fixes an issue with image generation using the Dall-E API. The code now correctly retrieves the API key from the agent's legacy configuration.
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
You changed AutoGPT's behaviour. The cassettes have been updated and will be merged to the submodule when this Pull Request gets merged. |
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
Config
and revive Azure support
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
…d update docstrings - Refactor the `schema.py` file in the `autogpt.core.configuration` module. - Added docstring to `SystemConfiguration.from_env()` - Updated docstrings for functions `_get_user_config_values`, `_get_non_default_user_config_values`, `_recursive_init_model`, `_recurse_user_config_fields`, and `_recurse_user_config_values`.
9b6ad16
to
21a36f0
Compare
This PR exceeds the recommended size of 500 lines. Please make sure you are NOT addressing multiple issues with one PR. |
Background
Modular config helps maintainability and manageability of config access throughout the application.
Changes 🏗️
Highlights ✨
Full list of changes
Config
+ConfigBuilder
to support modular loading and initialization of the configuration from environment variables.autogpt.core.configuration.schema
.from_env
attribute to theUserConfigurable
decorator to provide environment variable mappings.LoggingConfig
andTTSConfig
to use theUserConfigurable
decorator for their fields.This refactor improves the flexibility and maintainability of the configuration loading process by introducing modular and recursive behavior, allowing for easier extension and customization through environment variables.
PR Quality Scorecard ✨
+2 pts
+5 pts
+5 pts
+5 pts
-4 pts
+4 pts
+5 pts
-5 pts
agbenchmark
to verify that these changes do not regress performance?+10 pts