diff --git a/.env.template b/.env.template index c678e5d096..f0b3c7cbb5 100644 --- a/.env.template +++ b/.env.template @@ -1,10 +1,16 @@ +# For further descriptions of these settings see docs/configuration/options.md or go to docs.agpt.co + ################################################################################ ### AUTO-GPT - GENERAL SETTINGS ################################################################################ +## OPENAI_API_KEY - OpenAI API Key (Example: my-openai-api-key) +OPENAI_API_KEY=your-openai-api-key + ## EXECUTE_LOCAL_COMMANDS - Allow local command execution (Default: False) -## RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./auto_gpt_workspace (Default: True) # EXECUTE_LOCAL_COMMANDS=False + +## RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./auto_gpt_workspace (Default: True) # RESTRICT_TO_WORKSPACE=True ## USER_AGENT - Define the user-agent used by the requests library to browse website (string) @@ -18,67 +24,41 @@ ## AUTHORISE COMMAND KEY - Key to authorise commands # AUTHORISE_COMMAND_KEY=y + ## EXIT_KEY - Key to exit AUTO-GPT # EXIT_KEY=n -## PLAIN_OUTPUT - Enabeling plain output will disable spinner (Default: False) -## Note: Spinner is used to indicate that Auto-GPT is working on something in the background +## PLAIN_OUTPUT - Plain output, which disables the spinner (Default: False) # PLAIN_OUTPUT=False -## DISABLED_COMMAND_CATEGORIES - The list of categories of commands that are disabled. Each of the below are an option: -## autogpt.commands.analyze_code -## autogpt.commands.audio_text -## autogpt.commands.execute_code -## autogpt.commands.file_operations -## autogpt.commands.git_operations -## autogpt.commands.google_search -## autogpt.commands.image_gen -## autogpt.commands.improve_code -## autogpt.commands.web_selenium -## autogpt.commands.write_tests -## autogpt.app -## autogpt.commands.task_statuses -## For example, to disable coding related features, uncomment the next line -# DISABLED_COMMAND_CATEGORIES=autogpt.commands.analyze_code,autogpt.commands.execute_code,autogpt.commands.git_operations,autogpt.commands.improve_code,autogpt.commands.write_tests +## DISABLED_COMMAND_CATEGORIES - The list of categories of commands that are disabled (Default: None) +# DISABLED_COMMAND_CATEGORIES= ################################################################################ ### LLM PROVIDER ################################################################################ -### OPENAI -## OPENAI_API_KEY - OpenAI API Key (Example: my-openai-api-key) - - -## NOTE: https://platform.openai.com/docs/api-reference/completions -# The temperature setting in language models like GPT controls the balance between predictable and random responses. -# Lower temperature makes the responses more focused and deterministic, while higher temperature makes them more -# creative and varied. The temperature range typically goes from 0 to 2 in OpenAI's implementation. -## ## TEMPERATURE - Sets temperature in OpenAI (Default: 0) -## -### +# TEMPERATURE=0 + +## OPENAI_ORGANIZATION - Your OpenAI Organization key (Default: None) +# OPENAI_ORGANIZATION= ## USE_AZURE - Use Azure OpenAI or not (Default: False) -OPENAI_API_KEY=your-openai-api-key -# TEMPERATURE=0 # USE_AZURE=False -# OPENAI_ORGANIZATION=your-openai-organization-key-if-applicable - -### AZURE -# moved to `azure.yaml.template` ################################################################################ ### LLM MODELS ################################################################################ -## SMART_LLM_MODEL - Smart language model (Default: gpt-4) +## SMART_LLM_MODEL - Smart language model (Default: gpt-3.5-turbo) +# SMART_LLM_MODEL=gpt-3.5-turbo + ## FAST_LLM_MODEL - Fast language model (Default: gpt-3.5-turbo) -# SMART_LLM_MODEL=gpt-4 # FAST_LLM_MODEL=gpt-3.5-turbo -### EMBEDDINGS -## EMBEDDING_MODEL - Model to use for creating embeddings +## EMBEDDING_MODEL - Model to use for creating embeddings # EMBEDDING_MODEL=text-embedding-ada-002 ################################################################################ @@ -100,124 +80,129 @@ OPENAI_API_KEY=your-openai-api-key ### MEMORY ################################################################################ -### MEMORY_BACKEND - Memory backend type -## json_file - Default -## redis - Redis (if configured) -## MEMORY_INDEX - Name of index created in Memory backend (Default: auto-gpt) -# MEMORY_BACKEND=json_file -# MEMORY_INDEX=auto-gpt-memory +### General + +## MEMORY_BACKEND - Memory backend type +# MEMORY_BACKEND=json_file + +## MEMORY_INDEX - Value used in the Memory backend for scoping, naming, or indexing (Default: auto-gpt) +# MEMORY_INDEX=auto-gpt + +### Redis -### REDIS ## REDIS_HOST - Redis host (Default: localhost, use "redis" for docker-compose) -## REDIS_PORT - Redis port (Default: 6379) -## REDIS_PASSWORD - Redis password (Default: "") -## WIPE_REDIS_ON_START - Wipes data / index on start (Default: True) # REDIS_HOST=localhost + +## REDIS_PORT - Redis port (Default: 6379) # REDIS_PORT=6379 + +## REDIS_PASSWORD - Redis password (Default: "") # REDIS_PASSWORD= + +## WIPE_REDIS_ON_START - Wipes data / index on start (Default: True) # WIPE_REDIS_ON_START=True ################################################################################ ### IMAGE GENERATION PROVIDER ################################################################################ -### COMMON SETTINGS -## IMAGE_PROVIDER - Image provider - dalle, huggingface, or sdwebui -## IMAGE_SIZE - Image size (Example: 256) -## Image sizes for dalle: 256, 512, 1024 +### Common + +## IMAGE_PROVIDER - Image provider (Default: dalle) # IMAGE_PROVIDER=dalle + +## IMAGE_SIZE - Image size (Default: 256) # IMAGE_SIZE=256 -### HUGGINGFACE -## HUGGINGFACE_IMAGE_MODEL - Text-to-image model from Huggingface (Default: CompVis/stable-diffusion-v1-4) -## HUGGINGFACE_API_TOKEN - HuggingFace API token (Example: my-huggingface-api-token) -# HUGGINGFACE_IMAGE_MODEL=CompVis/stable-diffusion-v1-4 -# HUGGINGFACE_API_TOKEN=your-huggingface-api-token +### Huggingface (IMAGE_PROVIDER=huggingface) -### STABLE DIFFUSION WEBUI -## SD_WEBUI_AUTH - Stable diffusion webui username:password pair (Example: username:password) -## SD_WEBUI_URL - Stable diffusion webui API URL (Example: http://127.0.0.1:7860) +## HUGGINGFACE_IMAGE_MODEL - Text-to-image model from Huggingface (Default: CompVis/stable-diffusion-v1-4) +# HUGGINGFACE_IMAGE_MODEL=CompVis/stable-diffusion-v1-4 + +## HUGGINGFACE_API_TOKEN - HuggingFace API token (Default: None) +# HUGGINGFACE_API_TOKEN= + +### Stable Diffusion (IMAGE_PROVIDER=sdwebui) + +## SD_WEBUI_AUTH - Stable Diffusion Web UI username:password pair (Default: None) # SD_WEBUI_AUTH= -# SD_WEBUI_URL=http://127.0.0.1:7860 + +## SD_WEBUI_URL - Stable Diffusion Web UI API URL (Default: http://localhost:7860) +# SD_WEBUI_URL=http://localhost:7860 ################################################################################ ### AUDIO TO TEXT PROVIDER ################################################################################ -### HUGGINGFACE -# HUGGINGFACE_AUDIO_TO_TEXT_MODEL=facebook/wav2vec2-base-960h +## AUDIO_TO_TEXT_PROVIDER - Audio-to-text provider (Default: huggingface) +# AUDIO_TO_TEXT_PROVIDER=huggingface + +## HUGGINGFACE_AUDIO_TO_TEXT_MODEL - The model for HuggingFace to use (Default: CompVis/stable-diffusion-v1-4) +# HUGGINGFACE_AUDIO_TO_TEXT_MODEL=CompVis/stable-diffusion-v1-4 ################################################################################ -### GIT Provider for repository actions -################################################################################ - ### GITHUB -## GITHUB_API_KEY - Github API key / PAT (Example: github_pat_123) -## GITHUB_USERNAME - Github username -# GITHUB_API_KEY=github_pat_123 -# GITHUB_USERNAME=your-github-username +################################################################################ + +## GITHUB_API_KEY - Github API key / PAT (Default: None) +# GITHUB_API_KEY= + +## GITHUB_USERNAME - Github username (Default: None) +# GITHUB_USERNAME= ################################################################################ ### WEB BROWSING ################################################################################ -### BROWSER ## HEADLESS_BROWSER - Whether to run the browser in headless mode (default: True) -## USE_WEB_BROWSER - Sets the web-browser driver to use with selenium (default: chrome). -## Note: set this to either 'chrome', 'firefox', 'safari' or 'edge' depending on your current browser # HEADLESS_BROWSER=True + +## USE_WEB_BROWSER - Sets the web-browser driver to use with selenium (default: chrome) # USE_WEB_BROWSER=chrome -## BROWSE_CHUNK_MAX_LENGTH - When browsing website, define the length of chunks to summarize (in number of tokens, excluding the response. 75 % of FAST_TOKEN_LIMIT is usually wise ) + +## BROWSE_CHUNK_MAX_LENGTH - When browsing website, define the length of chunks to summarize (Default: 3000) # BROWSE_CHUNK_MAX_LENGTH=3000 -## BROWSE_SPACY_LANGUAGE_MODEL is used to split sentences. Install additional languages via pip, and set the model name here. Example Chinese: python -m spacy download zh_core_web_sm + +## BROWSE_SPACY_LANGUAGE_MODEL - spaCy language model](https://spacy.io/usage/models) to use when creating chunks. (Default: en_core_web_sm) # BROWSE_SPACY_LANGUAGE_MODEL=en_core_web_sm -### GOOGLE -## GOOGLE_API_KEY - Google API key (Example: my-google-api-key) -## CUSTOM_SEARCH_ENGINE_ID - Custom search engine ID (Example: my-custom-search-engine-id) -# GOOGLE_API_KEY=your-google-api-key -# CUSTOM_SEARCH_ENGINE_ID=your-custom-search-engine-id +## GOOGLE_API_KEY - Google API key (Default: None) +# GOOGLE_API_KEY= + +## GOOGLE_CUSTOM_SEARCH_ENGINE_ID - Google custom search engine ID (Default: None) +# GOOGLE_CUSTOM_SEARCH_ENGINE_ID= ################################################################################ -### TTS PROVIDER +### TEXT TO SPEECH PROVIDER ################################################################################ -### MAC OS -## USE_MAC_OS_TTS - Use Mac OS TTS or not (Default: False) -# USE_MAC_OS_TTS=False +## TEXT_TO_SPEECH_PROVIDER - Which Text to Speech provider to use (Default: gtts) +# TEXT_TO_SPEECH_PROVIDER=gtts -### STREAMELEMENTS -## USE_BRIAN_TTS - Use Brian TTS or not (Default: False) -# USE_BRIAN_TTS=False +### Only if TEXT_TO_SPEECH_PROVIDER=streamelements +## STREAMELEMENTS_VOICE - Voice to use for StreamElements (Default: Brian) +# STREAMELEMENTS_VOICE=Brian -### ELEVENLABS -## ELEVENLABS_API_KEY - Eleven Labs API key (Example: my-elevenlabs-api-key) -## ELEVENLABS_VOICE_1_ID - Eleven Labs voice 1 ID (Example: my-voice-id-1) -## ELEVENLABS_VOICE_2_ID - Eleven Labs voice 2 ID (Example: my-voice-id-2) -# ELEVENLABS_API_KEY=your-elevenlabs-api-key -# ELEVENLABS_VOICE_1_ID=your-voice-id-1 -# ELEVENLABS_VOICE_2_ID=your-voice-id-2 +### Only if TEXT_TO_SPEECH_PROVIDER=elevenlabs +## ELEVENLABS_API_KEY - Eleven Labs API key (Default: None) +# ELEVENLABS_API_KEY= -################################################################################ -### TWITTER API -################################################################################ - -# TW_CONSUMER_KEY= -# TW_CONSUMER_SECRET= -# TW_ACCESS_TOKEN= -# TW_ACCESS_TOKEN_SECRET= +## ELEVENLABS_VOICE_ID - Eleven Labs voice ID (Example: None) +# ELEVENLABS_VOICE_ID= ################################################################################ ### ALLOWLISTED PLUGINS ################################################################################ -#ALLOWLISTED_PLUGINS - Sets the listed plugins that are allowed (Example: plugin1,plugin2,plugin3) -#DENYLISTED_PLUGINS - Sets the listed plugins that are not allowed (Example: plugin1,plugin2,plugin3) -ALLOWLISTED_PLUGINS= -DENYLISTED_PLUGINS= +## ALLOWLISTED_PLUGINS - Sets the listed plugins that are allowed (Default: None) +# ALLOWLISTED_PLUGINS= + +## DENYLISTED_PLUGINS - Sets the listed plugins that are not allowed (Default: None) +# DENYLISTED_PLUGINS= ################################################################################ -### CHAT PLUGIN SETTINGS +### CHAT MESSAGES ################################################################################ -# CHAT_MESSAGES_ENABLED - Enable chat messages (Default: False) + +## CHAT_MESSAGES_ENABLED - Enable chat messages (Default: False) # CHAT_MESSAGES_ENABLED=False diff --git a/autogpt/commands/audio_text.py b/autogpt/commands/audio_text.py index ba4fb3474d..57aa1a8895 100644 --- a/autogpt/commands/audio_text.py +++ b/autogpt/commands/audio_text.py @@ -44,6 +44,17 @@ def read_audio(audio: bytes, config: Config) -> str: Returns: str: The text from the audio """ + if config.audio_to_text_provider == "huggingface": + text = read_huggingface_audio(audio, config) + if text: + return f"The audio says: {text}" + else: + return f"Error, couldn't convert audio to text" + + return "Error: No audio to text provider given" + + +def read_huggingface_audio(audio: bytes, config: Config) -> str: model = config.huggingface_audio_to_text_model api_url = f"https://api-inference.huggingface.co/models/{model}" api_token = config.huggingface_api_token @@ -60,5 +71,5 @@ def read_audio(audio: bytes, config: Config) -> str: data=audio, ) - text = json.loads(response.content.decode("utf-8"))["text"] - return f"The audio says: {text}" + response_json = json.loads(response.content.decode("utf-8")) + return response_json.get("text") diff --git a/autogpt/commands/google_search.py b/autogpt/commands/google_search.py index aa34861d30..f15885ee61 100644 --- a/autogpt/commands/google_search.py +++ b/autogpt/commands/google_search.py @@ -56,7 +56,8 @@ def google_search(query: str, config: Config, num_results: int = 8) -> str: "google", "Google Search", '"query": ""', - lambda config: bool(config.google_api_key) and bool(config.custom_search_engine_id), + lambda config: bool(config.google_api_key) + and bool(config.google_custom_search_engine_id), "Configure google_api_key and custom_search_engine_id.", ) def google_official_search( @@ -78,7 +79,7 @@ def google_official_search( try: # Get the Google API key and Custom Search Engine ID from the config file api_key = config.google_api_key - custom_search_engine_id = config.custom_search_engine_id + custom_search_engine_id = config.google_custom_search_engine_id # Initialize the Custom Search API service service = build("customsearch", "v1", developerKey=api_key) diff --git a/autogpt/config/config.py b/autogpt/config/config.py index 753c99fc90..3737308cf8 100644 --- a/autogpt/config/config.py +++ b/autogpt/config/config.py @@ -59,7 +59,7 @@ class Config(metaclass=Singleton): "PROMPT_SETTINGS_FILE", "prompt_settings.yaml" ) self.fast_llm_model = os.getenv("FAST_LLM_MODEL", "gpt-3.5-turbo") - self.smart_llm_model = os.getenv("SMART_LLM_MODEL", "gpt-4") + self.smart_llm_model = os.getenv("SMART_LLM_MODEL", "gpt-3.5-turbo") self.embedding_model = os.getenv("EMBEDDING_MODEL", "text-embedding-ada-002") self.browse_spacy_language_model = os.getenv( @@ -87,22 +87,34 @@ class Config(metaclass=Singleton): openai.organization = self.openai_organization self.elevenlabs_api_key = os.getenv("ELEVENLABS_API_KEY") - self.elevenlabs_voice_1_id = os.getenv("ELEVENLABS_VOICE_1_ID") - self.elevenlabs_voice_2_id = os.getenv("ELEVENLABS_VOICE_2_ID") + # ELEVENLABS_VOICE_1_ID is deprecated and included for backwards-compatibility + self.elevenlabs_voice_id = os.getenv( + "ELEVENLABS_VOICE_ID", os.getenv("ELEVENLABS_VOICE_1_ID") + ) + self.streamelements_voice = os.getenv("STREAMELEMENTS_VOICE", "Brian") - self.use_mac_os_tts = False - self.use_mac_os_tts = os.getenv("USE_MAC_OS_TTS") + # Backwards-compatibility shim for deprecated env variables + if os.getenv("USE_MAC_OS_TTS"): + default_tts_provider = "macos" + elif self.elevenlabs_api_key: + default_tts_provider = "elevenlabs" + elif os.getenv("USE_BRIAN_TTS"): + default_tts_provider = "streamelements" + else: + default_tts_provider = "gtts" - self.chat_messages_enabled = os.getenv("CHAT_MESSAGES_ENABLED") == "True" - - self.use_brian_tts = False - self.use_brian_tts = os.getenv("USE_BRIAN_TTS") + self.text_to_speech_provider = os.getenv( + "TEXT_TO_SPEECH_PROVIDER", default_tts_provider + ) self.github_api_key = os.getenv("GITHUB_API_KEY") self.github_username = os.getenv("GITHUB_USERNAME") self.google_api_key = os.getenv("GOOGLE_API_KEY") - self.custom_search_engine_id = os.getenv("CUSTOM_SEARCH_ENGINE_ID") + # CUSTOM_SEARCH_ENGINE_ID is deprecated and included for backwards-compatibility + self.google_custom_search_engine_id = os.getenv( + "GOOGLE_CUSTOM_SEARCH_ENGINE_ID", os.getenv("CUSTOM_SEARCH_ENGINE_ID") + ) self.image_provider = os.getenv("IMAGE_PROVIDER") self.image_size = int(os.getenv("IMAGE_SIZE", 256)) @@ -110,6 +122,7 @@ class Config(metaclass=Singleton): self.huggingface_image_model = os.getenv( "HUGGINGFACE_IMAGE_MODEL", "CompVis/stable-diffusion-v1-4" ) + self.audio_to_text_provider = os.getenv("AUDIO_TO_TEXT_PROVIDER", "huggingface") self.huggingface_audio_to_text_model = os.getenv( "HUGGINGFACE_AUDIO_TO_TEXT_MODEL" ) @@ -153,6 +166,8 @@ class Config(metaclass=Singleton): else: self.plugins_denylist = [] + self.chat_messages_enabled = os.getenv("CHAT_MESSAGES_ENABLED") == "True" + def get_azure_deployment_id_for_model(self, model: str) -> str: """ Returns the relevant deployment id for the model specified. @@ -234,7 +249,7 @@ class Config(metaclass=Singleton): def set_elevenlabs_voice_1_id(self, value: str) -> None: """Set the ElevenLabs Voice 1 ID value.""" - self.elevenlabs_voice_1_id = value + self.elevenlabs_voice_id = value def set_elevenlabs_voice_2_id(self, value: str) -> None: """Set the ElevenLabs Voice 2 ID value.""" @@ -246,7 +261,7 @@ class Config(metaclass=Singleton): def set_custom_search_engine_id(self, value: str) -> None: """Set the custom search engine id value.""" - self.custom_search_engine_id = value + self.google_custom_search_engine_id = value def set_debug_mode(self, value: bool) -> None: """Set the debug mode value.""" diff --git a/autogpt/speech/eleven_labs.py b/autogpt/speech/eleven_labs.py index c1e3aff52e..5952508dfb 100644 --- a/autogpt/speech/eleven_labs.py +++ b/autogpt/speech/eleven_labs.py @@ -38,11 +38,11 @@ class ElevenLabsSpeech(VoiceBase): "xi-api-key": cfg.elevenlabs_api_key, } self._voices = default_voices.copy() - if cfg.elevenlabs_voice_1_id in voice_options: - cfg.elevenlabs_voice_1_id = voice_options[cfg.elevenlabs_voice_1_id] + if cfg.elevenlabs_voice_id in voice_options: + cfg.elevenlabs_voice_id = voice_options[cfg.elevenlabs_voice_id] if cfg.elevenlabs_voice_2_id in voice_options: cfg.elevenlabs_voice_2_id = voice_options[cfg.elevenlabs_voice_2_id] - self._use_custom_voice(cfg.elevenlabs_voice_1_id, 0) + self._use_custom_voice(cfg.elevenlabs_voice_id, 0) self._use_custom_voice(cfg.elevenlabs_voice_2_id, 1) def _use_custom_voice(self, voice, voice_index) -> None: diff --git a/autogpt/speech/say.py b/autogpt/speech/say.py index 4cc82e198a..06f580f0c0 100644 --- a/autogpt/speech/say.py +++ b/autogpt/speech/say.py @@ -4,10 +4,10 @@ from threading import Semaphore from autogpt.config.config import Config from autogpt.speech.base import VoiceBase -from autogpt.speech.brian import BrianSpeech from autogpt.speech.eleven_labs import ElevenLabsSpeech from autogpt.speech.gtts import GTTSVoice from autogpt.speech.macos_tts import MacOSTTS +from autogpt.speech.stream_elements_speech import StreamElementsSpeech _QUEUE_SEMAPHORE = Semaphore( 1 @@ -33,14 +33,14 @@ def say_text(text: str, voice_index: int = 0) -> None: def _get_voice_engine(config: Config) -> tuple[VoiceBase, VoiceBase]: """Get the voice engine to use for the given configuration""" - default_voice_engine = GTTSVoice() - if config.elevenlabs_api_key: + tts_provider = config.text_to_speech_provider + if tts_provider == "elevenlabs": voice_engine = ElevenLabsSpeech() - elif config.use_mac_os_tts == "True": + elif tts_provider == "macos": voice_engine = MacOSTTS() - elif config.use_brian_tts == "True": - voice_engine = BrianSpeech() + elif tts_provider == "streamelements": + voice_engine = StreamElementsSpeech() else: voice_engine = GTTSVoice() - return default_voice_engine, voice_engine + return GTTSVoice(), voice_engine diff --git a/autogpt/speech/brian.py b/autogpt/speech/stream_elements_speech.py similarity index 77% rename from autogpt/speech/brian.py rename to autogpt/speech/stream_elements_speech.py index f63c206b22..9019cf0954 100644 --- a/autogpt/speech/brian.py +++ b/autogpt/speech/stream_elements_speech.py @@ -7,23 +7,24 @@ from playsound import playsound from autogpt.speech.base import VoiceBase -class BrianSpeech(VoiceBase): - """Brian speech module for autogpt""" +class StreamElementsSpeech(VoiceBase): + """Streamelements speech module for autogpt""" def _setup(self) -> None: """Setup the voices, API key, etc.""" - def _speech(self, text: str, _: int = 0) -> bool: - """Speak text using Brian with the streamelements API + def _speech(self, text: str, voice: str, _: int = 0) -> bool: + """Speak text using the streamelements API Args: text (str): The text to speak + voice (str): The voice to use Returns: bool: True if the request was successful, False otherwise """ tts_url = ( - f"https://api.streamelements.com/kappa/v2/speech?voice=Brian&text={text}" + f"https://api.streamelements.com/kappa/v2/speech?voice={voice}&text={text}" ) response = requests.get(tts_url) diff --git a/docs/configuration/options.md b/docs/configuration/options.md new file mode 100644 index 0000000000..125a3a453e --- /dev/null +++ b/docs/configuration/options.md @@ -0,0 +1,54 @@ +# Configuration + +Configuration is controlled through the `Config` object. You can set configuration variables via the `.env` file. If you don't have a `.env` file, create a copy of `.env.template` in your `Auto-GPT` folder and name it `.env`. + +## Environment Variables + +- `AI_SETTINGS_FILE`: Location of AI Settings file. Default: ai_settings.yaml +- `ALLOWLISTED_PLUGINS`: List of plugins allowed. Optional. +- `AUDIO_TO_TEXT_PROVIDER`: Audio To Text Provider. Only option currently is `huggingface`. Default: huggingface +- `AUTHORISE_COMMAND_KEY`: Key response accepted when authorising commands. Default: y +- `BROWSE_CHUNK_MAX_LENGTH`: When browsing website, define the length of chunks to summarize. Default: 3000 +- `BROWSE_SPACY_LANGUAGE_MODEL`: [spaCy language model](https://spacy.io/usage/models) to use when creating chunks. Default: en_core_web_sm +- `CHAT_MESSAGES_ENABLED`: Enable chat messages. Optional +- `DENYLISTED_PLUGINS`: List of plugins not allowed. Optional. +- `DISABLED_COMMAND_CATEGORIES`: Command categories to disable. Command categories are Python module names, e.g. autogpt.commands.analyze_code. See the directory `autogpt/commands` in the source for all command modules. Default: None +- `ELEVENLABS_API_KEY`: ElevenLabs API Key. Optional. +- `ELEVENLABS_VOICE_ID`: ElevenLabs Voice ID. Optional. +- `EMBEDDING_MODEL`: LLM Model to use for embedding tasks. Default: text-embedding-ada-002 +- `EXECUTE_LOCAL_COMMANDS`: If shell commands should be executed locally. Default: False +- `EXIT_KEY`: Exit key accepted to exit. Default: n +- `FAST_LLM_MODEL`: LLM Model to use for most tasks. Default: gpt-3.5-turbo +- `GITHUB_API_KEY`: [Github API Key](https://github.com/settings/tokens). Optional. +- `GITHUB_USERNAME`: GitHub Username. Optional. +- `GOOGLE_API_KEY`: Google API key. Optional. +- `GOOGLE_CUSTOM_SEARCH_ENGINE_ID`: [Google custom search engine ID](https://programmablesearchengine.google.com/controlpanel/all). Optional. +- `HEADLESS_BROWSER`: Use a headless browser while Auto-GPT uses a web browser. Setting to `False` will allow you to see Auto-GPT operate the browser. Default: True +- `HUGGINGFACE_API_TOKEN`: HuggingFace API, to be used for both image generation and audio to text. Optional. +- `HUGGINGFACE_AUDIO_TO_TEXT_MODEL`: HuggingFace audio to text model. Default: CompVis/stable-diffusion-v1-4 +- `HUGGINGFACE_IMAGE_MODEL`: HuggingFace model to use for image generation. Default: CompVis/stable-diffusion-v1-4 +- `IMAGE_PROVIDER`: Image provider. Options are `dalle`, `huggingface`, and `sdwebui`. Default: dalle +- `IMAGE_SIZE`: Default size of image to generate. Default: 256 +- `MEMORY_BACKEND`: Memory back-end to use. Currently `json_file` is the only supported and enabled backend. Default: json_file +- `MEMORY_INDEX`: Value used in the Memory backend for scoping, naming, or indexing. Default: auto-gpt +- `OPENAI_API_KEY`: *REQUIRED*- Your [OpenAI API Key](https://platform.openai.com/account/api-keys). +- `OPENAI_ORGANIZATION`: Organization ID in OpenAI. Optional. +- `PLAIN_OUTPUT`: Plain output, which disables the spinner. Default: False +- `PROMPT_SETTINGS_FILE`: Location of Prompt Settings file. Default: prompt_settings.yaml +- `REDIS_HOST`: Redis Host. Default: localhost +- `REDIS_PASSWORD`: Redis Password. Optional. Default: +- `REDIS_PORT`: Redis Port. Default: 6379 +- `RESTRICT_TO_WORKSPACE`: The restrict file reading and writing to the workspace directory. Default: True +- `SD_WEBUI_AUTH`: Stable Diffusion Web UI username:password pair. Optional. +- `SD_WEBUI_URL`: Stable Diffusion Web UI URL. Default: http://localhost:7860 +- `SHELL_ALLOWLIST`: List of shell commands that ARE allowed to be executed by Auto-GPT. Only applies if `SHELL_COMMAND_CONTROL` is set to `allowlist`. Default: None +- `SHELL_COMMAND_CONTROL`: Whether to use `allowlist` or `denylist` to determine what shell commands can be executed (Default: denylist) +- `SHELL_DENYLIST`: List of shell commands that ARE NOT allowed to be executed by Auto-GPT. Only applies if `SHELL_COMMAND_CONTROL` is set to `denylist`. Default: sudo,su +- `SMART_LLM_MODEL`: LLM Model to use for "smart" tasks. Default: gpt-3.5-turbo +- `STREAMELEMENTS_VOICE`: StreamElements voice to use. Default: Brian +- `TEMPERATURE`: Value of temperature given to OpenAI. Value from 0 to 2. Lower is more deterministic, higher is more random. See https://platform.openai.com/docs/api-reference/completions/create#completions/create-temperature +- `TEXT_TO_SPEECH_PROVIDER`: Text to Speech Provider. Options are `gtts`, `macos`, `elevenlabs`, and `streamelements`. Default: gtts +- `USER_AGENT`: User-Agent given when browsing websites. Default: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36" +- `USE_AZURE`: Use Azure's LLM Default: False +- `USE_WEB_BROWSER`: Which web browser to use. Options are `chrome`, `firefox`, `safari` or `edge` Default: chrome +- `WIPE_REDIS_ON_START`: Wipes data / index on start. Default: True \ No newline at end of file diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index 27daedcd34..9a95cef1a8 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -20,7 +20,7 @@ def test_initial_values(config: Config): assert config.continuous_mode == False assert config.speak_mode == False assert config.fast_llm_model == "gpt-3.5-turbo" - assert config.smart_llm_model == "gpt-4" + assert config.smart_llm_model == "gpt-3.5-turbo" def test_set_continuous_mode(config: Config):