From 59f353ae0612ebb2ee7ce69955ec2c96a195a03f Mon Sep 17 00:00:00 2001 From: James Collins Date: Sat, 8 Jul 2023 08:56:45 -0700 Subject: [PATCH 01/33] Organize the configuration args (#4913) * Organize the configuration args * Remove duplication in setting config defaults --------- Co-authored-by: Reinier van der Leer --- autogpt/config/config.py | 233 +++++++++++++++++++-------------------- 1 file changed, 112 insertions(+), 121 deletions(-) diff --git a/autogpt/config/config.py b/autogpt/config/config.py index 05590eb6..7cb578ed 100644 --- a/autogpt/config/config.py +++ b/autogpt/config/config.py @@ -8,83 +8,130 @@ from typing import Dict, Optional, Union import yaml from colorama import Fore +from pydantic import Field from autogpt.core.configuration.schema import Configurable, SystemSettings from autogpt.plugins.plugins_config import PluginsConfig AZURE_CONFIG_FILE = os.path.join(os.path.dirname(__file__), "../..", "azure.yaml") +PLUGINS_CONFIG_FILE = os.path.join( + os.path.dirname(__file__), "../..", "plugins_config.yaml" +) GPT_4_MODEL = "gpt-4" GPT_3_MODEL = "gpt-3.5-turbo" class Config(SystemSettings): - fast_llm: str - smart_llm: str - continuous_mode: bool - skip_news: bool + name: str = "Auto-GPT configuration" + description: str = "Default configuration for the Auto-GPT application." + ######################## + # Application Settings # + ######################## + skip_news: bool = False + skip_reprompt: bool = False + authorise_key: str = "y" + exit_key: str = "n" + debug_mode: bool = False + plain_output: bool = False + chat_messages_enabled: bool = True + # TTS configuration + speak_mode: bool = False + text_to_speech_provider: str = "gtts" + streamelements_voice: str = "Brian" + elevenlabs_voice_id: Optional[str] = None + + ########################## + # Agent Control Settings # + ########################## + # Paths + ai_settings_file: str = "ai_settings.yaml" + prompt_settings_file: str = "prompt_settings.yaml" workspace_path: Optional[str] = None file_logger_path: Optional[str] = None - debug_mode: bool - plugins_dir: str - plugins_config: PluginsConfig - continuous_limit: int - speak_mode: bool - skip_reprompt: bool - allow_downloads: bool - exit_key: str - plain_output: bool - disabled_command_categories: list[str] - shell_command_control: str - shell_denylist: list[str] - shell_allowlist: list[str] - ai_settings_file: str - prompt_settings_file: str - embedding_model: str - browse_spacy_language_model: str + # Model configuration + fast_llm: str = "gpt-3.5-turbo" + smart_llm: str = "gpt-4" + temperature: float = 0 + openai_functions: bool = False + embedding_model: str = "text-embedding-ada-002" + browse_spacy_language_model: str = "en_core_web_sm" + # Run loop configuration + continuous_mode: bool = False + continuous_limit: int = 0 + + ########## + # Memory # + ########## + memory_backend: str = "json_file" + memory_index: str = "auto-gpt-memory" + redis_host: str = "localhost" + redis_port: int = 6379 + redis_password: str = "" + wipe_redis_on_start: bool = True + + ############ + # Commands # + ############ + # General + disabled_command_categories: list[str] = Field(default_factory=list) + # File ops + restrict_to_workspace: bool = True + allow_downloads: bool = False + # Shell commands + shell_command_control: str = "denylist" + execute_local_commands: bool = False + shell_denylist: list[str] = Field(default_factory=lambda: ["sudo", "su"]) + shell_allowlist: list[str] = Field(default_factory=list) + # Text to image + image_provider: Optional[str] = None + huggingface_image_model: str = "CompVis/stable-diffusion-v1-4" + sd_webui_url: Optional[str] = "http://localhost:7860" + image_size: int = 256 + # Audio to text + audio_to_text_provider: str = "huggingface" + huggingface_audio_to_text_model: Optional[str] = None + # Web browsing + selenium_web_browser: str = "chrome" + selenium_headless: bool = True + user_agent: str = "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" + + ################### + # Plugin Settings # + ################### + plugins_dir: str = "plugins" + plugins_config_file: str = PLUGINS_CONFIG_FILE + plugins_config: PluginsConfig = Field( + default_factory=lambda: PluginsConfig(plugins={}) + ) + plugins: list[str] = Field(default_factory=list) + plugins_allowlist: list[str] = Field(default_factory=list) + plugins_denylist: list[str] = Field(default_factory=list) + plugins_openai: list[str] = Field(default_factory=list) + + ############### + # Credentials # + ############### + # OpenAI openai_api_key: Optional[str] = None - openai_organization: Optional[str] = None - temperature: float - use_azure: bool - azure_config_file: Optional[str] = None - azure_model_to_deployment_id_map: Optional[Dict[str, str]] = None - execute_local_commands: bool - restrict_to_workspace: bool openai_api_type: Optional[str] = None openai_api_base: Optional[str] = None openai_api_version: Optional[str] = None - openai_functions: bool + openai_organization: Optional[str] = None + use_azure: bool = False + azure_config_file: Optional[str] = AZURE_CONFIG_FILE + azure_model_to_deployment_id_map: Optional[Dict[str, str]] = None + # Elevenlabs elevenlabs_api_key: Optional[str] = None - streamelements_voice: str - text_to_speech_provider: str + # Github github_api_key: Optional[str] = None github_username: Optional[str] = None + # Google google_api_key: Optional[str] = None google_custom_search_engine_id: Optional[str] = None - image_provider: Optional[str] = None - image_size: int + # Huggingface huggingface_api_token: Optional[str] = None - huggingface_image_model: str - audio_to_text_provider: str - huggingface_audio_to_text_model: Optional[str] = None - sd_webui_url: Optional[str] = None + # Stable Diffusion sd_webui_auth: Optional[str] = None - selenium_web_browser: str - selenium_headless: bool - user_agent: str - memory_backend: str - memory_index: str - redis_host: str - redis_port: int - redis_password: str - wipe_redis_on_start: bool - plugins_allowlist: list[str] - plugins_denylist: list[str] - plugins_openai: list[str] - plugins_config_file: str - chat_messages_enabled: bool - elevenlabs_voice_id: Optional[str] = None - plugins: list[str] - authorise_key: str def get_azure_kwargs(self, model: str) -> dict[str, str]: """Get the kwargs for the Azure API.""" @@ -138,73 +185,7 @@ class Config(SystemSettings): class ConfigBuilder(Configurable[Config]): - default_plugins_config_file = os.path.join( - os.path.dirname(os.path.abspath(__file__)), "..", "..", "plugins_config.yaml" - ) - - elevenlabs_api_key = os.getenv("ELEVENLABS_API_KEY") - if os.getenv("USE_MAC_OS_TTS"): - default_tts_provider = "macos" - elif elevenlabs_api_key: - default_tts_provider = "elevenlabs" - elif os.getenv("USE_BRIAN_TTS"): - default_tts_provider = "streamelements" - else: - default_tts_provider = "gtts" - - default_settings = Config( - name="Default Server Config", - description="This is a default server configuration", - smart_llm="gpt-4", - fast_llm="gpt-3.5-turbo", - continuous_mode=False, - continuous_limit=0, - skip_news=False, - debug_mode=False, - plugins_dir="plugins", - plugins_config=PluginsConfig(plugins={}), - speak_mode=False, - skip_reprompt=False, - allow_downloads=False, - exit_key="n", - plain_output=False, - disabled_command_categories=[], - shell_command_control="denylist", - shell_denylist=["sudo", "su"], - shell_allowlist=[], - ai_settings_file="ai_settings.yaml", - prompt_settings_file="prompt_settings.yaml", - embedding_model="text-embedding-ada-002", - browse_spacy_language_model="en_core_web_sm", - temperature=0, - use_azure=False, - azure_config_file=AZURE_CONFIG_FILE, - execute_local_commands=False, - restrict_to_workspace=True, - openai_functions=False, - streamelements_voice="Brian", - text_to_speech_provider=default_tts_provider, - image_size=256, - huggingface_image_model="CompVis/stable-diffusion-v1-4", - audio_to_text_provider="huggingface", - sd_webui_url="http://localhost:7860", - selenium_web_browser="chrome", - selenium_headless=True, - user_agent="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", - memory_backend="json_file", - memory_index="auto-gpt-memory", - redis_host="localhost", - redis_port=6379, - wipe_redis_on_start=True, - plugins_allowlist=[], - plugins_denylist=[], - plugins_openai=[], - plugins_config_file=default_plugins_config_file, - chat_messages_enabled=True, - plugins=[], - authorise_key="y", - redis_password="", - ) + default_settings = Config() @classmethod def build_config_from_env(cls) -> Config: @@ -274,6 +255,16 @@ class ConfigBuilder(Configurable[Config]): config_dict["elevenlabs_voice_id"] = os.getenv( "ELEVENLABS_VOICE_ID", os.getenv("ELEVENLABS_VOICE_1_ID") ) + elevenlabs_api_key = os.getenv("ELEVENLABS_API_KEY") + if os.getenv("USE_MAC_OS_TTS"): + default_tts_provider = "macos" + elif elevenlabs_api_key: + default_tts_provider = "elevenlabs" + elif os.getenv("USE_BRIAN_TTS"): + default_tts_provider = "streamelements" + else: + default_tts_provider = "gtts" + config_dict["text_to_speech_provider"] = default_tts_provider config_dict["plugins_allowlist"] = _safe_split(os.getenv("ALLOWLISTED_PLUGINS")) config_dict["plugins_denylist"] = _safe_split(os.getenv("DENYLISTED_PLUGINS")) From 426b7d12dad4d73778f14e5735482e50a38ab159 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sat, 8 Jul 2023 16:02:20 +0000 Subject: [PATCH 02/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index 4485d191..ff3f1135 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit 4485d191a4c989053af99d56470d9e805e4d3d47 +Subproject commit ff3f113557d6857345a07962fe5c95ed273eca25 From f6da992b3e520fbd4e588e3dd3e41c8d4ff0641b Mon Sep 17 00:00:00 2001 From: James Collins Date: Sat, 8 Jul 2023 09:27:43 -0700 Subject: [PATCH 03/33] Drop AbstractSingleton as a parent class of the vector memory (#4901) * Drop AbstractSingleton as a parent class of the vector memory * Forgot pytest fixture in integration tests * Revert typo --- autogpt/memory/vector/providers/base.py | 3 +-- tests/integration/memory/test_json_file_memory.py | 6 ------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/autogpt/memory/vector/providers/base.py b/autogpt/memory/vector/providers/base.py index dc4dbf3c..aa233228 100644 --- a/autogpt/memory/vector/providers/base.py +++ b/autogpt/memory/vector/providers/base.py @@ -6,13 +6,12 @@ import numpy as np from autogpt.config.config import Config from autogpt.logs import logger -from autogpt.singleton import AbstractSingleton from .. import MemoryItem, MemoryItemRelevance from ..utils import Embedding, get_embedding -class VectorMemoryProvider(MutableSet[MemoryItem], AbstractSingleton): +class VectorMemoryProvider(MutableSet[MemoryItem]): @abc.abstractmethod def __init__(self, config: Config): pass diff --git a/tests/integration/memory/test_json_file_memory.py b/tests/integration/memory/test_json_file_memory.py index e60a0766..38cd26c8 100644 --- a/tests/integration/memory/test_json_file_memory.py +++ b/tests/integration/memory/test_json_file_memory.py @@ -8,12 +8,6 @@ from autogpt.memory.vector import JSONFileMemory, MemoryItem from autogpt.workspace import Workspace -@pytest.fixture(autouse=True) -def cleanup_sut_singleton(): - if JSONFileMemory in JSONFileMemory._instances: - del JSONFileMemory._instances[JSONFileMemory] - - def test_json_memory_init_without_backing_file(config: Config, workspace: Workspace): index_file = workspace.root / f"{config.memory_index}.json" From a6f4fa441683c0b9ffad580f1b7801d28d366241 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sat, 8 Jul 2023 16:32:28 +0000 Subject: [PATCH 04/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index ff3f1135..d1814b6d 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit ff3f113557d6857345a07962fe5c95ed273eca25 +Subproject commit d1814b6d3a4c2b12bd329363f09c0e1c1800ffa1 From 4f87f709044c3dc0382ccfe4db15f32c43c12c2c Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sat, 8 Jul 2023 18:55:59 +0200 Subject: [PATCH 05/33] Add slow test report to CI --- .github/workflows/ci.yml | 3 ++- .github/workflows/docker-ci.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e21d1d7..825a4939 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,7 +148,8 @@ jobs: - name: Run pytest with coverage run: | - pytest -n auto --cov=autogpt --cov-branch --cov-report term-missing --cov-report xml \ + pytest -v --cov=autogpt --cov-branch --cov-report term-missing --cov-report xml \ + --numprocesses=4 --durations=10 \ tests/unit tests/integration tests/challenges python tests/challenges/utils/build_current_score.py env: diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index 3da88891..7de4c248 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -109,7 +109,8 @@ jobs: set +e test_output=$( docker run --env CI --env OPENAI_API_KEY --entrypoint python ${{ env.IMAGE_NAME }} -m \ - pytest -n auto --cov=autogpt --cov-branch --cov-report term-missing \ + pytest -v --cov=autogpt --cov-branch --cov-report term-missing \ + --numprocesses=4 --durations=10 \ tests/unit tests/integration 2>&1 ) test_failure=$? From a38d400207c7827a2ea7c8eda627171a20e76342 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sat, 8 Jul 2023 17:01:01 +0000 Subject: [PATCH 06/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index d1814b6d..4d2c06d9 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit d1814b6d3a4c2b12bd329363f09c0e1c1800ffa1 +Subproject commit 4d2c06d9262b0e6a0ea3d064b239d76c4dabd9a0 From 89c1f2d0c01961f92a02b48ef863efbf37279f68 Mon Sep 17 00:00:00 2001 From: James Collins Date: Sat, 8 Jul 2023 14:50:12 -0700 Subject: [PATCH 07/33] Remove dead agent manager (#4900) * Remove dead agent manager --------- Co-authored-by: Reinier van der Leer --- autogpt/agent/__init__.py | 3 +- autogpt/agent/agent_manager.py | 145 ------------------------------- prompt_settings.yaml | 1 - tests/unit/test_agent_manager.py | 70 --------------- 4 files changed, 1 insertion(+), 218 deletions(-) delete mode 100644 autogpt/agent/agent_manager.py delete mode 100644 tests/unit/test_agent_manager.py diff --git a/autogpt/agent/__init__.py b/autogpt/agent/__init__.py index e928af22..90d1148c 100644 --- a/autogpt/agent/__init__.py +++ b/autogpt/agent/__init__.py @@ -1,4 +1,3 @@ from autogpt.agent.agent import Agent -from autogpt.agent.agent_manager import AgentManager -__all__ = ["Agent", "AgentManager"] +__all__ = ["Agent"] diff --git a/autogpt/agent/agent_manager.py b/autogpt/agent/agent_manager.py deleted file mode 100644 index eaecbf3b..00000000 --- a/autogpt/agent/agent_manager.py +++ /dev/null @@ -1,145 +0,0 @@ -"""Agent manager for managing GPT agents""" -from __future__ import annotations - -from autogpt.config import Config -from autogpt.llm.base import ChatSequence -from autogpt.llm.chat import Message, create_chat_completion -from autogpt.singleton import Singleton - - -class AgentManager(metaclass=Singleton): - """Agent manager for managing GPT agents""" - - def __init__(self, config: Config): - self.next_key = 0 - self.agents: dict[ - int, tuple[str, list[Message], str] - ] = {} # key, (task, full_message_history, model) - self.config = config - - # Create new GPT agent - # TODO: Centralise use of create_chat_completion() to globally enforce token limit - - def create_agent( - self, task: str, creation_prompt: str, model: str - ) -> tuple[int, str]: - """Create a new agent and return its key - - Args: - task: The task to perform - creation_prompt: Prompt passed to the LLM at creation - model: The model to use to run this agent - - Returns: - The key of the new agent - """ - messages = ChatSequence.for_model(model, [Message("user", creation_prompt)]) - - for plugin in self.config.plugins: - if not plugin.can_handle_pre_instruction(): - continue - if plugin_messages := plugin.pre_instruction(messages.raw()): - messages.extend([Message(**raw_msg) for raw_msg in plugin_messages]) - # Start GPT instance - agent_reply = create_chat_completion( - prompt=messages, config=self.config - ).content - - messages.add("assistant", agent_reply) - - plugins_reply = "" - for i, plugin in enumerate(self.config.plugins): - if not plugin.can_handle_on_instruction(): - continue - if plugin_result := plugin.on_instruction([m.raw() for m in messages]): - sep = "\n" if i else "" - plugins_reply = f"{plugins_reply}{sep}{plugin_result}" - - if plugins_reply and plugins_reply != "": - messages.add("assistant", plugins_reply) - key = self.next_key - # This is done instead of len(agents) to make keys unique even if agents - # are deleted - self.next_key += 1 - - self.agents[key] = (task, list(messages), model) - - for plugin in self.config.plugins: - if not plugin.can_handle_post_instruction(): - continue - agent_reply = plugin.post_instruction(agent_reply) - - return key, agent_reply - - def message_agent(self, key: str | int, message: str) -> str: - """Send a message to an agent and return its response - - Args: - key: The key of the agent to message - message: The message to send to the agent - - Returns: - The agent's response - """ - task, messages, model = self.agents[int(key)] - - # Add user message to message history before sending to agent - messages = ChatSequence.for_model(model, messages) - messages.add("user", message) - - for plugin in self.config.plugins: - if not plugin.can_handle_pre_instruction(): - continue - if plugin_messages := plugin.pre_instruction([m.raw() for m in messages]): - messages.extend([Message(**raw_msg) for raw_msg in plugin_messages]) - - # Start GPT instance - agent_reply = create_chat_completion( - prompt=messages, config=self.config - ).content - - messages.add("assistant", agent_reply) - - plugins_reply = agent_reply - for i, plugin in enumerate(self.config.plugins): - if not plugin.can_handle_on_instruction(): - continue - if plugin_result := plugin.on_instruction([m.raw() for m in messages]): - sep = "\n" if i else "" - plugins_reply = f"{plugins_reply}{sep}{plugin_result}" - # Update full message history - if plugins_reply and plugins_reply != "": - messages.add("assistant", plugins_reply) - - for plugin in self.config.plugins: - if not plugin.can_handle_post_instruction(): - continue - agent_reply = plugin.post_instruction(agent_reply) - - return agent_reply - - def list_agents(self) -> list[tuple[str | int, str]]: - """Return a list of all agents - - Returns: - A list of tuples of the form (key, task) - """ - - # Return a list of agent keys and their tasks - return [(key, task) for key, (task, _, _) in self.agents.items()] - - def delete_agent(self, key: str | int) -> bool: - """Delete an agent from the agent manager - - Args: - key: The key of the agent to delete - - Returns: - True if successful, False otherwise - """ - - try: - del self.agents[int(key)] - return True - except KeyError: - return False diff --git a/prompt_settings.yaml b/prompt_settings.yaml index 244886b5..342d67b9 100644 --- a/prompt_settings.yaml +++ b/prompt_settings.yaml @@ -7,7 +7,6 @@ constraints: [ resources: [ 'Internet access for searches and information gathering.', 'Long Term memory management.', - 'GPT-3.5 powered Agents for delegation of simple tasks.', 'File output.' ] performance_evaluations: [ diff --git a/tests/unit/test_agent_manager.py b/tests/unit/test_agent_manager.py deleted file mode 100644 index 113771f7..00000000 --- a/tests/unit/test_agent_manager.py +++ /dev/null @@ -1,70 +0,0 @@ -import pytest - -from autogpt.agent.agent_manager import AgentManager -from autogpt.llm import ChatModelResponse -from autogpt.llm.chat import create_chat_completion -from autogpt.llm.providers.openai import OPEN_AI_CHAT_MODELS - - -@pytest.fixture -def agent_manager(config): - # Hack, real gross. Singletons are not good times. - yield AgentManager(config) - del AgentManager._instances[AgentManager] - - -@pytest.fixture -def task(): - return "translate English to French" - - -@pytest.fixture -def prompt(): - return "Translate the following English text to French: 'Hello, how are you?'" - - -@pytest.fixture -def model(): - return "gpt-3.5-turbo" - - -@pytest.fixture(autouse=True) -def mock_create_chat_completion(mocker, config): - mock_create_chat_completion = mocker.patch( - "autogpt.agent.agent_manager.create_chat_completion", - wraps=create_chat_completion, - ) - mock_create_chat_completion.return_value = ChatModelResponse( - model_info=OPEN_AI_CHAT_MODELS[config.fast_llm], - content="irrelevant", - function_call={}, - ) - return mock_create_chat_completion - - -def test_create_agent(agent_manager: AgentManager, task, prompt, model): - key, agent_reply = agent_manager.create_agent(task, prompt, model) - assert isinstance(key, int) - assert isinstance(agent_reply, str) - assert key in agent_manager.agents - - -def test_message_agent(agent_manager: AgentManager, task, prompt, model): - key, _ = agent_manager.create_agent(task, prompt, model) - user_message = "Please translate 'Good morning' to French." - agent_reply = agent_manager.message_agent(key, user_message) - assert isinstance(agent_reply, str) - - -def test_list_agents(agent_manager: AgentManager, task, prompt, model): - key, _ = agent_manager.create_agent(task, prompt, model) - agents_list = agent_manager.list_agents() - assert isinstance(agents_list, list) - assert (key, task) in agents_list - - -def test_delete_agent(agent_manager: AgentManager, task, prompt, model): - key, _ = agent_manager.create_agent(task, prompt, model) - success = agent_manager.delete_agent(key) - assert success - assert key not in agent_manager.agents From 6afdd1be1032ab1b0fdfd34b17819ec9594c2e73 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sat, 8 Jul 2023 21:55:26 +0000 Subject: [PATCH 08/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index 4d2c06d9..c2b09d4d 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit 4d2c06d9262b0e6a0ea3d064b239d76c4dabd9a0 +Subproject commit c2b09d4dd9a52cab8ae5e685824285d9e4865bb9 From f6b9e86ccbdf1d6253c7fd66ba6b46eb574be142 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 17:51:32 +0200 Subject: [PATCH 09/33] Fix test_browse_website (#4925) Co-authored-by: merwanehamadi --- tests/integration/test_web_selenium.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_web_selenium.py b/tests/integration/test_web_selenium.py index f98b2971..e900b4b3 100644 --- a/tests/integration/test_web_selenium.py +++ b/tests/integration/test_web_selenium.py @@ -12,6 +12,6 @@ def test_browse_website(agent: Agent, patched_api_requestor: MockerFixture): question = "How to execute a barrel roll" response = browse_website(url, question, agent) - assert "Error" in response + assert "error" in response.lower() # Sanity check that the response is not too long assert len(response) < 200 From 7dc6d736c7cde6ff71333d01c1b0d98ba48ea3b0 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sun, 9 Jul 2023 15:56:28 +0000 Subject: [PATCH 10/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index c2b09d4d..1f853207 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit c2b09d4dd9a52cab8ae5e685824285d9e4865bb9 +Subproject commit 1f853207f5d0928a274b093d4507a219b6c12070 From 1e1eff70bc544dfe6dcb0025cdf72020fa7dff22 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 19:52:59 +0200 Subject: [PATCH 11/33] Rebase `MessageHistory` on `ChatSequence` (#4922) * Rebase `MessageHistory` on `ChatSequence` * Process feedback & make mypy happy --------- Co-authored-by: James Collins --- autogpt/agent/agent.py | 2 +- autogpt/llm/base.py | 55 ++++++++--- autogpt/llm/chat.py | 16 ++- autogpt/llm/utils/token_counter.py | 17 +++- autogpt/memory/message_history.py | 151 ++++++++++++++--------------- tests/unit/test_message_history.py | 12 +-- 6 files changed, 145 insertions(+), 108 deletions(-) diff --git a/autogpt/agent/agent.py b/autogpt/agent/agent.py index 01a1b133..2a8f32ff 100644 --- a/autogpt/agent/agent.py +++ b/autogpt/agent/agent.py @@ -70,7 +70,7 @@ class Agent: ): self.ai_name = ai_name self.memory = memory - self.history = MessageHistory(self) + self.history = MessageHistory.for_model(config.smart_llm, agent=self) self.next_action_count = next_action_count self.command_registry = command_registry self.config = config diff --git a/autogpt/llm/base.py b/autogpt/llm/base.py index 4ff80dc7..5cf4993f 100644 --- a/autogpt/llm/base.py +++ b/autogpt/llm/base.py @@ -1,13 +1,14 @@ from __future__ import annotations +from copy import deepcopy from dataclasses import dataclass, field from math import ceil, floor -from typing import TYPE_CHECKING, List, Literal, Optional, TypedDict +from typing import TYPE_CHECKING, Literal, Optional, Type, TypedDict, TypeVar, overload if TYPE_CHECKING: from autogpt.llm.providers.openai import OpenAIFunctionCall -MessageRole = Literal["system", "user", "assistant"] +MessageRole = Literal["system", "user", "assistant", "function"] MessageType = Literal["ai_response", "action_result"] TText = list[int] @@ -68,15 +69,31 @@ class EmbeddingModelInfo(ModelInfo): embedding_dimensions: int +# Can be replaced by Self in Python 3.11 +TChatSequence = TypeVar("TChatSequence", bound="ChatSequence") + + @dataclass class ChatSequence: """Utility container for a chat sequence""" model: ChatModelInfo - messages: list[Message] = field(default_factory=list) + messages: list[Message] = field(default_factory=list[Message]) - def __getitem__(self, i: int): - return self.messages[i] + @overload + def __getitem__(self, key: int) -> Message: + ... + + @overload + def __getitem__(self: TChatSequence, key: slice) -> TChatSequence: + ... + + def __getitem__(self: TChatSequence, key: int | slice) -> Message | TChatSequence: + if isinstance(key, slice): + copy = deepcopy(self) + copy.messages = self.messages[key] + return copy + return self.messages[key] def __iter__(self): return iter(self.messages) @@ -84,6 +101,14 @@ class ChatSequence: def __len__(self): return len(self.messages) + def add( + self, + message_role: MessageRole, + content: str, + type: MessageType | None = None, + ) -> None: + self.append(Message(message_role, content, type)) + def append(self, message: Message): return self.messages.append(message) @@ -95,21 +120,23 @@ class ChatSequence: self.messages.insert(index, message) @classmethod - def for_model(cls, model_name: str, messages: list[Message] | ChatSequence = []): + def for_model( + cls: Type[TChatSequence], + model_name: str, + messages: list[Message] | ChatSequence = [], + **kwargs, + ) -> TChatSequence: from autogpt.llm.providers.openai import OPEN_AI_CHAT_MODELS if not model_name in OPEN_AI_CHAT_MODELS: raise ValueError(f"Unknown chat model '{model_name}'") - return ChatSequence( - model=OPEN_AI_CHAT_MODELS[model_name], messages=list(messages) + return cls( + model=OPEN_AI_CHAT_MODELS[model_name], messages=list(messages), **kwargs ) - def add(self, message_role: MessageRole, content: str): - self.messages.append(Message(message_role, content)) - @property - def token_length(self): + def token_length(self) -> int: from autogpt.llm.utils import count_message_tokens return count_message_tokens(self.messages, self.model.name) @@ -128,7 +155,7 @@ class ChatSequence: [f"{separator(m.role)}\n{m.content}" for m in self.messages] ) return f""" -============== ChatSequence ============== +============== {__class__.__name__} ============== Length: {self.token_length} tokens; {len(self.messages)} messages {formatted_messages} ========================================== @@ -148,7 +175,7 @@ class LLMResponse: class EmbeddingModelResponse(LLMResponse): """Standard response struct for a response from an embedding model.""" - embedding: List[float] = field(default_factory=list) + embedding: list[float] = field(default_factory=list) def __post_init__(self): if self.completion_tokens_used: diff --git a/autogpt/llm/chat.py b/autogpt/llm/chat.py index e97b7936..cc04eeb1 100644 --- a/autogpt/llm/chat.py +++ b/autogpt/llm/chat.py @@ -93,13 +93,13 @@ def chat_with_ai( # Account for user input (appended later) user_input_msg = Message("user", triggering_prompt) - current_tokens_used += count_message_tokens([user_input_msg], model) + current_tokens_used += count_message_tokens(user_input_msg, model) - current_tokens_used += 500 # Reserve space for new_summary_message + current_tokens_used += agent.history.max_summary_tlength # Reserve space current_tokens_used += 500 # Reserve space for the openai functions TODO improve # Add Messages until the token limit is reached or there are no more messages to add. - for cycle in reversed(list(agent.history.per_cycle(agent.config))): + for cycle in reversed(list(agent.history.per_cycle())): messages_to_add = [msg for msg in cycle if msg is not None] tokens_to_add = count_message_tokens(messages_to_add, model) if current_tokens_used + tokens_to_add > send_token_limit: @@ -115,9 +115,9 @@ def chat_with_ai( new_summary_message, trimmed_messages = agent.history.trim_messages( current_message_chain=list(message_sequence), config=agent.config ) - tokens_to_add = count_message_tokens([new_summary_message], model) + tokens_to_add = count_message_tokens(new_summary_message, model) message_sequence.insert(insertion_index, new_summary_message) - current_tokens_used += tokens_to_add - 500 + current_tokens_used += tokens_to_add - agent.history.max_summary_tlength # FIXME: uncomment when memory is back in use # memory_store = get_memory(config) @@ -143,7 +143,7 @@ def chat_with_ai( ) logger.debug(budget_message) message_sequence.add("system", budget_message) - current_tokens_used += count_message_tokens([message_sequence[-1]], model) + current_tokens_used += count_message_tokens(message_sequence[-1], model) # Append user input, the length of this is accounted for above message_sequence.append(user_input_msg) @@ -157,9 +157,7 @@ def chat_with_ai( ) if not plugin_response or plugin_response == "": continue - tokens_to_add = count_message_tokens( - [Message("system", plugin_response)], model - ) + tokens_to_add = count_message_tokens(Message("system", plugin_response), model) if current_tokens_used + tokens_to_add > send_token_limit: logger.debug(f"Plugin response too long, skipping: {plugin_response}") logger.debug(f"Plugins remaining at stop: {plugin_count - i}") diff --git a/autogpt/llm/utils/token_counter.py b/autogpt/llm/utils/token_counter.py index e34dbd1c..b0791e65 100644 --- a/autogpt/llm/utils/token_counter.py +++ b/autogpt/llm/utils/token_counter.py @@ -1,7 +1,7 @@ """Functions for counting the number of tokens in a message or string.""" from __future__ import annotations -from typing import List +from typing import List, overload import tiktoken @@ -9,8 +9,18 @@ from autogpt.llm.base import Message from autogpt.logs import logger +@overload +def count_message_tokens(messages: Message, model: str = "gpt-3.5-turbo") -> int: + ... + + +@overload +def count_message_tokens(messages: List[Message], model: str = "gpt-3.5-turbo") -> int: + ... + + def count_message_tokens( - messages: List[Message], model: str = "gpt-3.5-turbo-0301" + messages: Message | List[Message], model: str = "gpt-3.5-turbo" ) -> int: """ Returns the number of tokens used by a list of messages. @@ -24,6 +34,9 @@ def count_message_tokens( Returns: int: The number of tokens used by the list of messages. """ + if isinstance(messages, Message): + messages = [messages] + if model.startswith("gpt-3.5-turbo"): tokens_per_message = ( 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n diff --git a/autogpt/memory/message_history.py b/autogpt/memory/message_history.py index c7e8b73a..2459e1f5 100644 --- a/autogpt/memory/message_history.py +++ b/autogpt/memory/message_history.py @@ -2,49 +2,46 @@ from __future__ import annotations import copy import json -from dataclasses import dataclass, field -from typing import TYPE_CHECKING +from dataclasses import dataclass +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from autogpt.agent import Agent from autogpt.config import Config from autogpt.json_utils.utilities import extract_json_from_response -from autogpt.llm.base import ChatSequence, Message, MessageRole, MessageType +from autogpt.llm.base import ChatSequence, Message from autogpt.llm.providers.openai import OPEN_AI_CHAT_MODELS -from autogpt.llm.utils import count_string_tokens, create_chat_completion +from autogpt.llm.utils import ( + count_message_tokens, + count_string_tokens, + create_chat_completion, +) from autogpt.log_cycle.log_cycle import PROMPT_SUMMARY_FILE_NAME, SUMMARY_FILE_NAME from autogpt.logs import logger @dataclass -class MessageHistory: - agent: Agent - - messages: list[Message] = field(default_factory=list) +class MessageHistory(ChatSequence): + max_summary_tlength: int = 500 + agent: Optional[Agent] = None summary: str = "I was created" - last_trimmed_index: int = 0 - def __getitem__(self, i: int): - return self.messages[i] + SUMMARIZATION_PROMPT = '''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember. - def __iter__(self): - return iter(self.messages) +You will receive the current summary and your latest actions. Combine them, adding relevant key information from the latest development in 1st person past tense and keeping the summary concise. - def __len__(self): - return len(self.messages) +Summary So Far: +""" +{summary} +""" - def add( - self, - role: MessageRole, - content: str, - type: MessageType | None = None, - ): - return self.append(Message(role, content, type)) - - def append(self, message: Message): - return self.messages.append(message) +Latest Development: +""" +{new_events} +""" +''' def trim_messages( self, current_message_chain: list[Message], config: Config @@ -84,7 +81,7 @@ class MessageHistory: return new_summary_message, new_messages_not_in_chain - def per_cycle(self, config: Config, messages: list[Message] | None = None): + def per_cycle(self, messages: list[Message] | None = None): """ Yields: Message: a message containing user input @@ -119,26 +116,33 @@ class MessageHistory: ) def update_running_summary( - self, new_events: list[Message], config: Config + self, + new_events: list[Message], + config: Config, + max_summary_length: Optional[int] = None, ) -> Message: """ - This function takes a list of dictionaries representing new events and combines them with the current summary, - focusing on key and potentially important information to remember. The updated summary is returned in a message - formatted in the 1st person past tense. + This function takes a list of Message objects and updates the running summary + to include the events they describe. The updated summary is returned + in a Message formatted in the 1st person past tense. Args: - new_events (List[Dict]): A list of dictionaries containing the latest events to be added to the summary. + new_events: A list of Messages containing the latest events to be added to the summary. Returns: - str: A message containing the updated summary of actions, formatted in the 1st person past tense. + Message: a Message containing the updated running summary. Example: + ```py new_events = [{"event": "entered the kitchen."}, {"event": "found a scrawled note with the number 7"}] update_running_summary(new_events) # Returns: "This reminds you of these events from your past: \nI entered the kitchen and found a scrawled note saying 7." + ``` """ if not new_events: return self.summary_message() + if not max_summary_length: + max_summary_length = self.max_summary_tlength # Create a copy of the new_events list to prevent modifying the original list new_events = copy.deepcopy(new_events) @@ -166,29 +170,29 @@ class MessageHistory: elif event.role == "user": new_events.remove(event) - # Summarize events and current summary in batch to a new running summary + summ_model = OPEN_AI_CHAT_MODELS[config.fast_llm] - # Assume an upper bound length for the summary prompt template, i.e. Your task is to create a concise running summary...., in summarize_batch func - # TODO make this default dynamic - prompt_template_length = 100 - max_tokens = OPEN_AI_CHAT_MODELS.get(config.fast_llm).max_tokens - summary_tlength = count_string_tokens(str(self.summary), config.fast_llm) + # Determine token lengths for use in batching + prompt_template_length = len( + MessageHistory.SUMMARIZATION_PROMPT.format(summary="", new_events="") + ) + max_input_tokens = summ_model.max_tokens - max_summary_length + summary_tlength = count_string_tokens(self.summary, summ_model.name) batch = [] batch_tlength = 0 - # TODO Can put a cap on length of total new events and drop some previous events to save API cost, but need to think thru more how to do it without losing the context + # TODO: Put a cap on length of total new events and drop some previous events to + # save API cost. Need to think thru more how to do it without losing the context. for event in new_events: - event_tlength = count_string_tokens(str(event), config.fast_llm) + event_tlength = count_message_tokens(event, summ_model.name) if ( batch_tlength + event_tlength - > max_tokens - prompt_template_length - summary_tlength + > max_input_tokens - prompt_template_length - summary_tlength ): # The batch is full. Summarize it and start a new one. - self.summarize_batch(batch, config) - summary_tlength = count_string_tokens( - str(self.summary), config.fast_llm - ) + self.summarize_batch(batch, config, max_summary_length) + summary_tlength = count_string_tokens(self.summary, summ_model.name) batch = [event] batch_tlength = event_tlength else: @@ -197,41 +201,36 @@ class MessageHistory: if batch: # There's an unprocessed batch. Summarize it. - self.summarize_batch(batch, config) + self.summarize_batch(batch, config, max_summary_length) return self.summary_message() - def summarize_batch(self, new_events_batch, config): - prompt = f'''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember. - -You will receive the current summary and your latest actions. Combine them, adding relevant key information from the latest development in 1st person past tense and keeping the summary concise. - -Summary So Far: -""" -{self.summary} -""" - -Latest Development: -""" -{new_events_batch or "Nothing new happened."} -""" -''' + def summarize_batch( + self, new_events_batch: list[Message], config: Config, max_output_length: int + ): + prompt = MessageHistory.SUMMARIZATION_PROMPT.format( + summary=self.summary, new_events=new_events_batch + ) prompt = ChatSequence.for_model(config.fast_llm, [Message("user", prompt)]) - self.agent.log_cycle_handler.log_cycle( - self.agent.ai_name, - self.agent.created_at, - self.agent.cycle_count, - prompt.raw(), - PROMPT_SUMMARY_FILE_NAME, - ) + if self.agent: + self.agent.log_cycle_handler.log_cycle( + self.agent.ai_config.ai_name, + self.agent.created_at, + self.agent.cycle_count, + prompt.raw(), + PROMPT_SUMMARY_FILE_NAME, + ) - self.summary = create_chat_completion(prompt, config).content + self.summary = create_chat_completion( + prompt, config, max_tokens=max_output_length + ).content - self.agent.log_cycle_handler.log_cycle( - self.agent.ai_name, - self.agent.created_at, - self.agent.cycle_count, - self.summary, - SUMMARY_FILE_NAME, - ) + if self.agent: + self.agent.log_cycle_handler.log_cycle( + self.agent.ai_config.ai_name, + self.agent.created_at, + self.agent.cycle_count, + self.summary, + SUMMARY_FILE_NAME, + ) diff --git a/tests/unit/test_message_history.py b/tests/unit/test_message_history.py index 8ceee63f..9b275252 100644 --- a/tests/unit/test_message_history.py +++ b/tests/unit/test_message_history.py @@ -38,8 +38,8 @@ def agent(config: Config): return agent -def test_message_history_batch_summary(mocker, agent, config): - history = MessageHistory(agent) +def test_message_history_batch_summary(mocker, agent: Agent, config: Config): + history = MessageHistory.for_model(agent.config.smart_llm, agent=agent) model = config.fast_llm message_tlength = 0 message_count = 0 @@ -48,7 +48,7 @@ def test_message_history_batch_summary(mocker, agent, config): mock_summary_response = ChatModelResponse( model_info=OPEN_AI_CHAT_MODELS[model], content="I executed browse_website command for each of the websites returned from Google search, but none of them have any job openings.", - function_call={}, + function_call=None, ) mock_summary = mocker.patch( "autogpt.memory.message_history.create_chat_completion", @@ -105,7 +105,7 @@ def test_message_history_batch_summary(mocker, agent, config): result = ( "Command browse_website returned: Answer gathered from website: The text in job" + str(i) - + " does not provide information on specific job requirements or a job URL.]", + + " does not provide information on specific job requirements or a job URL.]" ) msg = Message("system", result, "action_result") history.append(msg) @@ -117,7 +117,7 @@ def test_message_history_batch_summary(mocker, agent, config): history.append(user_input_msg) # only take the last cycle of the message history, trim the rest of previous messages, and generate a summary for them - for cycle in reversed(list(history.per_cycle(config))): + for cycle in reversed(list(history.per_cycle())): messages_to_add = [msg for msg in cycle if msg is not None] message_sequence.insert(insertion_index, *messages_to_add) break @@ -134,7 +134,7 @@ def test_message_history_batch_summary(mocker, agent, config): ) expected_call_count = math.ceil( - message_tlength / (OPEN_AI_CHAT_MODELS.get(config.fast_llm).max_tokens) + message_tlength / (OPEN_AI_CHAT_MODELS[config.fast_llm].max_tokens) ) # Expecting 2 batches because of over max token assert mock_summary.call_count == expected_call_count # 2 at the time of writing From bc600169a99a9f3b02028eb11dcd42794152b163 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sun, 9 Jul 2023 17:57:58 +0000 Subject: [PATCH 12/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index 1f853207..72c3c7a7 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit 1f853207f5d0928a274b093d4507a219b6c12070 +Subproject commit 72c3c7a7e19a11938390e6a1df202b6775d89b03 From 1e756ed5f1d38ebc449aad91d1a478e5d4beb34d Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 20:04:52 +0200 Subject: [PATCH 13/33] Fix type of `Config.plugins` as `AutoGPTPluginTemplate` (#4924) Co-authored-by: James Collins --- autogpt/config/config.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/autogpt/config/config.py b/autogpt/config/config.py index 7cb578ed..579f0c4e 100644 --- a/autogpt/config/config.py +++ b/autogpt/config/config.py @@ -4,11 +4,12 @@ from __future__ import annotations import contextlib import os import re -from typing import Dict, Optional, Union +from typing import Any, Dict, Optional, Union import yaml +from auto_gpt_plugin_template import AutoGPTPluginTemplate from colorama import Fore -from pydantic import Field +from pydantic import Field, validator from autogpt.core.configuration.schema import Configurable, SystemSettings from autogpt.plugins.plugins_config import PluginsConfig @@ -21,7 +22,7 @@ GPT_4_MODEL = "gpt-4" GPT_3_MODEL = "gpt-3.5-turbo" -class Config(SystemSettings): +class Config(SystemSettings, arbitrary_types_allowed=True): name: str = "Auto-GPT configuration" description: str = "Default configuration for the Auto-GPT application." ######################## @@ -103,7 +104,7 @@ class Config(SystemSettings): plugins_config: PluginsConfig = Field( default_factory=lambda: PluginsConfig(plugins={}) ) - plugins: list[str] = Field(default_factory=list) + plugins: list[AutoGPTPluginTemplate] = Field(default_factory=list, exclude=True) plugins_allowlist: list[str] = Field(default_factory=list) plugins_denylist: list[str] = Field(default_factory=list) plugins_openai: list[str] = Field(default_factory=list) @@ -133,6 +134,16 @@ class Config(SystemSettings): # Stable Diffusion sd_webui_auth: Optional[str] = None + @validator("plugins", each_item=True) + def validate_plugins(cls, p: AutoGPTPluginTemplate | Any): + assert issubclass( + p.__class__, AutoGPTPluginTemplate + ), f"{p} does not subclass AutoGPTPluginTemplate" + assert ( + p.__class__.__name__ != "AutoGPTPluginTemplate" + ), f"Plugins must subclass AutoGPTPluginTemplate; {p} is a template instance" + return p + def get_azure_kwargs(self, model: str) -> dict[str, str]: """Get the kwargs for the Azure API.""" From bfdfeff1b3bdd484f89af77486898299afb905f1 Mon Sep 17 00:00:00 2001 From: Auto-GPT-Bot Date: Sun, 9 Jul 2023 18:11:00 +0000 Subject: [PATCH 14/33] Update cassette submodule --- tests/Auto-GPT-test-cassettes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index 72c3c7a7..b36e755e 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit 72c3c7a7e19a11938390e6a1df202b6775d89b03 +Subproject commit b36e755eef5f98eb959fdc8d36968653257cdac9 From e8b6676b22a032dd5db8f7ae5935d9968546d862 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 20:14:25 +0200 Subject: [PATCH 15/33] Restructure logs.py into a module; include log_cycle (#4921) * Consolidate all logging stuff into one module * Merge import statement for `logs` and `logs.log_cycle` --------- Co-authored-by: James Collins --- .gitignore | 2 +- autogpt/agent/agent.py | 6 +- autogpt/llm/chat.py | 3 +- autogpt/log_cycle/__init__.py | 0 autogpt/log_cycle/json_handler.py | 20 --- autogpt/logs/__init__.py | 15 ++ autogpt/logs/formatters.py | 41 ++++++ autogpt/logs/handlers.py | 47 ++++++ autogpt/{log_cycle => logs}/log_cycle.py | 4 +- autogpt/{logs.py => logs/logger.py} | 178 ++++------------------- autogpt/logs/utils.py | 65 +++++++++ autogpt/memory/message_history.py | 3 +- tests/challenges/utils.py | 2 +- 13 files changed, 208 insertions(+), 178 deletions(-) delete mode 100644 autogpt/log_cycle/__init__.py delete mode 100644 autogpt/log_cycle/json_handler.py create mode 100644 autogpt/logs/__init__.py create mode 100644 autogpt/logs/formatters.py create mode 100644 autogpt/logs/handlers.py rename autogpt/{log_cycle => logs}/log_cycle.py (97%) rename autogpt/{logs.py => logs/logger.py} (53%) create mode 100644 autogpt/logs/utils.py diff --git a/.gitignore b/.gitignore index 1376ba5d..9695cf4a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ last_run_ai_settings.yaml auto-gpt.json log.txt log-ingestion.txt -logs +/logs *.log *.mp3 mem.sqlite3 diff --git a/autogpt/agent/agent.py b/autogpt/agent/agent.py index 2a8f32ff..80286012 100644 --- a/autogpt/agent/agent.py +++ b/autogpt/agent/agent.py @@ -12,13 +12,15 @@ from autogpt.json_utils.utilities import extract_json_from_response, validate_js from autogpt.llm.chat import chat_with_ai from autogpt.llm.providers.openai import OPEN_AI_CHAT_MODELS from autogpt.llm.utils import count_string_tokens -from autogpt.log_cycle.log_cycle import ( +from autogpt.logs import ( FULL_MESSAGE_HISTORY_FILE_NAME, NEXT_ACTION_FILE_NAME, USER_INPUT_FILE_NAME, LogCycleHandler, + logger, + print_assistant_thoughts, + remove_ansi_escape, ) -from autogpt.logs import logger, print_assistant_thoughts, remove_ansi_escape from autogpt.memory.message_history import MessageHistory from autogpt.memory.vector import VectorMemory from autogpt.models.command_registry import CommandRegistry diff --git a/autogpt/llm/chat.py b/autogpt/llm/chat.py index cc04eeb1..14e06737 100644 --- a/autogpt/llm/chat.py +++ b/autogpt/llm/chat.py @@ -12,8 +12,7 @@ from autogpt.config import Config from autogpt.llm.api_manager import ApiManager from autogpt.llm.base import ChatSequence, Message from autogpt.llm.utils import count_message_tokens, create_chat_completion -from autogpt.log_cycle.log_cycle import CURRENT_CONTEXT_FILE_NAME -from autogpt.logs import logger +from autogpt.logs import CURRENT_CONTEXT_FILE_NAME, logger # TODO: Change debug from hardcode to argument diff --git a/autogpt/log_cycle/__init__.py b/autogpt/log_cycle/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/autogpt/log_cycle/json_handler.py b/autogpt/log_cycle/json_handler.py deleted file mode 100644 index 51ae9ae0..00000000 --- a/autogpt/log_cycle/json_handler.py +++ /dev/null @@ -1,20 +0,0 @@ -import json -import logging - - -class JsonFileHandler(logging.FileHandler): - def __init__(self, filename, mode="a", encoding=None, delay=False): - super().__init__(filename, mode, encoding, delay) - - def emit(self, record): - json_data = json.loads(self.format(record)) - with open(self.baseFilename, "w", encoding="utf-8") as f: - json.dump(json_data, f, ensure_ascii=False, indent=4) - - -import logging - - -class JsonFormatter(logging.Formatter): - def format(self, record): - return record.msg diff --git a/autogpt/logs/__init__.py b/autogpt/logs/__init__.py new file mode 100644 index 00000000..40df21cb --- /dev/null +++ b/autogpt/logs/__init__.py @@ -0,0 +1,15 @@ +from .formatters import AutoGptFormatter, JsonFormatter, remove_color_codes +from .handlers import ConsoleHandler, JsonFileHandler, TypingConsoleHandler +from .log_cycle import ( + CURRENT_CONTEXT_FILE_NAME, + FULL_MESSAGE_HISTORY_FILE_NAME, + NEXT_ACTION_FILE_NAME, + PROMPT_SUMMARY_FILE_NAME, + PROMPT_SUPERVISOR_FEEDBACK_FILE_NAME, + SUMMARY_FILE_NAME, + SUPERVISOR_FEEDBACK_FILE_NAME, + USER_INPUT_FILE_NAME, + LogCycleHandler, +) +from .logger import Logger, logger +from .utils import print_assistant_thoughts, remove_ansi_escape diff --git a/autogpt/logs/formatters.py b/autogpt/logs/formatters.py new file mode 100644 index 00000000..50e7c333 --- /dev/null +++ b/autogpt/logs/formatters.py @@ -0,0 +1,41 @@ +import logging +import re + +from colorama import Style + + +class AutoGptFormatter(logging.Formatter): + """ + Allows to handle custom placeholders 'title_color' and 'message_no_color'. + To use this formatter, make sure to pass 'color', 'title' as log extras. + """ + + def format(self, record: logging.LogRecord) -> str: + if hasattr(record, "color"): + record.title_color = ( + getattr(record, "color") + + getattr(record, "title", "") + + " " + + Style.RESET_ALL + ) + else: + record.title_color = getattr(record, "title", "") + + # Add this line to set 'title' to an empty string if it doesn't exist + record.title = getattr(record, "title", "") + + if hasattr(record, "msg"): + record.message_no_color = remove_color_codes(getattr(record, "msg")) + else: + record.message_no_color = "" + return super().format(record) + + +def remove_color_codes(s: str) -> str: + ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") + return ansi_escape.sub("", s) + + +class JsonFormatter(logging.Formatter): + def format(self, record: logging.LogRecord): + return record.msg diff --git a/autogpt/logs/handlers.py b/autogpt/logs/handlers.py new file mode 100644 index 00000000..c60b0575 --- /dev/null +++ b/autogpt/logs/handlers.py @@ -0,0 +1,47 @@ +import json +import logging +import random +import time + + +class ConsoleHandler(logging.StreamHandler): + def emit(self, record: logging.LogRecord) -> None: + msg = self.format(record) + try: + print(msg) + except Exception: + self.handleError(record) + + +class TypingConsoleHandler(logging.StreamHandler): + """Output stream to console using simulated typing""" + + def emit(self, record: logging.LogRecord): + min_typing_speed = 0.05 + max_typing_speed = 0.01 + + msg = self.format(record) + try: + words = msg.split() + for i, word in enumerate(words): + print(word, end="", flush=True) + if i < len(words) - 1: + print(" ", end="", flush=True) + typing_speed = random.uniform(min_typing_speed, max_typing_speed) + time.sleep(typing_speed) + # type faster after each word + min_typing_speed = min_typing_speed * 0.95 + max_typing_speed = max_typing_speed * 0.95 + print() + except Exception: + self.handleError(record) + + +class JsonFileHandler(logging.FileHandler): + def __init__(self, filename: str, mode="a", encoding=None, delay=False): + super().__init__(filename, mode, encoding, delay) + + def emit(self, record: logging.LogRecord): + json_data = json.loads(self.format(record)) + with open(self.baseFilename, "w", encoding="utf-8") as f: + json.dump(json_data, f, ensure_ascii=False, indent=4) diff --git a/autogpt/log_cycle/log_cycle.py b/autogpt/logs/log_cycle.py similarity index 97% rename from autogpt/log_cycle/log_cycle.py rename to autogpt/logs/log_cycle.py index ebceb57e..f3cbf166 100644 --- a/autogpt/log_cycle/log_cycle.py +++ b/autogpt/logs/log_cycle.py @@ -2,7 +2,7 @@ import json import os from typing import Any, Dict, Union -from autogpt.logs import logger +from .logger import logger DEFAULT_PREFIX = "agent" FULL_MESSAGE_HISTORY_FILE_NAME = "full_message_history.json" @@ -42,7 +42,7 @@ class LogCycleHandler: return outer_folder_path - def get_agent_short_name(self, ai_name): + def get_agent_short_name(self, ai_name: str) -> str: return ai_name[:15].rstrip() if ai_name else DEFAULT_PREFIX def create_inner_directory(self, outer_folder_path: str, cycle_count: int) -> str: diff --git a/autogpt/logs.py b/autogpt/logs/logger.py similarity index 53% rename from autogpt/logs.py rename to autogpt/logs/logger.py index 7ff80542..e4cedc36 100644 --- a/autogpt/logs.py +++ b/autogpt/logs/logger.py @@ -3,20 +3,18 @@ from __future__ import annotations import logging import os -import random -import re -import time -from logging import LogRecord from typing import TYPE_CHECKING, Any, Optional -from colorama import Fore, Style +from colorama import Fore if TYPE_CHECKING: from autogpt.config import Config -from autogpt.log_cycle.json_handler import JsonFileHandler, JsonFormatter from autogpt.singleton import Singleton +from .formatters import AutoGptFormatter, JsonFormatter +from .handlers import ConsoleHandler, JsonFileHandler, TypingConsoleHandler + class Logger(metaclass=Singleton): """ @@ -100,8 +98,13 @@ class Logger(metaclass=Singleton): self.typing_logger.addHandler(self.console_handler) def typewriter_log( - self, title="", title_color="", content="", speak_text=False, level=logging.INFO - ): + self, + title: str = "", + title_color: str = "", + content: str = "", + speak_text: bool = False, + level: int = logging.INFO, + ) -> None: from autogpt.speech import say_text if speak_text and self.config and self.config.speak_mode: @@ -122,29 +125,29 @@ class Logger(metaclass=Singleton): def debug( self, - message, - title="", - title_color="", - ): + message: str, + title: str = "", + title_color: str = "", + ) -> None: self._log(title, title_color, message, logging.DEBUG) def info( self, - message, - title="", - title_color="", - ): + message: str, + title: str = "", + title_color: str = "", + ) -> None: self._log(title, title_color, message, logging.INFO) def warn( self, - message, - title="", - title_color="", - ): + message: str, + title: str = "", + title_color: str = "", + ) -> None: self._log(title, title_color, message, logging.WARN) - def error(self, title, message=""): + def error(self, title: str, message: str = "") -> None: self._log(title, Fore.RED, message, logging.ERROR) def _log( @@ -152,8 +155,8 @@ class Logger(metaclass=Singleton): title: str = "", title_color: str = "", message: str = "", - level=logging.INFO, - ): + level: int = logging.INFO, + ) -> None: if message: if isinstance(message, list): message = " ".join(message) @@ -161,11 +164,11 @@ class Logger(metaclass=Singleton): level, message, extra={"title": str(title), "color": str(title_color)} ) - def set_level(self, level): + def set_level(self, level: logging._Level) -> None: self.logger.setLevel(level) self.typing_logger.setLevel(level) - def double_check(self, additionalText=None): + def double_check(self, additionalText: Optional[str] = None) -> None: if not additionalText: additionalText = ( "Please ensure you've setup and configured everything" @@ -191,131 +194,10 @@ class Logger(metaclass=Singleton): self.json_logger.debug(data) self.json_logger.removeHandler(json_data_handler) - def get_log_directory(self): + def get_log_directory(self) -> str: this_files_dir_path = os.path.dirname(__file__) - log_dir = os.path.join(this_files_dir_path, "../logs") + log_dir = os.path.join(this_files_dir_path, "../../logs") return os.path.abspath(log_dir) -""" -Output stream to console using simulated typing -""" - - -class TypingConsoleHandler(logging.StreamHandler): - def emit(self, record): - min_typing_speed = 0.05 - max_typing_speed = 0.01 - - msg = self.format(record) - try: - words = msg.split() - for i, word in enumerate(words): - print(word, end="", flush=True) - if i < len(words) - 1: - print(" ", end="", flush=True) - typing_speed = random.uniform(min_typing_speed, max_typing_speed) - time.sleep(typing_speed) - # type faster after each word - min_typing_speed = min_typing_speed * 0.95 - max_typing_speed = max_typing_speed * 0.95 - print() - except Exception: - self.handleError(record) - - -class ConsoleHandler(logging.StreamHandler): - def emit(self, record) -> None: - msg = self.format(record) - try: - print(msg) - except Exception: - self.handleError(record) - - -class AutoGptFormatter(logging.Formatter): - """ - Allows to handle custom placeholders 'title_color' and 'message_no_color'. - To use this formatter, make sure to pass 'color', 'title' as log extras. - """ - - def format(self, record: LogRecord) -> str: - if hasattr(record, "color"): - record.title_color = ( - getattr(record, "color") - + getattr(record, "title", "") - + " " - + Style.RESET_ALL - ) - else: - record.title_color = getattr(record, "title", "") - - # Add this line to set 'title' to an empty string if it doesn't exist - record.title = getattr(record, "title", "") - - if hasattr(record, "msg"): - record.message_no_color = remove_color_codes(getattr(record, "msg")) - else: - record.message_no_color = "" - return super().format(record) - - -def remove_color_codes(s: str) -> str: - ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])") - return ansi_escape.sub("", s) - - -def remove_ansi_escape(s: str) -> str: - return s.replace("\x1B", "") - - logger = Logger() - - -def print_assistant_thoughts( - ai_name: object, - assistant_reply_json_valid: object, - config: Config, -) -> None: - from autogpt.speech import say_text - - assistant_thoughts_reasoning = None - assistant_thoughts_plan = None - assistant_thoughts_speak = None - assistant_thoughts_criticism = None - - assistant_thoughts = assistant_reply_json_valid.get("thoughts", {}) - assistant_thoughts_text = remove_ansi_escape(assistant_thoughts.get("text", "")) - if assistant_thoughts: - assistant_thoughts_reasoning = remove_ansi_escape( - assistant_thoughts.get("reasoning") - ) - assistant_thoughts_plan = remove_ansi_escape(assistant_thoughts.get("plan")) - assistant_thoughts_criticism = remove_ansi_escape( - assistant_thoughts.get("criticism") - ) - assistant_thoughts_speak = remove_ansi_escape(assistant_thoughts.get("speak")) - logger.typewriter_log( - f"{ai_name.upper()} THOUGHTS:", Fore.YELLOW, f"{assistant_thoughts_text}" - ) - logger.typewriter_log("REASONING:", Fore.YELLOW, f"{assistant_thoughts_reasoning}") - if assistant_thoughts_plan: - logger.typewriter_log("PLAN:", Fore.YELLOW, "") - # If it's a list, join it into a string - if isinstance(assistant_thoughts_plan, list): - assistant_thoughts_plan = "\n".join(assistant_thoughts_plan) - elif isinstance(assistant_thoughts_plan, dict): - assistant_thoughts_plan = str(assistant_thoughts_plan) - - # Split the input_string using the newline character and dashes - lines = assistant_thoughts_plan.split("\n") - for line in lines: - line = line.lstrip("- ") - logger.typewriter_log("- ", Fore.GREEN, line.strip()) - logger.typewriter_log("CRITICISM:", Fore.YELLOW, f"{assistant_thoughts_criticism}") - # Speak the assistant's thoughts - if assistant_thoughts_speak: - if config.speak_mode: - say_text(assistant_thoughts_speak, config) - else: - logger.typewriter_log("SPEAK:", Fore.YELLOW, f"{assistant_thoughts_speak}") diff --git a/autogpt/logs/utils.py b/autogpt/logs/utils.py new file mode 100644 index 00000000..637c917f --- /dev/null +++ b/autogpt/logs/utils.py @@ -0,0 +1,65 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +from colorama import Fore + +if TYPE_CHECKING: + from autogpt.config import Config + +from .logger import logger + + +def print_assistant_thoughts( + ai_name: str, + assistant_reply_json_valid: dict, + config: Config, +) -> None: + from autogpt.speech import say_text + + assistant_thoughts_reasoning = None + assistant_thoughts_plan = None + assistant_thoughts_speak = None + assistant_thoughts_criticism = None + + assistant_thoughts = assistant_reply_json_valid.get("thoughts", {}) + assistant_thoughts_text = remove_ansi_escape(assistant_thoughts.get("text", "")) + if assistant_thoughts: + assistant_thoughts_reasoning = remove_ansi_escape( + assistant_thoughts.get("reasoning", "") + ) + assistant_thoughts_plan = remove_ansi_escape(assistant_thoughts.get("plan", "")) + assistant_thoughts_criticism = remove_ansi_escape( + assistant_thoughts.get("criticism", "") + ) + assistant_thoughts_speak = remove_ansi_escape( + assistant_thoughts.get("speak", "") + ) + logger.typewriter_log( + f"{ai_name.upper()} THOUGHTS:", Fore.YELLOW, assistant_thoughts_text + ) + logger.typewriter_log("REASONING:", Fore.YELLOW, str(assistant_thoughts_reasoning)) + if assistant_thoughts_plan: + logger.typewriter_log("PLAN:", Fore.YELLOW, "") + # If it's a list, join it into a string + if isinstance(assistant_thoughts_plan, list): + assistant_thoughts_plan = "\n".join(assistant_thoughts_plan) + elif isinstance(assistant_thoughts_plan, dict): + assistant_thoughts_plan = str(assistant_thoughts_plan) + + # Split the input_string using the newline character and dashes + lines = assistant_thoughts_plan.split("\n") + for line in lines: + line = line.lstrip("- ") + logger.typewriter_log("- ", Fore.GREEN, line.strip()) + logger.typewriter_log("CRITICISM:", Fore.YELLOW, f"{assistant_thoughts_criticism}") + # Speak the assistant's thoughts + if assistant_thoughts_speak: + if config.speak_mode: + say_text(assistant_thoughts_speak, config) + else: + logger.typewriter_log("SPEAK:", Fore.YELLOW, f"{assistant_thoughts_speak}") + + +def remove_ansi_escape(s: str) -> str: + return s.replace("\x1B", "") diff --git a/autogpt/memory/message_history.py b/autogpt/memory/message_history.py index 2459e1f5..30dbbb80 100644 --- a/autogpt/memory/message_history.py +++ b/autogpt/memory/message_history.py @@ -17,8 +17,7 @@ from autogpt.llm.utils import ( count_string_tokens, create_chat_completion, ) -from autogpt.log_cycle.log_cycle import PROMPT_SUMMARY_FILE_NAME, SUMMARY_FILE_NAME -from autogpt.logs import logger +from autogpt.logs import PROMPT_SUMMARY_FILE_NAME, SUMMARY_FILE_NAME, logger @dataclass diff --git a/tests/challenges/utils.py b/tests/challenges/utils.py index 130c5bd7..64523b81 100644 --- a/tests/challenges/utils.py +++ b/tests/challenges/utils.py @@ -6,7 +6,7 @@ from typing import Any, Generator import pytest -from autogpt.log_cycle.log_cycle import LogCycleHandler +from autogpt.logs import LogCycleHandler from autogpt.workspace import Workspace from benchmarks import run_task from tests.challenges.schema import Task From 51d8b43fbf6660c7ee8544f1160a83957d4c389f Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 20:31:18 +0200 Subject: [PATCH 16/33] Improve token counting; account for functions (#4919) * Improvements to token counting, including functions --------- Co-authored-by: James Collins --- autogpt/llm/base.py | 23 ++++---- autogpt/llm/chat.py | 35 ++++++------ autogpt/llm/providers/openai.py | 95 ++++++++++++++++++++++++++++----- autogpt/llm/utils/__init__.py | 31 ++++++++--- 4 files changed, 138 insertions(+), 46 deletions(-) diff --git a/autogpt/llm/base.py b/autogpt/llm/base.py index 5cf4993f..14a146b3 100644 --- a/autogpt/llm/base.py +++ b/autogpt/llm/base.py @@ -20,6 +20,17 @@ class MessageDict(TypedDict): content: str +class ResponseMessageDict(TypedDict): + role: Literal["assistant"] + content: Optional[str] + function_call: Optional[FunctionCallDict] + + +class FunctionCallDict(TypedDict): + name: str + arguments: str + + @dataclass class Message: """OpenAI Message object containing a role and the message content""" @@ -167,8 +178,6 @@ class LLMResponse: """Standard response struct for a response from an LLM model.""" model_info: ModelInfo - prompt_tokens_used: int = 0 - completion_tokens_used: int = 0 @dataclass @@ -177,14 +186,10 @@ class EmbeddingModelResponse(LLMResponse): embedding: list[float] = field(default_factory=list) - def __post_init__(self): - if self.completion_tokens_used: - raise ValueError("Embeddings should not have completion tokens used.") - @dataclass class ChatModelResponse(LLMResponse): - """Standard response struct for a response from an LLM model.""" + """Standard response struct for a response from a chat LLM.""" - content: Optional[str] = None - function_call: Optional[OpenAIFunctionCall] = None + content: Optional[str] + function_call: Optional[OpenAIFunctionCall] diff --git a/autogpt/llm/chat.py b/autogpt/llm/chat.py index 14e06737..4364cb1d 100644 --- a/autogpt/llm/chat.py +++ b/autogpt/llm/chat.py @@ -3,14 +3,16 @@ from __future__ import annotations import time from typing import TYPE_CHECKING -from autogpt.llm.providers.openai import get_openai_command_specs - if TYPE_CHECKING: from autogpt.agent.agent import Agent from autogpt.config import Config from autogpt.llm.api_manager import ApiManager from autogpt.llm.base import ChatSequence, Message +from autogpt.llm.providers.openai import ( + count_openai_functions_tokens, + get_openai_command_specs, +) from autogpt.llm.utils import count_message_tokens, create_chat_completion from autogpt.logs import CURRENT_CONTEXT_FILE_NAME, logger @@ -72,23 +74,17 @@ def chat_with_ai( ], ) - # Add messages from the full message history until we reach the token limit - next_message_to_add_index = len(agent.history) - 1 - insertion_index = len(message_sequence) # Count the currently used tokens current_tokens_used = message_sequence.token_length + insertion_index = len(message_sequence) - # while current_tokens_used > 2500: - # # remove memories until we are under 2500 tokens - # relevant_memory = relevant_memory[:-1] - # ( - # next_message_to_add_index, - # current_tokens_used, - # insertion_index, - # current_context, - # ) = generate_context( - # prompt, relevant_memory, agent.history, model - # ) + # Account for tokens used by OpenAI functions + openai_functions = None + if agent.config.openai_functions: + openai_functions = get_openai_command_specs(agent.command_registry) + functions_tlength = count_openai_functions_tokens(openai_functions, model) + current_tokens_used += functions_tlength + logger.debug(f"OpenAI Functions take up {functions_tlength} tokens in API call") # Account for user input (appended later) user_input_msg = Message("user", triggering_prompt) @@ -97,7 +93,8 @@ def chat_with_ai( current_tokens_used += agent.history.max_summary_tlength # Reserve space current_tokens_used += 500 # Reserve space for the openai functions TODO improve - # Add Messages until the token limit is reached or there are no more messages to add. + # Add historical Messages until the token limit is reached + # or there are no more messages to add. for cycle in reversed(list(agent.history.per_cycle())): messages_to_add = [msg for msg in cycle if msg is not None] tokens_to_add = count_message_tokens(messages_to_add, model) @@ -162,6 +159,8 @@ def chat_with_ai( logger.debug(f"Plugins remaining at stop: {plugin_count - i}") break message_sequence.add("system", plugin_response) + current_tokens_used += tokens_to_add + # Calculate remaining tokens tokens_remaining = token_limit - current_tokens_used # assert tokens_remaining >= 0, "Tokens remaining is negative. @@ -193,7 +192,7 @@ def chat_with_ai( assistant_reply = create_chat_completion( prompt=message_sequence, config=agent.config, - functions=get_openai_command_specs(agent), + functions=openai_functions, max_tokens=tokens_remaining, ) diff --git a/autogpt/llm/providers/openai.py b/autogpt/llm/providers/openai.py index baf7ab87..933f9435 100644 --- a/autogpt/llm/providers/openai.py +++ b/autogpt/llm/providers/openai.py @@ -3,7 +3,7 @@ from __future__ import annotations import functools import time from dataclasses import dataclass -from typing import TYPE_CHECKING, List, Optional +from typing import List, Optional from unittest.mock import patch import openai @@ -12,9 +12,6 @@ from colorama import Fore, Style from openai.error import APIError, RateLimitError, ServiceUnavailableError, Timeout from openai.openai_object import OpenAIObject -if TYPE_CHECKING: - from autogpt.agent.agent import Agent - from autogpt.llm.base import ( ChatModelInfo, EmbeddingModelInfo, @@ -23,6 +20,7 @@ from autogpt.llm.base import ( TText, ) from autogpt.logs import logger +from autogpt.models.command_registry import CommandRegistry OPEN_AI_CHAT_MODELS = { info.name: info @@ -301,13 +299,13 @@ class OpenAIFunctionSpec: @dataclass class ParameterSpec: name: str - type: str + type: str # TODO: add enum support description: Optional[str] required: bool = False @property - def __dict__(self): - """Output an OpenAI-consumable function specification""" + def schema(self) -> dict[str, str | dict | list]: + """Returns an OpenAI-consumable function specification""" return { "name": self.name, "description": self.description, @@ -326,14 +324,44 @@ class OpenAIFunctionSpec: }, } + @property + def prompt_format(self) -> str: + """Returns the function formatted similarly to the way OpenAI does it internally: + https://community.openai.com/t/how-to-calculate-the-tokens-when-using-function-call/266573/18 -def get_openai_command_specs(agent: Agent) -> list[OpenAIFunctionSpec]: + Example: + ```ts + // Get the current weather in a given location + type get_current_weather = (_: { + // The city and state, e.g. San Francisco, CA + location: string, + unit?: "celsius" | "fahrenheit", + }) => any; + ``` + """ + + def param_signature(p_spec: OpenAIFunctionSpec.ParameterSpec) -> str: + # TODO: enum type support + return ( + f"// {p_spec.description}\n" if p_spec.description else "" + ) + f"{p_spec.name}{'' if p_spec.required else '?'}: {p_spec.type}," + + return "\n".join( + [ + f"// {self.description}", + f"type {self.name} = (_ :{{", + *[param_signature(p) for p in self.parameters.values()], + "}) => any;", + ] + ) + + +def get_openai_command_specs( + command_registry: CommandRegistry, +) -> list[OpenAIFunctionSpec]: """Get OpenAI-consumable function specs for the agent's available commands. see https://platform.openai.com/docs/guides/gpt/function-calling """ - if not agent.config.openai_functions: - return [] - return [ OpenAIFunctionSpec( name=command.name, @@ -348,5 +376,48 @@ def get_openai_command_specs(agent: Agent) -> list[OpenAIFunctionSpec]: for param in command.parameters }, ) - for command in agent.command_registry.commands.values() + for command in command_registry.commands.values() ] + + +def count_openai_functions_tokens( + functions: list[OpenAIFunctionSpec], for_model: str +) -> int: + """Returns the number of tokens taken up by a set of function definitions + + Reference: https://community.openai.com/t/how-to-calculate-the-tokens-when-using-function-call/266573/18 + """ + from autogpt.llm.utils import count_string_tokens + + return count_string_tokens( + f"# Tools\n\n## functions\n\n{format_function_specs_as_typescript_ns(functions)}", + for_model, + ) + + +def format_function_specs_as_typescript_ns(functions: list[OpenAIFunctionSpec]) -> str: + """Returns a function signature block in the format used by OpenAI internally: + https://community.openai.com/t/how-to-calculate-the-tokens-when-using-function-call/266573/18 + + For use with `count_string_tokens` to determine token usage of provided functions. + + Example: + ```ts + namespace functions { + + // Get the current weather in a given location + type get_current_weather = (_: { + // The city and state, e.g. San Francisco, CA + location: string, + unit?: "celsius" | "fahrenheit", + }) => any; + + } // namespace functions + ``` + """ + + return ( + "namespace functions {\n\n" + + "\n\n".join(f.prompt_format for f in functions) + + "\n\n} // namespace functions" + ) diff --git a/autogpt/llm/utils/__init__.py b/autogpt/llm/utils/__init__.py index 3c2835b7..74e88dc6 100644 --- a/autogpt/llm/utils/__init__.py +++ b/autogpt/llm/utils/__init__.py @@ -7,12 +7,19 @@ from colorama import Fore from autogpt.config import Config from ..api_manager import ApiManager -from ..base import ChatModelResponse, ChatSequence, Message +from ..base import ( + ChatModelResponse, + ChatSequence, + FunctionCallDict, + Message, + ResponseMessageDict, +) from ..providers import openai as iopenai from ..providers.openai import ( OPEN_AI_CHAT_MODELS, OpenAIFunctionCall, OpenAIFunctionSpec, + count_openai_functions_tokens, ) from .token_counter import * @@ -114,7 +121,13 @@ def create_chat_completion( if temperature is None: temperature = config.temperature if max_tokens is None: - max_tokens = OPEN_AI_CHAT_MODELS[model].max_tokens - prompt.token_length + prompt_tlength = prompt.token_length + max_tokens = OPEN_AI_CHAT_MODELS[model].max_tokens - prompt_tlength + logger.debug(f"Prompt length: {prompt_tlength} tokens") + if functions: + functions_tlength = count_openai_functions_tokens(functions, model) + max_tokens -= functions_tlength + logger.debug(f"Functions take up {functions_tlength} tokens in API call") logger.debug( f"{Fore.GREEN}Creating chat completion with model {model}, temperature {temperature}, max_tokens {max_tokens}{Fore.RESET}" @@ -143,9 +156,8 @@ def create_chat_completion( if functions: chat_completion_kwargs["functions"] = [ - function.__dict__ for function in functions + function.schema for function in functions ] - logger.debug(f"Function dicts: {chat_completion_kwargs['functions']}") response = iopenai.create_chat_completion( messages=prompt.raw(), @@ -157,19 +169,24 @@ def create_chat_completion( logger.error(response.error) raise RuntimeError(response.error) - first_message = response.choices[0].message + first_message: ResponseMessageDict = response.choices[0].message content: str | None = first_message.get("content") - function_call: OpenAIFunctionCall | None = first_message.get("function_call") + function_call: FunctionCallDict | None = first_message.get("function_call") for plugin in config.plugins: if not plugin.can_handle_on_response(): continue + # TODO: function call support in plugin.on_response() content = plugin.on_response(content) return ChatModelResponse( model_info=OPEN_AI_CHAT_MODELS[model], content=content, - function_call=function_call, + function_call=OpenAIFunctionCall( + name=function_call["name"], arguments=function_call["arguments"] + ) + if function_call + else None, ) From 050c52a0082e33702bbba428e1a2d83ffb3cb294 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 20:29:33 +0200 Subject: [PATCH 17/33] Fix `CommandRegistry` state initialization --- autogpt/models/command_registry.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/autogpt/models/command_registry.py b/autogpt/models/command_registry.py index 59d3ae77..f54f4adb 100644 --- a/autogpt/models/command_registry.py +++ b/autogpt/models/command_registry.py @@ -15,8 +15,12 @@ class CommandRegistry: directory. """ - commands: dict[str, Command] = {} - commands_aliases: dict[str, Command] = {} + commands: dict[str, Command] + commands_aliases: dict[str, Command] + + def __init__(self): + self.commands = {} + self.commands_aliases = {} def __contains__(self, command_name: str): return command_name in self.commands or command_name in self.commands_aliases From c562fbf4bca580f0bc1fc5b6a17ce4bb33eb10cb Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 21:40:56 +0200 Subject: [PATCH 18/33] Move path argument sanitization for commands to a decorator (#4918) * Move path argument sanitization for commands to a decorator * Fix tests * Add `@functools.wraps` to `@sanitize_path_arg` decorator Co-authored-by: James Collins --------- Co-authored-by: James Collins --- autogpt/agent/agent.py | 13 ------ autogpt/commands/decorators.py | 64 ++++++++++++++++++++++++++ autogpt/commands/execute_code.py | 7 ++- autogpt/commands/file_operations.py | 36 +++++++++++---- autogpt/commands/git_operations.py | 5 +- autogpt/commands/image_gen.py | 2 +- tests/integration/test_execute_code.py | 11 ++--- tests/unit/test_file_operations.py | 63 +++++++++++++------------ 8 files changed, 138 insertions(+), 63 deletions(-) create mode 100644 autogpt/commands/decorators.py diff --git a/autogpt/agent/agent.py b/autogpt/agent/agent.py index 80286012..88b3fa80 100644 --- a/autogpt/agent/agent.py +++ b/autogpt/agent/agent.py @@ -169,8 +169,6 @@ class Agent: if self.config.speak_mode: say_text(f"I want to execute {command_name}", self.config) - arguments = self._resolve_pathlike_command_args(arguments) - except Exception as e: logger.error("Error: \n", str(e)) self.log_cycle_handler.log_cycle( @@ -309,14 +307,3 @@ class Agent: logger.typewriter_log( "SYSTEM: ", Fore.YELLOW, "Unable to execute command" ) - - def _resolve_pathlike_command_args(self, command_args): - if "directory" in command_args and command_args["directory"] in {"", "/"}: - command_args["directory"] = str(self.workspace.root) - else: - for pathlike in ["filename", "directory", "clone_path"]: - if pathlike in command_args: - command_args[pathlike] = str( - self.workspace.get_path(command_args[pathlike]) - ) - return command_args diff --git a/autogpt/commands/decorators.py b/autogpt/commands/decorators.py new file mode 100644 index 00000000..3528af04 --- /dev/null +++ b/autogpt/commands/decorators.py @@ -0,0 +1,64 @@ +import functools +from pathlib import Path +from typing import Callable + +from autogpt.agent.agent import Agent +from autogpt.logs import logger + + +def sanitize_path_arg(arg_name: str): + def decorator(func: Callable): + # Get position of path parameter, in case it is passed as a positional argument + try: + arg_index = list(func.__annotations__.keys()).index(arg_name) + except ValueError: + raise TypeError( + f"Sanitized parameter '{arg_name}' absent or not annotated on function '{func.__name__}'" + ) + + # Get position of agent parameter, in case it is passed as a positional argument + try: + agent_arg_index = list(func.__annotations__.keys()).index("agent") + except ValueError: + raise TypeError( + f"Parameter 'agent' absent or not annotated on function '{func.__name__}'" + ) + + @functools.wraps(func) + def wrapper(*args, **kwargs): + logger.debug(f"Sanitizing arg '{arg_name}' on function '{func.__name__}'") + logger.debug(f"Function annotations: {func.__annotations__}") + + # Get Agent from the called function's arguments + agent = kwargs.get( + "agent", len(args) > agent_arg_index and args[agent_arg_index] + ) + logger.debug(f"Args: {args}") + logger.debug(f"KWArgs: {kwargs}") + logger.debug(f"Agent argument lifted from function call: {agent}") + if not isinstance(agent, Agent): + raise RuntimeError("Could not get Agent from decorated command's args") + + # Sanitize the specified path argument, if one is given + given_path: str | Path | None = kwargs.get( + arg_name, len(args) > arg_index and args[arg_index] or None + ) + if given_path: + if given_path in {"", "/"}: + sanitized_path = str(agent.workspace.root) + else: + sanitized_path = str(agent.workspace.get_path(given_path)) + + if arg_name in kwargs: + kwargs[arg_name] = sanitized_path + else: + # args is an immutable tuple; must be converted to a list to update + arg_list = list(args) + arg_list[arg_index] = sanitized_path + args = tuple(arg_list) + + return func(*args, **kwargs) + + return wrapper + + return decorator diff --git a/autogpt/commands/execute_code.py b/autogpt/commands/execute_code.py index c11b56e2..3b7ab670 100644 --- a/autogpt/commands/execute_code.py +++ b/autogpt/commands/execute_code.py @@ -12,6 +12,8 @@ from autogpt.command_decorator import command from autogpt.config import Config from autogpt.logs import logger +from .decorators import sanitize_path_arg + ALLOWLIST_CONTROL = "allowlist" DENYLIST_CONTROL = "denylist" @@ -43,14 +45,14 @@ def execute_python_code(code: str, name: str, agent: Agent) -> str: Returns: str: The STDOUT captured from the code when it ran """ - ai_name = agent.ai_name + ai_name = agent.ai_config.ai_name code_dir = agent.workspace.get_path(Path(ai_name, "executed_code")) os.makedirs(code_dir, exist_ok=True) if not name.endswith(".py"): name = name + ".py" - # The `name` arg is not covered by Agent._resolve_pathlike_command_args(), + # The `name` arg is not covered by @sanitize_path_arg, # so sanitization must be done here to prevent path traversal. file_path = agent.workspace.get_path(code_dir / name) if not file_path.is_relative_to(code_dir): @@ -76,6 +78,7 @@ def execute_python_code(code: str, name: str, agent: Agent) -> str: }, }, ) +@sanitize_path_arg("filename") def execute_python_file(filename: str, agent: Agent) -> str: """Execute a Python file in a Docker container and return the output diff --git a/autogpt/commands/file_operations.py b/autogpt/commands/file_operations.py index 1d044822..0a06da31 100644 --- a/autogpt/commands/file_operations.py +++ b/autogpt/commands/file_operations.py @@ -1,20 +1,21 @@ """File operations for AutoGPT""" from __future__ import annotations +import contextlib import hashlib import os import os.path +from pathlib import Path from typing import Generator, Literal -from confection import Config - from autogpt.agent.agent import Agent from autogpt.command_decorator import command -from autogpt.commands.file_operations_utils import read_textual_file -from autogpt.config import Config from autogpt.logs import logger from autogpt.memory.vector import MemoryItem, VectorMemory +from .decorators import sanitize_path_arg +from .file_operations_utils import read_textual_file + Operation = Literal["write", "append", "delete"] @@ -74,21 +75,26 @@ def file_operations_state(log_path: str) -> dict[str, str]: return state +@sanitize_path_arg("filename") def is_duplicate_operation( - operation: Operation, filename: str, config: Config, checksum: str | None = None + operation: Operation, filename: str, agent: Agent, checksum: str | None = None ) -> bool: """Check if the operation has already been performed Args: operation: The operation to check for filename: The name of the file to check for - config: The agent config + agent: The agent checksum: The checksum of the contents to be written Returns: True if the operation has already been performed on the file """ - state = file_operations_state(config.file_logger_path) + # Make the filename into a relative path if possible + with contextlib.suppress(ValueError): + filename = str(Path(filename).relative_to(agent.workspace.root)) + + state = file_operations_state(agent.config.file_logger_path) if operation == "delete" and filename not in state: return True if operation == "write" and state.get(filename) == checksum: @@ -96,8 +102,9 @@ def is_duplicate_operation( return False +@sanitize_path_arg("filename") def log_operation( - operation: str, filename: str, agent: Agent, checksum: str | None = None + operation: Operation, filename: str, agent: Agent, checksum: str | None = None ) -> None: """Log the file operation to the file_logger.txt @@ -106,6 +113,10 @@ def log_operation( filename: The name of the file the operation was performed on checksum: The checksum of the contents to be written """ + # Make the filename into a relative path if possible + with contextlib.suppress(ValueError): + filename = str(Path(filename).relative_to(agent.workspace.root)) + log_entry = f"{operation}: {filename}" if checksum is not None: log_entry += f" #{checksum}" @@ -126,6 +137,7 @@ def log_operation( } }, ) +@sanitize_path_arg("filename") def read_file(filename: str, agent: Agent) -> str: """Read a file and return the contents @@ -191,6 +203,7 @@ def ingest_file( }, aliases=["write_file", "create_file"], ) +@sanitize_path_arg("filename") def write_to_file(filename: str, text: str, agent: Agent) -> str: """Write text to a file @@ -202,7 +215,7 @@ def write_to_file(filename: str, text: str, agent: Agent) -> str: str: A message indicating success or failure """ checksum = text_checksum(text) - if is_duplicate_operation("write", filename, agent.config, checksum): + if is_duplicate_operation("write", filename, agent, checksum): return "Error: File has already been updated." try: directory = os.path.dirname(filename) @@ -231,6 +244,7 @@ def write_to_file(filename: str, text: str, agent: Agent) -> str: }, }, ) +@sanitize_path_arg("filename") def append_to_file( filename: str, text: str, agent: Agent, should_log: bool = True ) -> str: @@ -271,6 +285,7 @@ def append_to_file( } }, ) +@sanitize_path_arg("filename") def delete_file(filename: str, agent: Agent) -> str: """Delete a file @@ -280,7 +295,7 @@ def delete_file(filename: str, agent: Agent) -> str: Returns: str: A message indicating success or failure """ - if is_duplicate_operation("delete", filename, agent.config): + if is_duplicate_operation("delete", filename, agent): return "Error: File has already been deleted." try: os.remove(filename) @@ -301,6 +316,7 @@ def delete_file(filename: str, agent: Agent) -> str: } }, ) +@sanitize_path_arg("directory") def list_files(directory: str, agent: Agent) -> list[str]: """lists files in a directory recursively diff --git a/autogpt/commands/git_operations.py b/autogpt/commands/git_operations.py index fc967e40..276031f7 100644 --- a/autogpt/commands/git_operations.py +++ b/autogpt/commands/git_operations.py @@ -6,6 +6,8 @@ from autogpt.agent.agent import Agent from autogpt.command_decorator import command from autogpt.url_utils.validators import validate_url +from .decorators import sanitize_path_arg + @command( "clone_repository", @@ -22,9 +24,10 @@ from autogpt.url_utils.validators import validate_url "required": True, }, }, - lambda config: config.github_username and config.github_api_key, + lambda config: bool(config.github_username and config.github_api_key), "Configure github_username and github_api_key.", ) +@sanitize_path_arg("clone_path") @validate_url def clone_repository(url: str, clone_path: str, agent: Agent) -> str: """Clone a GitHub repository locally. diff --git a/autogpt/commands/image_gen.py b/autogpt/commands/image_gen.py index c295392c..b1a89b28 100644 --- a/autogpt/commands/image_gen.py +++ b/autogpt/commands/image_gen.py @@ -24,7 +24,7 @@ from autogpt.logs import logger "required": True, }, }, - lambda config: config.image_provider, + lambda config: bool(config.image_provider), "Requires a image provider to be set.", ) def generate_image(prompt: str, agent: Agent, size: int = 256) -> str: diff --git a/tests/integration/test_execute_code.py b/tests/integration/test_execute_code.py index 6ba4a753..b7be8622 100644 --- a/tests/integration/test_execute_code.py +++ b/tests/integration/test_execute_code.py @@ -1,5 +1,6 @@ import os import random +import re import string import tempfile @@ -88,13 +89,9 @@ def test_execute_python_file_invalid(agent: Agent): def test_execute_python_file_not_found(agent: Agent): - assert all( - s in sut.execute_python_file("notexist.py", agent).lower() - for s in [ - "python: can't open file 'notexist.py'", - "[errno 2] no such file or directory", - ] - ) + result = sut.execute_python_file("notexist.py", agent).lower() + assert re.match(r"python: can't open file '([A-Z]:)?[/\\\-\w]*notexist.py'", result) + assert "[errno 2] no such file or directory" in result def test_execute_shell(random_string: str, agent: Agent): diff --git a/tests/unit/test_file_operations.py b/tests/unit/test_file_operations.py index b8283111..f9c571d8 100644 --- a/tests/unit/test_file_operations.py +++ b/tests/unit/test_file_operations.py @@ -44,8 +44,13 @@ def mock_MemoryItem_from_text( @pytest.fixture() -def test_file_path(workspace: Workspace): - return workspace.get_path("test_file.txt") +def test_file_name(): + return Path("test_file.txt") + + +@pytest.fixture +def test_file_path(test_file_name: Path, workspace: Workspace): + return workspace.get_path(test_file_name) @pytest.fixture() @@ -130,42 +135,34 @@ def test_is_duplicate_operation(agent: Agent, mocker: MockerFixture): # Test cases with write operations assert ( file_ops.is_duplicate_operation( - "write", "path/to/file1.txt", agent.config, "checksum1" + "write", "path/to/file1.txt", agent, "checksum1" ) is True ) assert ( file_ops.is_duplicate_operation( - "write", "path/to/file1.txt", agent.config, "checksum2" + "write", "path/to/file1.txt", agent, "checksum2" ) is False ) assert ( file_ops.is_duplicate_operation( - "write", "path/to/file3.txt", agent.config, "checksum3" + "write", "path/to/file3.txt", agent, "checksum3" ) is False ) # Test cases with append operations assert ( file_ops.is_duplicate_operation( - "append", "path/to/file1.txt", agent.config, "checksum1" + "append", "path/to/file1.txt", agent, "checksum1" ) is False ) # Test cases with delete operations assert ( - file_ops.is_duplicate_operation( - "delete", "path/to/file1.txt", config=agent.config - ) - is False - ) - assert ( - file_ops.is_duplicate_operation( - "delete", "path/to/file3.txt", config=agent.config - ) - is True + file_ops.is_duplicate_operation("delete", "path/to/file1.txt", agent) is False ) + assert file_ops.is_duplicate_operation("delete", "path/to/file3.txt", agent) is True # Test logging a file operation @@ -206,7 +203,15 @@ def test_read_file_not_found(agent: Agent): assert "Error:" in content and filename in content and "no such file" in content -def test_write_to_file(test_file_path: Path, agent: Agent): +def test_write_to_file_relative_path(test_file_name: Path, agent: Agent): + new_content = "This is new content.\n" + file_ops.write_to_file(str(test_file_name), new_content, agent=agent) + with open(agent.workspace.get_path(test_file_name), "r", encoding="utf-8") as f: + content = f.read() + assert content == new_content + + +def test_write_to_file_absolute_path(test_file_path: Path, agent: Agent): new_content = "This is new content.\n" file_ops.write_to_file(str(test_file_path), new_content, agent=agent) with open(test_file_path, "r", encoding="utf-8") as f: @@ -214,24 +219,24 @@ def test_write_to_file(test_file_path: Path, agent: Agent): assert content == new_content -def test_write_file_logs_checksum(test_file_path: Path, agent: Agent): +def test_write_file_logs_checksum(test_file_name: Path, agent: Agent): new_content = "This is new content.\n" new_checksum = file_ops.text_checksum(new_content) - file_ops.write_to_file(str(test_file_path), new_content, agent=agent) + file_ops.write_to_file(str(test_file_name), new_content, agent=agent) with open(agent.config.file_logger_path, "r", encoding="utf-8") as f: log_entry = f.read() - assert log_entry == f"write: {test_file_path} #{new_checksum}\n" + assert log_entry == f"write: {test_file_name} #{new_checksum}\n" -def test_write_file_fails_if_content_exists(test_file_path: Path, agent: Agent): +def test_write_file_fails_if_content_exists(test_file_name: Path, agent: Agent): new_content = "This is new content.\n" file_ops.log_operation( "write", - str(test_file_path), + str(test_file_name), agent=agent, checksum=file_ops.text_checksum(new_content), ) - result = file_ops.write_to_file(str(test_file_path), new_content, agent=agent) + result = file_ops.write_to_file(str(test_file_name), new_content, agent=agent) assert result == "Error: File has already been updated." @@ -258,11 +263,11 @@ def test_append_to_file(test_nested_file: Path, agent: Agent): def test_append_to_file_uses_checksum_from_appended_file( - test_file_path: Path, agent: Agent + test_file_name: Path, agent: Agent ): append_text = "This is appended text.\n" - file_ops.append_to_file(test_file_path, append_text, agent=agent) - file_ops.append_to_file(test_file_path, append_text, agent=agent) + file_ops.append_to_file(test_file_name, append_text, agent=agent) + file_ops.append_to_file(test_file_name, append_text, agent=agent) with open(agent.config.file_logger_path, "r", encoding="utf-8") as f: log_contents = f.read() @@ -272,8 +277,8 @@ def test_append_to_file_uses_checksum_from_appended_file( digest.update(append_text.encode("utf-8")) checksum2 = digest.hexdigest() assert log_contents == ( - f"append: {test_file_path} #{checksum1}\n" - f"append: {test_file_path} #{checksum2}\n" + f"append: {test_file_name} #{checksum1}\n" + f"append: {test_file_name} #{checksum2}\n" ) @@ -288,7 +293,7 @@ def test_delete_missing_file(agent: Agent): # confuse the log file_ops.log_operation("write", filename, agent=agent, checksum="fake") try: - os.remove(filename) + os.remove(agent.workspace.get_path(filename)) except FileNotFoundError as err: assert str(err) in file_ops.delete_file(filename, agent=agent) return From 2b56996a273e746a24a296c608b2ca4b112294a1 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Sun, 9 Jul 2023 22:42:47 +0200 Subject: [PATCH 19/33] Fix plain_output for tests --- tests/conftest.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index 14f6af78..64e84024 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,6 +10,7 @@ from autogpt.agent.agent import Agent from autogpt.config import AIConfig, Config, ConfigBuilder from autogpt.config.ai_config import AIConfig from autogpt.llm.api_manager import ApiManager +from autogpt.logs import logger from autogpt.memory.vector import get_memory from autogpt.models.command_registry import CommandRegistry from autogpt.prompts.prompt import DEFAULT_TRIGGERING_PROMPT @@ -52,6 +53,9 @@ def config( if not os.environ.get("OPENAI_API_KEY"): os.environ["OPENAI_API_KEY"] = "sk-dummy" + # HACK: this is necessary to ensure PLAIN_OUTPUT takes effect + logger.config = config + config.plugins_dir = "tests/unit/data/test_plugins" config.plugins_config_file = temp_plugins_config_file From 5e39dd1d26221f1baf24882616d65d5f4df22dbd Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Mon, 10 Jul 2023 17:26:13 +0200 Subject: [PATCH 20/33] Speed up CI (#4930) * Match requests in cassette by hash * Strip requests more extensively for VCR * Sort JSON keys on cassette save * Strip max_tokens from cassettes * Improve logging in retry decorator * Raise when quota exceeded * Clean up @retry_api * Fix @retry_api * Remove dead tests/vcr/openai_filter.py * Add debug logging to execute_python_file * Make Docker CI pass --- .github/workflows/ci.yml | 6 +-- autogpt/commands/execute_code.py | 9 +++- autogpt/llm/providers/openai.py | 36 +++++++++------- tests/Auto-GPT-test-cassettes | 2 +- tests/unit/test_retry_provider_openai.py | 15 +++---- tests/vcr/__init__.py | 51 ++++++++++++++++------- tests/vcr/openai_filter.py | 52 ----------------------- tests/vcr/vcr_filter.py | 53 +++++++++++++++++------- 8 files changed, 110 insertions(+), 114 deletions(-) delete mode 100644 tests/vcr/openai_filter.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 825a4939..710359d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,8 +148,8 @@ jobs: - name: Run pytest with coverage run: | - pytest -v --cov=autogpt --cov-branch --cov-report term-missing --cov-report xml \ - --numprocesses=4 --durations=10 \ + pytest -vv --cov=autogpt --cov-branch --cov-report term-missing --cov-report xml \ + --numprocesses=logical --durations=10 \ tests/unit tests/integration tests/challenges python tests/challenges/utils/build_current_score.py env: @@ -247,7 +247,7 @@ jobs: gh api repos/$REPO/issues/$PR_NUMBER/comments -X POST -F body="You changed AutoGPT's behaviour. The cassettes have been updated and will be merged to the submodule when this Pull Request gets merged." fi - - name: Upload logs as artifact + - name: Upload logs to artifact if: always() uses: actions/upload-artifact@v3 with: diff --git a/autogpt/commands/execute_code.py b/autogpt/commands/execute_code.py index 3b7ab670..aad93193 100644 --- a/autogpt/commands/execute_code.py +++ b/autogpt/commands/execute_code.py @@ -103,6 +103,9 @@ def execute_python_file(filename: str, agent: Agent) -> str: ) if we_are_running_in_a_docker_container(): + logger.debug( + f"Auto-GPT is running in a Docker container; executing {file_path} directly..." + ) result = subprocess.run( ["python", str(file_path)], capture_output=True, @@ -114,6 +117,7 @@ def execute_python_file(filename: str, agent: Agent) -> str: else: return f"Error: {result.stderr}" + logger.debug("Auto-GPT is not running in a Docker container") try: client = docker.from_env() # You can replace this with the desired Python image/version @@ -122,10 +126,10 @@ def execute_python_file(filename: str, agent: Agent) -> str: image_name = "python:3-alpine" try: client.images.get(image_name) - logger.warn(f"Image '{image_name}' found locally") + logger.debug(f"Image '{image_name}' found locally") except ImageNotFound: logger.info( - f"Image '{image_name}' not found locally, pulling from Docker Hub" + f"Image '{image_name}' not found locally, pulling from Docker Hub..." ) # Use the low-level API to stream the pull response low_level_client = docker.APIClient() @@ -138,6 +142,7 @@ def execute_python_file(filename: str, agent: Agent) -> str: elif status: logger.info(status) + logger.debug(f"Running {file_path} in a {image_name} container...") container: DockerContainer = client.containers.run( image_name, ["python", str(file_path.relative_to(agent.workspace.root))], diff --git a/autogpt/llm/providers/openai.py b/autogpt/llm/providers/openai.py index 933f9435..f00a1f28 100644 --- a/autogpt/llm/providers/openai.py +++ b/autogpt/llm/providers/openai.py @@ -3,7 +3,7 @@ from __future__ import annotations import functools import time from dataclasses import dataclass -from typing import List, Optional +from typing import Callable, List, Optional from unittest.mock import patch import openai @@ -112,7 +112,7 @@ OPEN_AI_MODELS: dict[str, ChatModelInfo | EmbeddingModelInfo | TextModelInfo] = } -def meter_api(func): +def meter_api(func: Callable): """Adds ApiManager metering to functions which make OpenAI API calls""" from autogpt.llm.api_manager import ApiManager @@ -150,7 +150,7 @@ def meter_api(func): def retry_api( - num_retries: int = 10, + max_retries: int = 10, backoff_base: float = 2.0, warn_user: bool = True, ): @@ -162,43 +162,49 @@ def retry_api( warn_user bool: Whether to warn the user. Defaults to True. """ error_messages = { - ServiceUnavailableError: f"{Fore.RED}Error: The OpenAI API engine is currently overloaded, passing...{Fore.RESET}", - RateLimitError: f"{Fore.RED}Error: Reached rate limit, passing...{Fore.RESET}", + ServiceUnavailableError: f"{Fore.RED}Error: The OpenAI API engine is currently overloaded{Fore.RESET}", + RateLimitError: f"{Fore.RED}Error: Reached rate limit{Fore.RESET}", } api_key_error_msg = ( f"Please double check that you have setup a " f"{Fore.CYAN + Style.BRIGHT}PAID{Style.RESET_ALL} OpenAI API Account. You can " f"read more here: {Fore.CYAN}https://docs.agpt.co/setup/#getting-an-api-key{Fore.RESET}" ) - backoff_msg = ( - f"{Fore.RED}Error: API Bad gateway. Waiting {{backoff}} seconds...{Fore.RESET}" - ) + backoff_msg = f"{Fore.RED}Waiting {{backoff}} seconds...{Fore.RESET}" - def _wrapper(func): + def _wrapper(func: Callable): @functools.wraps(func) def _wrapped(*args, **kwargs): user_warned = not warn_user - num_attempts = num_retries + 1 # +1 for the first attempt - for attempt in range(1, num_attempts + 1): + max_attempts = max_retries + 1 # +1 for the first attempt + for attempt in range(1, max_attempts + 1): try: return func(*args, **kwargs) except (RateLimitError, ServiceUnavailableError) as e: - if attempt == num_attempts: + if attempt >= max_attempts or ( + # User's API quota exceeded + isinstance(e, RateLimitError) + and (err := getattr(e, "error", {})) + and err.get("code") == "insufficient_quota" + ): raise error_msg = error_messages[type(e)] - logger.debug(error_msg) + logger.warn(error_msg) if not user_warned: logger.double_check(api_key_error_msg) + logger.debug(f"Status: {e.http_status}") + logger.debug(f"Response body: {e.json_body}") + logger.debug(f"Response headers: {e.headers}") user_warned = True except (APIError, Timeout) as e: - if (e.http_status not in [429, 502]) or (attempt == num_attempts): + if (e.http_status not in [429, 502]) or (attempt == max_attempts): raise backoff = backoff_base ** (attempt + 2) - logger.debug(backoff_msg.format(backoff=backoff)) + logger.warn(backoff_msg.format(backoff=backoff)) time.sleep(backoff) return _wrapped diff --git a/tests/Auto-GPT-test-cassettes b/tests/Auto-GPT-test-cassettes index b36e755e..d5848722 160000 --- a/tests/Auto-GPT-test-cassettes +++ b/tests/Auto-GPT-test-cassettes @@ -1 +1 @@ -Subproject commit b36e755eef5f98eb959fdc8d36968653257cdac9 +Subproject commit d584872257a8a440da594c5fb83cce66095ecf0b diff --git a/tests/unit/test_retry_provider_openai.py b/tests/unit/test_retry_provider_openai.py index b2c2d04a..1b23f5d2 100644 --- a/tests/unit/test_retry_provider_openai.py +++ b/tests/unit/test_retry_provider_openai.py @@ -20,7 +20,7 @@ def error_factory(error_instance, error_count, retry_count, warn_user=True): self.count = 0 @openai.retry_api( - num_retries=retry_count, backoff_base=0.001, warn_user=warn_user + max_retries=retry_count, backoff_base=0.001, warn_user=warn_user ) def __call__(self): self.count += 1 @@ -69,16 +69,11 @@ def test_retry_open_api_passing(capsys, error, error_count, retry_count, failure if error_count and retry_count: if type(error) == RateLimitError: - assert "Reached rate limit, passing..." in output.out + assert "Reached rate limit" in output.out assert "Please double check" in output.out if type(error) == ServiceUnavailableError: - assert ( - "The OpenAI API engine is currently overloaded, passing..." - in output.out - ) + assert "The OpenAI API engine is currently overloaded" in output.out assert "Please double check" in output.out - if type(error) == APIError: - assert "API Bad gateway" in output.out else: assert output.out == "" @@ -96,7 +91,7 @@ def test_retry_open_api_rate_limit_no_warn(capsys): output = capsys.readouterr() - assert "Reached rate limit, passing..." in output.out + assert "Reached rate limit" in output.out assert "Please double check" not in output.out @@ -115,7 +110,7 @@ def test_retry_open_api_service_unavairable_no_warn(capsys): output = capsys.readouterr() - assert "The OpenAI API engine is currently overloaded, passing..." in output.out + assert "The OpenAI API engine is currently overloaded" in output.out assert "Please double check" not in output.out diff --git a/tests/vcr/__init__.py b/tests/vcr/__init__.py index 04ce79fc..ffd4fa35 100644 --- a/tests/vcr/__init__.py +++ b/tests/vcr/__init__.py @@ -1,10 +1,16 @@ import os +from hashlib import sha256 import openai.api_requestor import pytest from pytest_mock import MockerFixture -from .vcr_filter import PROXY, before_record_request, before_record_response +from .vcr_filter import ( + PROXY, + before_record_request, + before_record_response, + freeze_request_body, +) DEFAULT_RECORD_MODE = "new_episodes" BASE_VCR_CONFIG = { @@ -12,10 +18,13 @@ BASE_VCR_CONFIG = { "before_record_response": before_record_response, "filter_headers": [ "Authorization", + "AGENT-MODE", + "AGENT-TYPE", + "OpenAI-Organization", "X-OpenAI-Client-User-Agent", "User-Agent", ], - "match_on": ["method", "body"], + "match_on": ["method", "headers"], } @@ -41,7 +50,7 @@ def vcr_cassette_dir(request): return os.path.join("tests/Auto-GPT-test-cassettes", test_name) -def patch_api_base(requestor): +def patch_api_base(requestor: openai.api_requestor.APIRequestor): new_api_base = f"{PROXY}/v1" requestor.api_base = new_api_base return requestor @@ -49,23 +58,35 @@ def patch_api_base(requestor): @pytest.fixture def patched_api_requestor(mocker: MockerFixture): - original_init = openai.api_requestor.APIRequestor.__init__ - original_validate_headers = openai.api_requestor.APIRequestor._validate_headers + init_requestor = openai.api_requestor.APIRequestor.__init__ + prepare_request = openai.api_requestor.APIRequestor._prepare_request_raw - def patched_init(requestor, *args, **kwargs): - original_init(requestor, *args, **kwargs) + def patched_init_requestor(requestor, *args, **kwargs): + init_requestor(requestor, *args, **kwargs) patch_api_base(requestor) - def patched_validate_headers(self, supplied_headers): - headers = original_validate_headers(self, supplied_headers) - headers["AGENT-MODE"] = os.environ.get("AGENT_MODE") - headers["AGENT-TYPE"] = os.environ.get("AGENT_TYPE") - return headers + def patched_prepare_request(self, *args, **kwargs): + url, headers, data = prepare_request(self, *args, **kwargs) + + if PROXY: + headers["AGENT-MODE"] = os.environ.get("AGENT_MODE") + headers["AGENT-TYPE"] = os.environ.get("AGENT_TYPE") + + # Add hash header for cheap & fast matching on cassette playback + headers["X-Content-Hash"] = sha256( + freeze_request_body(data), usedforsecurity=False + ).hexdigest() + + return url, headers, data if PROXY: - mocker.patch("openai.api_requestor.APIRequestor.__init__", new=patched_init) mocker.patch.object( openai.api_requestor.APIRequestor, - "_validate_headers", - new=patched_validate_headers, + "__init__", + new=patched_init_requestor, ) + mocker.patch.object( + openai.api_requestor.APIRequestor, + "_prepare_request_raw", + new=patched_prepare_request, + ) diff --git a/tests/vcr/openai_filter.py b/tests/vcr/openai_filter.py deleted file mode 100644 index 15a4b862..00000000 --- a/tests/vcr/openai_filter.py +++ /dev/null @@ -1,52 +0,0 @@ -import json -import re - - -def replace_timestamp_in_request(request): - # Check if the request body contains a JSON object - - try: - if not request or not request.body: - return request - body = json.loads(request.body) - except ValueError: - return request - - if "messages" not in body: - return request - - for message in body["messages"]: - if "content" in message and "role" in message and message["role"] == "system": - timestamp_regex = re.compile(r"\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4}") - message["content"] = timestamp_regex.sub( - "Tue Jan 01 00:00:00 2000", message["content"] - ) - - request.body = json.dumps(body) - return request - - -def before_record_response(response): - if "Transfer-Encoding" in response["headers"]: - del response["headers"]["Transfer-Encoding"] - return response - - -def before_record_request(request): - filtered_request = filter_hostnames(request) - filtered_request_without_dynamic_data = replace_timestamp_in_request( - filtered_request - ) - return filtered_request_without_dynamic_data - - -def filter_hostnames(request): - allowed_hostnames = [ - "api.openai.com", - "localhost:50337", - ] # List of hostnames you want to allow - - if any(hostname in request.url for hostname in allowed_hostnames): - return request - else: - return None diff --git a/tests/vcr/vcr_filter.py b/tests/vcr/vcr_filter.py index 1ba433a7..b1eb6461 100644 --- a/tests/vcr/vcr_filter.py +++ b/tests/vcr/vcr_filter.py @@ -1,8 +1,12 @@ +import contextlib import json import os import re +from io import BytesIO from typing import Any, Dict, List +from vcr.request import Request + PROXY = os.environ.get("PROXY") REPLACEMENTS: List[Dict[str, str]] = [ @@ -39,19 +43,20 @@ def replace_message_content(content: str, replacements: List[Dict[str, str]]) -> return content -def replace_timestamp_in_request(request: Any) -> Any: +def freeze_request_body(json_body: str | bytes) -> bytes: + """Remove any dynamic items from the request body""" + try: - if not request or not request.body: - return request - body = json.loads(request.body) + body = json.loads(json_body) except ValueError: - return request + return json_body if type(json_body) == bytes else json_body.encode() if "messages" not in body: - return request - body[ - "max_tokens" - ] = 0 # this field is inconsistent between requests and not used at the moment. + return json.dumps(body, sort_keys=True).encode() + + if "max_tokens" in body: + del body["max_tokens"] + for message in body["messages"]: if "content" in message and "role" in message: if message["role"] == "system": @@ -59,7 +64,20 @@ def replace_timestamp_in_request(request: Any) -> Any: message["content"], REPLACEMENTS ) - request.body = json.dumps(body) + return json.dumps(body, sort_keys=True).encode() + + +def freeze_request(request: Request) -> Request: + if not request or not request.body: + return request + + with contextlib.suppress(ValueError): + request.body = freeze_request_body( + request.body.getvalue() + if isinstance(request.body, BytesIO) + else request.body + ) + return request @@ -69,20 +87,23 @@ def before_record_response(response: Dict[str, Any]) -> Dict[str, Any]: return response -def before_record_request(request: Any) -> Any: +def before_record_request(request: Request) -> Request | None: request = replace_request_hostname(request, ORIGINAL_URL, NEW_URL) filtered_request = filter_hostnames(request) - filtered_request_without_dynamic_data = replace_timestamp_in_request( - filtered_request - ) + if not filtered_request: + return None + + filtered_request_without_dynamic_data = freeze_request(filtered_request) return filtered_request_without_dynamic_data from urllib.parse import urlparse, urlunparse -def replace_request_hostname(request: Any, original_url: str, new_hostname: str) -> Any: +def replace_request_hostname( + request: Request, original_url: str, new_hostname: str +) -> Request: parsed_url = urlparse(request.uri) if parsed_url.hostname in original_url: @@ -94,7 +115,7 @@ def replace_request_hostname(request: Any, original_url: str, new_hostname: str) return request -def filter_hostnames(request: Any) -> Any: +def filter_hostnames(request: Request) -> Request | None: # Add your implementation here for filtering hostnames if any(hostname in request.url for hostname in ALLOWED_HOSTNAMES): return request From 62e330469c00e99ab6319e4b0a88190abcb51956 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Mon, 10 Jul 2023 17:51:38 +0200 Subject: [PATCH 21/33] Speed up Docker CI --- .github/workflows/docker-ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index 7de4c248..cbdd2f13 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -73,16 +73,13 @@ jobs: run: .github/workflows/scripts/docker-ci-summary.sh >> $GITHUB_STEP_SUMMARY continue-on-error: true - # Docker setup needs fixing before this is going to work: #1843 test: runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build + timeout-minutes: 10 steps: - name: Check out repository uses: actions/checkout@v3 with: - fetch-depth: 0 submodules: true - name: Set up Docker Buildx @@ -102,8 +99,8 @@ jobs: - id: test name: Run tests env: - PLAIN_OUTPUT: True CI: true + PLAIN_OUTPUT: True OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | set +e From b00570f6d9e5ddce1812c0014e7593ea15033736 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Wed, 12 Jul 2023 15:04:24 +0200 Subject: [PATCH 22/33] Fix CI warnings --- .github/workflows/benchmarks.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index e40abf2f..195ebeff 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -27,8 +27,8 @@ jobs: with: ref: master - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + - name: Set up Python ${{ matrix.config.python-version }} + uses: actions/setup-python@v4 with: python-version: ${{ matrix.config.python-version }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 79ed16e8..a3d98213 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Set up Python ${{ env.min-python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ env.min-python-version }} @@ -132,7 +132,7 @@ jobs: fi - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} From 21c0cdcb76f4da12ef413bfc59d171f4f49260d8 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Wed, 12 Jul 2023 17:50:18 +0200 Subject: [PATCH 23/33] Disable proxy for internal pull requests (#4953) --- .github/workflows/ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3d98213..109d2d5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,9 +159,10 @@ jobs: python tests/challenges/utils/build_current_score.py env: CI: true - PROXY: ${{ secrets.PROXY }} - AGENT_MODE: ${{ secrets.AGENT_MODE }} - AGENT_TYPE: ${{ secrets.AGENT_TYPE }} + PROXY: ${{ github.event_name == 'pull_request_target' && secrets.PROXY || '' }} + AGENT_MODE: ${{ github.event_name == 'pull_request_target' && secrets.AGENT_MODE || '' }} + AGENT_TYPE: ${{ github.event_name == 'pull_request_target' && secrets.AGENT_TYPE || '' }} + OPENAI_API_KEY: ${{ github.event_name == 'pull_request' && secrets.OPENAI_API_KEY || '' }} PLAIN_OUTPUT: True - name: Upload coverage reports to Codecov From 3582ada3df619a454f2c12c095f24d088c9b3441 Mon Sep 17 00:00:00 2001 From: James Collins Date: Wed, 12 Jul 2023 10:21:20 -0700 Subject: [PATCH 24/33] Add links to github issues in the README and clarify run instructions (#4954) --- autogpt/core/README.md | 54 +++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/autogpt/core/README.md b/autogpt/core/README.md index f7bdf2d7..c27fa28f 100644 --- a/autogpt/core/README.md +++ b/autogpt/core/README.md @@ -1,7 +1,27 @@ -# Run instructions +# Auto-GPT Core + +This subpackage contains the ongoing work for the +[Auto-GPT Re-arch](https://github.com/Significant-Gravitas/Auto-GPT/issues/4770). It is +a work in progress and is not yet feature complete. In particular, it does not yet +have many of the Auto-GPT commands implemented and is pending ongoing work to +[re-incorporate vector-based memory and knowledge retrieval](https://github.com/Significant-Gravitas/Auto-GPT/issues/3536). + + +## Running the Re-arch Code There are two client applications for Auto-GPT included. +Unlike the main version of Auto-GPT, the re-arch requires you to actually install Auto-GPT in your python +environment to run this application. To do so, run + +``` +pip install -e REPOSITORY_ROOT +``` + +where `REPOSITORY_ROOT` is the root of the Auto-GPT repository on your machine. The `REPOSITORY_ROOT` +is the directory that contains the `setup.py` file and is the main, top-level directory of the repository +when you clone it. + ## CLI Application :star2: **This is the reference application I'm working with for now** :star2: @@ -11,21 +31,23 @@ The first app is a straight CLI application. I have not done anything yet to po - [Entry Point](https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/core/runner/cli_app/cli.py) - [Client Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/core/runner/cli_app/main.py) -Auto-GPT must be installed in your python environment to run this application. To do so, run - -``` -pip install -e REPOSITORY_ROOT -``` - -where `REPOSITORY_ROOT` is the root of the Auto-GPT repository on your machine. - You'll then need a settings file. Run ``` python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py make-settings ``` -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. +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). Your user directory is located in different places +depending on your operating system: + +- On Linux, it's `/home/USERNAME` +- On Windows, it's `C:\Users\USERNAME` +- On Mac, it's `/Users/USERNAME` + +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 @@ -35,9 +57,15 @@ python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py run to launch the interaction loop. -## CLI Web App +### 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. +:warning: I am not actively developing this application. I am primarily working with the traditional CLI app +described above. 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. + +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/master/autogpt/core/runner/cli_web_app/cli.py) - [Client Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/master/autogpt/core/runner/cli_web_app/client/client.py) @@ -58,5 +86,3 @@ 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. - -:warning: 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. \ No newline at end of file From 077e143cc2074dea8bb930c4224b4afc13e5b501 Mon Sep 17 00:00:00 2001 From: James Collins Date: Wed, 12 Jul 2023 18:38:48 -0700 Subject: [PATCH 25/33] Documentation/collate rearch notes (#4958) * Add links to github issues in the README and clarify run instructions * Added a new doc in the core package with architecture notes. --- autogpt/core/ARCHITECTURE_NOTES.md | 272 +++++++++++++++++++++++++++++ autogpt/core/README.md | 6 + 2 files changed, 278 insertions(+) create mode 100644 autogpt/core/ARCHITECTURE_NOTES.md diff --git a/autogpt/core/ARCHITECTURE_NOTES.md b/autogpt/core/ARCHITECTURE_NOTES.md new file mode 100644 index 00000000..b9fd2021 --- /dev/null +++ b/autogpt/core/ARCHITECTURE_NOTES.md @@ -0,0 +1,272 @@ +# Re-architecture Notes + +## Key Documents + +- [Planned Agent Workflow](https://whimsical.com/agent-workflow-v2-NmnTQ8R7sVo7M3S43XgXmZ) +- [Original Architecture Diagram](https://www.figma.com/file/fwdj44tPR7ArYtnGGUKknw/Modular-Architecture?type=whiteboard&node-id=0-1) - This is sadly well out of date at this point. +- [Kanban](https://github.com/orgs/Significant-Gravitas/projects/1/views/1?filterQuery=label%3Are-arch) + +## The Motivation + +The `master` branch of Auto-GPT is an organically grown amalgamation of many thoughts +and ideas about agent-driven autonomous systems. It lacks clear abstraction boundaries, +has issues of global state and poorly encapsulated state, and is generally just hard to +make effective changes to. Mainly it's just a system that's hard to make changes to. +And research in the field is moving fast, so we want to be able to try new ideas +quickly. + +## Initial Planning + +A large group of maintainers and contributors met do discuss the architectural +challenges associated with the existing codebase. Many much-desired features (building +new user interfaces, enabling project-specific agents, enabling multi-agent systems) +are bottlenecked by the global state in the system. We discussed the tradeoffs between +an incremental system transition and a big breaking version change and decided to go +for the breaking version change. We justified this by saying: + +- We can maintain, in essence, the same user experience as now even with a radical + restructuring of the codebase +- Our developer audience is struggling to use the existing codebase to build + applications and libraries of their own, so this breaking change will largely be + welcome. + +## Primary Goals + +- Separate the AutoGPT application code from the library code. +- Remove global state from the system +- Allow for multiple agents per user (with facilities for running simultaneously) +- Create a serializable representation of an Agent +- Encapsulate the core systems in abstractions with clear boundaries. + +## Secondary goals + +- Use existing tools to ditch any unneccesary cruft in the codebase (document loading, + json parsing, anything easier to replace than to port). +- Bring in the [core agent loop updates](https://whimsical.com/agent-workflow-v2-NmnTQ8R7sVo7M3S43XgXmZ) + being developed simultaneously by @Pwuts + +# The Agent Subsystems + +## Configuration + +We want a lot of things from a configuration system. We lean heavily on it in the +`master` branch to allow several parts of the system to communicate with each other. +[Recent work](https://github.com/Significant-Gravitas/Auto-GPT/pull/4737) has made it +so that the config is no longer a singleton object that is materialized from the import +state, but it's still treated as a +[god object](https://en.wikipedia.org/wiki/God_object) containing all information about +the system and _critically_ allowing any system to reference configuration information +about other parts of the system. + +### What we want + +- It should still be reasonable to collate the entire system configuration in a + sensible way. +- The configuration should be validatable and validated. +- The system configuration should be a _serializable_ representation of an `Agent`. +- The configuration system should provide a clear (albeit very low-level) contract + about user-configurable aspects of the system. +- The configuration should reasonably manage default values and user-provided overrides. +- The configuration system needs to handle credentials in a reasonable way. +- The configuration should be the representation of some amount of system state, like + api budgets and resource usage. These aspects are recorded in the configuration and + updated by the system itself. +- Agent systems should have encapsulated views of the configuration. E.g. the memory + system should know about memory configuration but nothing about command configuration. + +## Workspace + +There are two ways to think about the workspace: + +- The workspace is a scratch space for an agent where it can store files, write code, + and do pretty much whatever else it likes. +- The workspace is, at any given point in time, the single source of truth for what an + agent is. It contains the serializable state (the configuration) as well as all + other working state (stored files, databases, memories, custom code). + +In the existing system there is **one** workspace. And because the workspace holds so +much agent state, that means a user can only work with one agent at a time. + +## Memory + +The memory system has been under extremely active development. +See [#3536](https://github.com/Significant-Gravitas/Auto-GPT/issues/3536) and +[#4208](https://github.com/Significant-Gravitas/Auto-GPT/pull/4208) for discussion and +work in the `master` branch. The TL;DR is +that we noticed a couple of months ago that the `Agent` performed **worse** with +permanent memory than without it. Since then the knowledge storage and retrieval +system has been [redesigned](https://whimsical.com/memory-system-8Ae6x6QkjDwQAUe9eVJ6w1) +and partially implemented in the `master` branch. + +## Planning/Prompt-Engineering + +The planning system is the system that translates user desires/agent intentions into +language model prompts. In the course of development, it has become pretty clear +that `Planning` is the wrong name for this system + +### What we want + +- It should be incredibly obvious what's being passed to a language model, when it's + being passed, and what the language model response is. The landscape of language + model research is developing very rapidly, so building complex abstractions between + users/contributors and the language model interactions is going to make it very + difficult for us to nimbly respond to new research developments. +- Prompt-engineering should ideally be exposed in a parameterizeable way to users. +- We should, where possible, leverage OpenAI's new + [function calling api](https://openai.com/blog/function-calling-and-other-api-updates) + to get outputs in a standard machine-readable format and avoid the deep pit of + parsing json (and fixing unparsable json). + +### Planning Strategies + +The [new agent workflow](https://whimsical.com/agent-workflow-v2-NmnTQ8R7sVo7M3S43XgXmZ) +has many, many interaction points for language models. We really would like to not +distribute prompt templates and raw strings all through the system. The re-arch solution +is to encapsulate language model interactions into planning strategies. +These strategies are defined by + +- The `LanguageModelClassification` they use (`FAST` or `SMART`) +- A function `build_prompt` that takes strategy specific arguments and constructs a + `LanguageModelPrompt` (a simple container for lists of messages and functions to + pass to the language model) +- A function `parse_content` that parses the response content (a dict) into a better + formatted dict. Contracts here are intentionally loose and will tighten once we have + at least one other language model provider. + +## Resources + +Resources are kinds of services we consume from external APIs. They may have associated +credentials and costs we need to manage. Management of those credentials is implemented +as manipulation of the resource configuration. We have two categories of resources +currently + +- AI/ML model providers (including language model providers and embedding model providers, ie OpenAI) +- Memory providers (e.g. Pinecone, Weaviate, ChromaDB, etc.) + +### What we want + +- Resource abstractions should provide a common interface to different service providers + for a particular kind of service. +- Resource abstractions should manipulate the configuration to manage their credentials + and budget/accounting. +- Resource abstractions should be composable over an API (e.g. I should be able to make + an OpenAI provider that is both a LanguageModelProvider and an EmbeddingModelProvider + and use it wherever I need those services). + +## Abilities + +Along with planning and memory usage, abilities are one of the major augmentations of +augmented language models. They allow us to expand the scope of what language models +can do by hooking them up to code they can execute to obtain new knowledge or influence +the world. + +### What we want + +- Abilities should have an extremely clear interface that users can write to. +- Abilities should have an extremely clear interface that a language model can + understand +- Abilities should be declarative about their dependencies so the system can inject them +- Abilities should be executable (where sensible) in an async run loop. +- Abilities should be not have side effects unless those side effects are clear in + their representation to an agent (e.g. the BrowseWeb ability shouldn't write a file, + but the WriteFile ability can). + +## Plugins + +Users want to add lots of features that we don't want to support as first-party. +Or solution to this is a plugin system to allow users to plug in their functionality or +to construct their agent from a public plugin marketplace. Our primary concern in the +re-arch is to build a stateless plugin service interface and a simple implementation +that can load plugins from installed packages or from zip files. Future efforts will +expand this system to allow plugins to load from a marketplace or some other kind +of service. + +### What is a Plugin + +Plugins are a kind of garbage term. They refer to a number of things. + +- New commands for the agent to execute. This is the most common usage. +- Replacements for entire subsystems like memory or language model providers +- Application plugins that do things like send emails or communicate via whatsapp +- The repositories contributors create that may themselves have multiple plugins in them. + +### Usage in the existing system + +The current plugin system is _hook-based_. This means plugins don't correspond to +kinds of objects in the system, but rather to times in the system at which we defer +execution to them. The main advantage of this setup is that user code can hijack +pretty much any behavior of the agent by injecting code that supercedes the normal +agent execution. The disadvantages to this approach are numerous: + +- We have absolutely no mechanisms to enforce any security measures because the threat + surface is everything. +- We cannot reason about agent behavior in a cohesive way because control flow can be + ceded to user code at pretty much any point and arbitrarily change or break the + agent behavior +- The interface for designing a plugin is kind of terrible and difficult to standardize +- The hook based implementation means we couple ourselves to a particular flow of + control (or otherwise risk breaking plugin behavior). E.g. many of the hook targets + in the [old workflow](https://whimsical.com/agent-workflow-VAzeKcup3SR7awpNZJKTyK) + are not present or mean something entirely different in the + [new workflow](https://whimsical.com/agent-workflow-v2-NmnTQ8R7sVo7M3S43XgXmZ). +- Etc. + +### What we want + +- A concrete definition of a plugin that is narrow enough in scope that we can define + it well and reason about how it will work in the system. +- A set of abstractions that let us define a plugin by its storage format and location +- A service interface that knows how to parse the plugin abstractions and turn them + into concrete classes and objects. + + +## Some Notes on how and why we'll use OO in this project + +First and foremost, Python itself is an object-oriented language. It's +underlying [data model](https://docs.python.org/3/reference/datamodel.html) is built +with object-oriented programming in mind. It offers useful tools like abstract base +classes to communicate interfaces to developers who want to, e.g., write plugins, or +help work on implementations. If we were working in a different language that offered +different tools, we'd use a different paradigm. + +While many things are classes in the re-arch, they are not classes in the same way. +There are three kinds of things (roughly) that are written as classes in the re-arch: +1. **Configuration**: Auto-GPT has *a lot* of configuration. This configuration + is *data* and we use **[Pydantic](https://docs.pydantic.dev/latest/)** to manage it as + pydantic is basically industry standard for this stuff. It provides runtime validation + for all the configuration and allows us to easily serialize configuration to both basic + python types (dicts, lists, and primatives) as well as serialize to json, which is + important for us being able to put representations of agents + [on the wire](https://en.wikipedia.org/wiki/Wire_protocol) for web applications and + agent-to-agent communication. *These are essentially + [structs](https://en.wikipedia.org/wiki/Struct_(C_programming_language)) rather than + traditional classes.* +2. **Internal Data**: Very similar to configuration, Auto-GPT passes around boatloads + of internal data. We are interacting with language models and language model APIs + which means we are handling lots of *structured* but *raw* text. Here we also + leverage **pydantic** to both *parse* and *validate* the internal data and also to + give us concrete types which we can use static type checkers to validate against + and discover problems before they show up as bugs at runtime. *These are + essentially [structs](https://en.wikipedia.org/wiki/Struct_(C_programming_language)) + rather than traditional classes.* +3. **System Interfaces**: This is our primary traditional use of classes in the + re-arch. We have a bunch of systems. We want many of those systems to have + alternative implementations (e.g. via plugins). We use abstract base classes to + define interfaces to communicate with people who might want to provide those + plugins. We provide a single concrete implementation of most of those systems as a + subclass of the interface. This should not be controversial. + +The approach is consistent with +[prior](https://github.com/Significant-Gravitas/Auto-GPT/issues/2458) +[work](https://github.com/Significant-Gravitas/Auto-GPT/pull/2442) done by other +maintainers in this direction. + +From an organization standpoint, OO programming is by far the most popular programming +paradigm (especially for Python). It's the one most often taught in programming classes +and the one with the most available online training for people interested in +contributing. + +Finally, and importantly, we scoped the plan and initial design of the re-arch as a +large group of maintainers and collaborators early on. This is consistent with the +design we chose and no-one offered alternatives. + \ No newline at end of file diff --git a/autogpt/core/README.md b/autogpt/core/README.md index c27fa28f..e5bbc108 100644 --- a/autogpt/core/README.md +++ b/autogpt/core/README.md @@ -6,6 +6,12 @@ a work in progress and is not yet feature complete. In particular, it does not have many of the Auto-GPT commands implemented and is pending ongoing work to [re-incorporate vector-based memory and knowledge retrieval](https://github.com/Significant-Gravitas/Auto-GPT/issues/3536). +## [Overview](ARCHITECTURE_NOTES.md) + +The Auto-GPT Re-arch is a re-implementation of the Auto-GPT agent that is designed to be more modular, +more extensible, and more maintainable than the original Auto-GPT agent. It is also designed to be +more accessible to new developers and to be easier to contribute to. The re-arch is a work in progress +and is not yet feature complete. It is also not yet ready for production use. ## Running the Re-arch Code From 4177c37b51d2f2c8f19c929cadd2609262682605 Mon Sep 17 00:00:00 2001 From: James Collins Date: Wed, 12 Jul 2023 19:36:00 -0700 Subject: [PATCH 26/33] Refactor/move functions in app to agent (#4957) * Add links to github issues in the README and clarify run instructions * Move things only used by the agent out of app.py and into the agent module * Fix busted dynamic import --- autogpt/agent/agent.py | 95 +++++++++++++++++++++++- autogpt/app.py | 114 ----------------------------- autogpt/main.py | 1 - tests/unit/test_agent.py | 57 +++++---------- tests/unit/test_execute_command.py | 23 ------ 5 files changed, 111 insertions(+), 179 deletions(-) delete mode 100644 autogpt/app.py delete mode 100644 tests/unit/test_execute_command.py diff --git a/autogpt/agent/agent.py b/autogpt/agent/agent.py index 88b3fa80..316cc4d4 100644 --- a/autogpt/agent/agent.py +++ b/autogpt/agent/agent.py @@ -9,6 +9,7 @@ from colorama import Fore, Style from autogpt.config import Config from autogpt.config.ai_config import AIConfig from autogpt.json_utils.utilities import extract_json_from_response, validate_json +from autogpt.llm import ChatModelResponse from autogpt.llm.chat import chat_with_ai from autogpt.llm.providers.openai import OPEN_AI_CHAT_MODELS from autogpt.llm.utils import count_string_tokens @@ -86,9 +87,6 @@ class Agent: self.smart_token_limit = OPEN_AI_CHAT_MODELS.get(config.smart_llm).max_tokens def start_interaction_loop(self): - # Avoid circular imports - from autogpt.app import execute_command, extract_command - # Interaction Loop self.cycle_count = 0 command_name = None @@ -307,3 +305,94 @@ class Agent: logger.typewriter_log( "SYSTEM: ", Fore.YELLOW, "Unable to execute command" ) + + +def extract_command( + assistant_reply_json: dict, assistant_reply: ChatModelResponse, config: Config +): + """Parse the response and return the command name and arguments + + Args: + assistant_reply_json (dict): The response object from the AI + assistant_reply (ChatModelResponse): The model response from the AI + config (Config): The config object + + Returns: + tuple: The command name and arguments + + Raises: + json.decoder.JSONDecodeError: If the response is not valid JSON + + Exception: If any other error occurs + """ + if config.openai_functions: + if assistant_reply.function_call is None: + return "Error:", "No 'function_call' in assistant reply" + assistant_reply_json["command"] = { + "name": assistant_reply.function_call.name, + "args": json.loads(assistant_reply.function_call.arguments), + } + try: + if "command" not in assistant_reply_json: + return "Error:", "Missing 'command' object in JSON" + + if not isinstance(assistant_reply_json, dict): + return ( + "Error:", + f"The previous message sent was not a dictionary {assistant_reply_json}", + ) + + command = assistant_reply_json["command"] + if not isinstance(command, dict): + return "Error:", "'command' object is not a dictionary" + + if "name" not in command: + return "Error:", "Missing 'name' field in 'command' object" + + command_name = command["name"] + + # Use an empty dictionary if 'args' field is not present in 'command' object + arguments = command.get("args", {}) + + return command_name, arguments + except json.decoder.JSONDecodeError: + return "Error:", "Invalid JSON" + # All other errors, return "Error: + error message" + except Exception as e: + return "Error:", str(e) + + +def execute_command( + command_name: str, + arguments: dict[str, str], + agent: Agent, +): + """Execute the command and return the result + + Args: + command_name (str): The name of the command to execute + arguments (dict): The arguments for the command + agent (Agent): The agent that is executing the command + + Returns: + str: The result of the command + """ + try: + # Execute a native command with the same name or alias, if it exists + if command := agent.command_registry.get_command(command_name): + return command(**arguments, agent=agent) + + # Handle non-native commands (e.g. from plugins) + for command in agent.ai_config.prompt_generator.commands: + if ( + command_name == command["label"].lower() + or command_name == command["name"].lower() + ): + return command["function"](**arguments) + + raise RuntimeError( + f"Cannot execute '{command_name}': unknown command." + " Do not try to use this command again." + ) + except Exception as e: + return f"Error: {str(e)}" diff --git a/autogpt/app.py b/autogpt/app.py deleted file mode 100644 index ea5072f8..00000000 --- a/autogpt/app.py +++ /dev/null @@ -1,114 +0,0 @@ -""" Command and Control """ -import json -from typing import Dict - -from autogpt.agent.agent import Agent -from autogpt.config import Config -from autogpt.llm import ChatModelResponse - - -def is_valid_int(value: str) -> bool: - """Check if the value is a valid integer - - Args: - value (str): The value to check - - Returns: - bool: True if the value is a valid integer, False otherwise - """ - try: - int(value) - return True - except ValueError: - return False - - -def extract_command( - assistant_reply_json: Dict, assistant_reply: ChatModelResponse, config: Config -): - """Parse the response and return the command name and arguments - - Args: - assistant_reply_json (dict): The response object from the AI - assistant_reply (ChatModelResponse): The model response from the AI - config (Config): The config object - - Returns: - tuple: The command name and arguments - - Raises: - json.decoder.JSONDecodeError: If the response is not valid JSON - - Exception: If any other error occurs - """ - if config.openai_functions: - if assistant_reply.function_call is None: - return "Error:", "No 'function_call' in assistant reply" - assistant_reply_json["command"] = { - "name": assistant_reply.function_call.name, - "args": json.loads(assistant_reply.function_call.arguments), - } - try: - if "command" not in assistant_reply_json: - return "Error:", "Missing 'command' object in JSON" - - if not isinstance(assistant_reply_json, dict): - return ( - "Error:", - f"The previous message sent was not a dictionary {assistant_reply_json}", - ) - - command = assistant_reply_json["command"] - if not isinstance(command, dict): - return "Error:", "'command' object is not a dictionary" - - if "name" not in command: - return "Error:", "Missing 'name' field in 'command' object" - - command_name = command["name"] - - # Use an empty dictionary if 'args' field is not present in 'command' object - arguments = command.get("args", {}) - - return command_name, arguments - except json.decoder.JSONDecodeError: - return "Error:", "Invalid JSON" - # All other errors, return "Error: + error message" - except Exception as e: - return "Error:", str(e) - - -def execute_command( - command_name: str, - arguments: dict[str, str], - agent: Agent, -): - """Execute the command and return the result - - Args: - command_name (str): The name of the command to execute - arguments (dict): The arguments for the command - agent (Agent): The agent that is executing the command - - Returns: - str: The result of the command - """ - try: - # Execute a native command with the same name or alias, if it exists - if command := agent.command_registry.get_command(command_name): - return command(**arguments, agent=agent) - - # Handle non-native commands (e.g. from plugins) - for command in agent.ai_config.prompt_generator.commands: - if ( - command_name == command["label"].lower() - or command_name == command["name"].lower() - ): - return command["function"](**arguments) - - raise RuntimeError( - f"Cannot execute '{command_name}': unknown command." - " Do not try to use this command again." - ) - except Exception as e: - return f"Error: {str(e)}" diff --git a/autogpt/main.py b/autogpt/main.py index 08ac4b40..4ef3fc94 100644 --- a/autogpt/main.py +++ b/autogpt/main.py @@ -28,7 +28,6 @@ COMMAND_CATEGORIES = [ "autogpt.commands.file_operations", "autogpt.commands.web_search", "autogpt.commands.web_selenium", - "autogpt.app", "autogpt.commands.task_statuses", ] diff --git a/tests/unit/test_agent.py b/tests/unit/test_agent.py index 3fb896ba..351454be 100644 --- a/tests/unit/test_agent.py +++ b/tests/unit/test_agent.py @@ -1,46 +1,27 @@ -from unittest.mock import MagicMock - -import pytest - -from autogpt.agent import Agent -from autogpt.config import AIConfig -from autogpt.config.config import Config - - -@pytest.fixture -def agent(config: Config): - ai_name = "Test AI" - memory = MagicMock() - next_action_count = 0 - command_registry = MagicMock() - ai_config = AIConfig(ai_name=ai_name) - system_prompt = "System prompt" - triggering_prompt = "Triggering prompt" - workspace_directory = "workspace_directory" - - agent = Agent( - ai_name=ai_name, - memory=memory, - next_action_count=next_action_count, - command_registry=command_registry, - ai_config=ai_config, - config=config, - system_prompt=system_prompt, - triggering_prompt=triggering_prompt, - workspace_directory=workspace_directory, - ) - return agent +from autogpt.agent.agent import Agent, execute_command def test_agent_initialization(agent: Agent): - assert agent.ai_name == "Test AI" - assert agent.memory == agent.memory + assert agent.ai_name == "Base" assert agent.history.messages == [] assert agent.next_action_count == 0 - assert agent.command_registry == agent.command_registry - assert agent.ai_config == agent.ai_config - assert agent.system_prompt == "System prompt" - assert agent.triggering_prompt == "Triggering prompt" + + +def test_execute_command_plugin(agent: Agent): + """Test that executing a command that came from a plugin works as expected""" + command_name = "check_plan" + agent.ai_config.prompt_generator.add_command( + command_name, + "Read the plan.md with the next goals to achieve", + {}, + lambda: "hi", + ) + command_result = execute_command( + command_name=command_name, + arguments={}, + agent=agent, + ) + assert command_result == "hi" # More test methods can be added for specific agent interactions diff --git a/tests/unit/test_execute_command.py b/tests/unit/test_execute_command.py deleted file mode 100644 index 21fb0b66..00000000 --- a/tests/unit/test_execute_command.py +++ /dev/null @@ -1,23 +0,0 @@ -from autogpt.agent import Agent -from autogpt.app import execute_command - - -def check_plan(): - return "hi" - - -def test_execute_command_plugin(agent: Agent): - """Test that executing a command that came from a plugin works as expected""" - command_name = "check_plan" - agent.ai_config.prompt_generator.add_command( - command_name, - "Read the plan.md with the next goals to achieve", - {}, - check_plan, - ) - command_result = execute_command( - command_name=command_name, - arguments={}, - agent=agent, - ) - assert command_result == "hi" From c9adedf746758817913f334098110350fb21f8ce Mon Sep 17 00:00:00 2001 From: James Collins Date: Thu, 13 Jul 2023 07:31:49 -0700 Subject: [PATCH 27/33] Refactor/rename agent subpackage to agents (#4961) * Add links to github issues in the README and clarify run instructions * Rename agent subpackage to agents * Revert all unwanted changes * Use relative import in `agents/__init__.py` --------- Co-authored-by: Reinier van der Leer --- autogpt/agent/__init__.py | 3 --- autogpt/agents/__init__.py | 3 +++ autogpt/{agent => agents}/agent.py | 0 autogpt/commands/decorators.py | 2 +- autogpt/commands/execute_code.py | 2 +- autogpt/commands/file_operations.py | 2 +- autogpt/commands/git_operations.py | 2 +- autogpt/commands/image_gen.py | 2 +- autogpt/commands/task_statuses.py | 2 +- autogpt/commands/web_search.py | 2 +- autogpt/commands/web_selenium.py | 2 +- autogpt/llm/chat.py | 2 +- autogpt/main.py | 2 +- autogpt/memory/message_history.py | 2 +- benchmarks.py | 2 +- tests/challenges/debug_code/test_debug_code_challenge_a.py | 2 +- tests/conftest.py | 2 +- tests/integration/agent_factory.py | 2 +- tests/integration/test_execute_code.py | 2 +- tests/integration/test_image_gen.py | 2 +- tests/integration/test_web_selenium.py | 2 +- tests/unit/test_agent.py | 2 +- tests/unit/test_file_operations.py | 2 +- tests/unit/test_git_commands.py | 2 +- tests/unit/test_message_history.py | 2 +- tests/unit/test_web_search.py | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) delete mode 100644 autogpt/agent/__init__.py create mode 100644 autogpt/agents/__init__.py rename autogpt/{agent => agents}/agent.py (100%) diff --git a/autogpt/agent/__init__.py b/autogpt/agent/__init__.py deleted file mode 100644 index 90d1148c..00000000 --- a/autogpt/agent/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from autogpt.agent.agent import Agent - -__all__ = ["Agent"] diff --git a/autogpt/agents/__init__.py b/autogpt/agents/__init__.py new file mode 100644 index 00000000..a6df24ad --- /dev/null +++ b/autogpt/agents/__init__.py @@ -0,0 +1,3 @@ +from .agent import Agent + +__all__ = ["Agent"] diff --git a/autogpt/agent/agent.py b/autogpt/agents/agent.py similarity index 100% rename from autogpt/agent/agent.py rename to autogpt/agents/agent.py diff --git a/autogpt/commands/decorators.py b/autogpt/commands/decorators.py index 3528af04..b63c76d5 100644 --- a/autogpt/commands/decorators.py +++ b/autogpt/commands/decorators.py @@ -2,7 +2,7 @@ import functools from pathlib import Path from typing import Callable -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.logs import logger diff --git a/autogpt/commands/execute_code.py b/autogpt/commands/execute_code.py index aad93193..2403b2ba 100644 --- a/autogpt/commands/execute_code.py +++ b/autogpt/commands/execute_code.py @@ -7,7 +7,7 @@ import docker from docker.errors import DockerException, ImageNotFound from docker.models.containers import Container as DockerContainer -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.config import Config from autogpt.logs import logger diff --git a/autogpt/commands/file_operations.py b/autogpt/commands/file_operations.py index 0a06da31..939b7dc1 100644 --- a/autogpt/commands/file_operations.py +++ b/autogpt/commands/file_operations.py @@ -8,7 +8,7 @@ import os.path from pathlib import Path from typing import Generator, Literal -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.logs import logger from autogpt.memory.vector import MemoryItem, VectorMemory diff --git a/autogpt/commands/git_operations.py b/autogpt/commands/git_operations.py index 276031f7..021157fb 100644 --- a/autogpt/commands/git_operations.py +++ b/autogpt/commands/git_operations.py @@ -2,7 +2,7 @@ from git.repo import Repo -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.url_utils.validators import validate_url diff --git a/autogpt/commands/image_gen.py b/autogpt/commands/image_gen.py index b1a89b28..abae6149 100644 --- a/autogpt/commands/image_gen.py +++ b/autogpt/commands/image_gen.py @@ -9,7 +9,7 @@ import openai import requests from PIL import Image -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.logs import logger diff --git a/autogpt/commands/task_statuses.py b/autogpt/commands/task_statuses.py index 062ebe3a..34908928 100644 --- a/autogpt/commands/task_statuses.py +++ b/autogpt/commands/task_statuses.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import NoReturn -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.logs import logger diff --git a/autogpt/commands/web_search.py b/autogpt/commands/web_search.py index d47d680b..9ea0d206 100644 --- a/autogpt/commands/web_search.py +++ b/autogpt/commands/web_search.py @@ -7,7 +7,7 @@ from itertools import islice from duckduckgo_search import DDGS -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command DUCKDUCKGO_MAX_ATTEMPTS = 3 diff --git a/autogpt/commands/web_selenium.py b/autogpt/commands/web_selenium.py index 821957f3..948d799e 100644 --- a/autogpt/commands/web_selenium.py +++ b/autogpt/commands/web_selenium.py @@ -27,7 +27,7 @@ from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.firefox import GeckoDriverManager from webdriver_manager.microsoft import EdgeChromiumDriverManager as EdgeDriverManager -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.command_decorator import command from autogpt.logs import logger from autogpt.memory.vector import MemoryItem, get_memory diff --git a/autogpt/llm/chat.py b/autogpt/llm/chat.py index 4364cb1d..f08fdab4 100644 --- a/autogpt/llm/chat.py +++ b/autogpt/llm/chat.py @@ -4,7 +4,7 @@ import time from typing import TYPE_CHECKING if TYPE_CHECKING: - from autogpt.agent.agent import Agent + from autogpt.agents.agent import Agent from autogpt.config import Config from autogpt.llm.api_manager import ApiManager diff --git a/autogpt/main.py b/autogpt/main.py index 4ef3fc94..0da2d193 100644 --- a/autogpt/main.py +++ b/autogpt/main.py @@ -6,7 +6,7 @@ from typing import Optional from colorama import Fore, Style -from autogpt.agent import Agent +from autogpt.agents import Agent from autogpt.config.config import ConfigBuilder, check_openai_api_key from autogpt.configurator import create_config from autogpt.logs import logger diff --git a/autogpt/memory/message_history.py b/autogpt/memory/message_history.py index 30dbbb80..c718f2ed 100644 --- a/autogpt/memory/message_history.py +++ b/autogpt/memory/message_history.py @@ -6,7 +6,7 @@ from dataclasses import dataclass from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: - from autogpt.agent import Agent + from autogpt.agents import Agent from autogpt.config import Config from autogpt.json_utils.utilities import extract_json_from_response diff --git a/benchmarks.py b/benchmarks.py index cb592be8..2e143f9d 100644 --- a/benchmarks.py +++ b/benchmarks.py @@ -1,4 +1,4 @@ -from autogpt.agent import Agent +from autogpt.agents import Agent from autogpt.config import AIConfig, Config, ConfigBuilder from autogpt.main import COMMAND_CATEGORIES from autogpt.memory.vector import get_memory diff --git a/tests/challenges/debug_code/test_debug_code_challenge_a.py b/tests/challenges/debug_code/test_debug_code_challenge_a.py index 90a7084d..c846f9ce 100644 --- a/tests/challenges/debug_code/test_debug_code_challenge_a.py +++ b/tests/challenges/debug_code/test_debug_code_challenge_a.py @@ -3,7 +3,7 @@ from pathlib import Path import pytest from pytest_mock import MockerFixture -from autogpt.agent import Agent +from autogpt.agents import Agent from autogpt.commands.execute_code import execute_python_file from autogpt.workspace import Workspace from tests.challenges.challenge_decorator.challenge_decorator import challenge diff --git a/tests/conftest.py b/tests/conftest.py index 64e84024..09d358e6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,7 @@ import pytest import yaml from pytest_mock import MockerFixture -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.config import AIConfig, Config, ConfigBuilder from autogpt.config.ai_config import AIConfig from autogpt.llm.api_manager import ApiManager diff --git a/tests/integration/agent_factory.py b/tests/integration/agent_factory.py index 664c6cbb..d3832c27 100644 --- a/tests/integration/agent_factory.py +++ b/tests/integration/agent_factory.py @@ -1,6 +1,6 @@ import pytest -from autogpt.agent import Agent +from autogpt.agents import Agent from autogpt.config import AIConfig, Config from autogpt.memory.vector import get_memory from autogpt.models.command_registry import CommandRegistry diff --git a/tests/integration/test_execute_code.py b/tests/integration/test_execute_code.py index b7be8622..80010c6f 100644 --- a/tests/integration/test_execute_code.py +++ b/tests/integration/test_execute_code.py @@ -7,7 +7,7 @@ import tempfile import pytest import autogpt.commands.execute_code as sut # system under testing -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.config import Config diff --git a/tests/integration/test_image_gen.py b/tests/integration/test_image_gen.py index 8cdcfd98..0a9f6897 100644 --- a/tests/integration/test_image_gen.py +++ b/tests/integration/test_image_gen.py @@ -6,7 +6,7 @@ from unittest.mock import patch import pytest from PIL import Image -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.commands.image_gen import generate_image, generate_image_with_sd_webui diff --git a/tests/integration/test_web_selenium.py b/tests/integration/test_web_selenium.py index e900b4b3..43de2860 100644 --- a/tests/integration/test_web_selenium.py +++ b/tests/integration/test_web_selenium.py @@ -1,7 +1,7 @@ import pytest from pytest_mock import MockerFixture -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.commands.web_selenium import browse_website diff --git a/tests/unit/test_agent.py b/tests/unit/test_agent.py index 351454be..7baeeb64 100644 --- a/tests/unit/test_agent.py +++ b/tests/unit/test_agent.py @@ -1,4 +1,4 @@ -from autogpt.agent.agent import Agent, execute_command +from autogpt.agents.agent import Agent, execute_command def test_agent_initialization(agent: Agent): diff --git a/tests/unit/test_file_operations.py b/tests/unit/test_file_operations.py index f9c571d8..d7d870a5 100644 --- a/tests/unit/test_file_operations.py +++ b/tests/unit/test_file_operations.py @@ -12,7 +12,7 @@ import pytest from pytest_mock import MockerFixture import autogpt.commands.file_operations as file_ops -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.config import Config from autogpt.memory.vector.memory_item import MemoryItem from autogpt.memory.vector.utils import Embedding diff --git a/tests/unit/test_git_commands.py b/tests/unit/test_git_commands.py index a6defdfc..9f56a384 100644 --- a/tests/unit/test_git_commands.py +++ b/tests/unit/test_git_commands.py @@ -2,7 +2,7 @@ import pytest from git.exc import GitCommandError from git.repo.base import Repo -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.commands.git_operations import clone_repository diff --git a/tests/unit/test_message_history.py b/tests/unit/test_message_history.py index 9b275252..ec01cd55 100644 --- a/tests/unit/test_message_history.py +++ b/tests/unit/test_message_history.py @@ -4,7 +4,7 @@ from unittest.mock import MagicMock import pytest -from autogpt.agent import Agent +from autogpt.agents import Agent from autogpt.config import AIConfig from autogpt.config.config import Config from autogpt.llm.base import ChatModelResponse, ChatSequence, Message diff --git a/tests/unit/test_web_search.py b/tests/unit/test_web_search.py index 4f514306..790b1c2f 100644 --- a/tests/unit/test_web_search.py +++ b/tests/unit/test_web_search.py @@ -3,7 +3,7 @@ import json import pytest from googleapiclient.errors import HttpError -from autogpt.agent.agent import Agent +from autogpt.agents.agent import Agent from autogpt.commands.web_search import google, safe_google_results, web_search From a0f5aa942de3a94ce6a173c784d7a73b17a134a6 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Thu, 13 Jul 2023 18:35:50 +0200 Subject: [PATCH 28/33] Fix Netlify preview builds --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 43e79f0f..de261908 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,4 +3,4 @@ [build] publish = "public/" command = "mkdocs build -d public" - ignore = "git diff --quiet HEAD^ HEAD docs mkdocs.yml CONTRIBUTING.md CODE_OF_CONDUCT.md LICENSE" + ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF docs mkdocs.yml CONTRIBUTING.md CODE_OF_CONDUCT.md LICENSE" From ed12b2c7d6036e16ac49123d62963f0819861fdd Mon Sep 17 00:00:00 2001 From: Antonov Maxim <99024963+antonovmaxim@users.noreply.github.com> Date: Thu, 13 Jul 2023 20:21:25 +0300 Subject: [PATCH 29/33] Allow absolute paths when not restricting to workspace root (#4946) * restrict_to_root fix * Fix formatting --------- Co-authored-by: Reinier van der Leer --- autogpt/workspace/workspace.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/autogpt/workspace/workspace.py b/autogpt/workspace/workspace.py index 6d90f854..07186e73 100644 --- a/autogpt/workspace/workspace.py +++ b/autogpt/workspace/workspace.py @@ -123,7 +123,11 @@ class Workspace: logger.debug(f"Resolved root as '{root}'") # Allow exception for absolute paths if they are contained in your workspace directory. - if relative_path.is_absolute() and not relative_path.is_relative_to(root): + if ( + relative_path.is_absolute() + and restrict_to_root + and not relative_path.is_relative_to(root) + ): raise ValueError( f"Attempted to access absolute path '{relative_path}' in workspace '{root}'." ) From 7c4fc45b4a536e6423b6491c34953a2516863d78 Mon Sep 17 00:00:00 2001 From: Vasek Mlejnsky Date: Thu, 13 Jul 2023 18:14:57 -0600 Subject: [PATCH 30/33] Add initial share logs page (#4965) * Add initial share logs page * Fix title sizes * Update share_logs.md Added some text for reasons to share logs * Add section on how to share logs using e2b * Fix path to images with sizes * Fix paths to images in docs * Fix formatting * Fix formatting * Fix grammar * Make position in menu more prominent * original log directory was incorrect I took the directory from usage.md but that is incorrect * Updated the directory for the logs Updated the directory for the logs * added some text and made it pretty --------- Co-authored-by: NeonN3mesis <129052650+NeonN3mesis@users.noreply.github.com> Co-authored-by: Reinier van der Leer --- docs/imgs/e2b-dashboard.png | Bin 0 -> 515634 bytes docs/imgs/e2b-log-url.png | Bin 0 -> 43687 bytes docs/imgs/e2b-new-tag.png | Bin 0 -> 47736 bytes docs/imgs/e2b-tag-button.png | Bin 0 -> 20635 bytes docs/share-your-logs.md | 52 +++++++++++++++++++++++++++++++++++ docs/usage.md | 12 ++++++-- mkdocs.yml | 3 +- 7 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 docs/imgs/e2b-dashboard.png create mode 100644 docs/imgs/e2b-log-url.png create mode 100644 docs/imgs/e2b-new-tag.png create mode 100644 docs/imgs/e2b-tag-button.png create mode 100644 docs/share-your-logs.md diff --git a/docs/imgs/e2b-dashboard.png b/docs/imgs/e2b-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..456f1490cc1eba08b75bdfa6e3a414cdccbf9d3f GIT binary patch literal 515634 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

D+Ox>v2OFTmkPa-Z!3A9PW&lyTwR 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≪B|~4j6D>!HW`)Qq2F#6vK}8L1C`>P6kr~& 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

(e@J4?9!u!Tl!#q@|34jabA5!44Mg}~* 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%0ADcyUV?;V5}ue4REU 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 literal 0 HcmV?d00001 diff --git a/docs/imgs/e2b-new-tag.png b/docs/imgs/e2b-new-tag.png new file mode 100644 index 0000000000000000000000000000000000000000..65a0a767cdf34a6c4fc4d88596baa7de8bb0daa1 GIT binary patch literal 47736 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]f&4uB@P&* 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 literal 0 HcmV?d00001 diff --git a/docs/share-your-logs.md b/docs/share-your-logs.md new file mode 100644 index 00000000..f673e375 --- /dev/null +++ b/docs/share-your-logs.md @@ -0,0 +1,52 @@ +## Share your logs with us to help improve Auto-GPT + +Do you notice weird behavior with your agent? Do you have an interesting use case? Do you have a bug you want to report? +Follow the steps below to enable your logs and upload them. You can include these logs when making an issue report or discussing an issue with us. + +### Enable Debug Logs +Activity, Error, and Debug logs are located in `./logs` + +To print out debug logs: + +``` shell +./run.sh --debug # on Linux / macOS + +.\run.bat --debug # on Windows + +docker-compose run --rm auto-gpt --debug # in Docker +``` + +### Inspect and share logs +You can inspect and share logs via [e2b](https://e2b.dev). +![E2b logs dashboard](./imgs/e2b-dashboard.png) + + + +1. Go to [autogpt.e2b.dev](https://autogpt.e2b.dev) and sign in. +2. You'll see logs from other members of the AutoGPT team that you can inspect. +3. Or you upload your own logs. Click on the "Upload log folder" button and select the debug logs dir that you generated. Wait a 1-2 seconds and the page reloads. +4. You can share logs via sharing the URL in your browser. +![E2b log URL](./imgs/e2b-log-url.png) + + +### Add tags to logs +You can add custom tags to logs for other members of your team. This is useful if you want to indicate that the agent is for example having issues with challenges. + +E2b offers 3 types of severity: + +- Success +- Warning +- Error + +You can name your tag any way you want. + +#### How to add a tag +1. Click on the "plus" button on the left from the logs folder name. + +![E2b tag button](./imgs/e2b-tag-button.png) + +2. Type the name of a new tag. + +3. Select the severity. + +![E2b new tag](./imgs/e2b-new-tag.png) diff --git a/docs/usage.md b/docs/usage.md index a9ef2883..cb74ef7f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -89,12 +89,20 @@ This may give your bot increased intelligence. ## Logs -Activity and error logs are located in the `./output/logs` +Activity, Error, and Debug logs are located in `./logs` + +!!! tip + Do you notice weird behavior with your agent? Do you have an interesting use case? Do you have a bug you want to report? + Follow the step below to enable your logs. You can include these logs when making an issue report or discussing an issue with us. To print out debug logs: ``` shell -./run.sh --debug +./run.sh --debug # on Linux / macOS + +.\run.bat --debug # on Windows + +docker-compose run --rm auto-gpt --debug # in Docker ``` ## Disabling Command Categories diff --git a/mkdocs.yml b/mkdocs.yml index 50e06257..a8500445 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -12,7 +12,8 @@ nav: - Voice: configuration/voice.md - Image Generation: configuration/imagegen.md - - Contributing: + - Help us improve Auto-GPT: + - Share your debug logs with us: share-your-logs.md - Contribution guide: contributing.md - Running tests: testing.md - Code of Conduct: code-of-conduct.md From 376ecf0c5f1180739b94b68b4ee5cdcd7dca2f09 Mon Sep 17 00:00:00 2001 From: GECORegulatory <121075828+GECORegulatory@users.noreply.github.com> Date: Fri, 14 Jul 2023 12:24:49 -0400 Subject: [PATCH 31/33] Replaced Fictitious color name Fore.ORANGE (#4972) 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 --- autogpt/config/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogpt/config/config.py b/autogpt/config/config.py index ae2f7bed..cb3f26d3 100644 --- a/autogpt/config/config.py +++ b/autogpt/config/config.py @@ -367,7 +367,7 @@ def check_openai_api_key(config: Config) -> None: print( Fore.GREEN + "OpenAI API key successfully set!\n" - + Fore.ORANGE + + Fore.YELLOW + "NOTE: The API key you've set is only temporary.\n" + "For longer sessions, please set it in .env file" + Fore.RESET From 515742ee61387593e0c6b21b15e92e35ead78a09 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Mon, 17 Jul 2023 19:11:55 +0200 Subject: [PATCH 32/33] Fix loading the plugins config (#5000) --- autogpt/config/config.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/autogpt/config/config.py b/autogpt/config/config.py index cb3f26d3..b41ff68a 100644 --- a/autogpt/config/config.py +++ b/autogpt/config/config.py @@ -290,11 +290,6 @@ class ConfigBuilder(Configurable[Config]): config_dict["plugins_allowlist"] = _safe_split(os.getenv("ALLOWLISTED_PLUGINS")) config_dict["plugins_denylist"] = _safe_split(os.getenv("DENYLISTED_PLUGINS")) - config_dict["plugins_config"] = PluginsConfig.load_config( - config_dict["plugins_config_file"], - config_dict["plugins_denylist"], - config_dict["plugins_allowlist"], - ) with contextlib.suppress(TypeError): config_dict["image_size"] = int(os.getenv("IMAGE_SIZE")) @@ -318,7 +313,17 @@ class ConfigBuilder(Configurable[Config]): k: v for k, v in config_dict.items() if v is not None } - return cls.build_agent_configuration(config_dict_without_none_values) + config = cls.build_agent_configuration(config_dict_without_none_values) + + # Set secondary config variables (that depend on other config variables) + + config.plugins_config = PluginsConfig.load_config( + config.plugins_config_file, + config.plugins_denylist, + config.plugins_allowlist, + ) + + return config @classmethod def load_azure_config(cls, config_file: str = AZURE_CONFIG_FILE) -> Dict[str, str]: From d76317fbf38945df2aa65e6d1fc26acae3739ead Mon Sep 17 00:00:00 2001 From: Luke <2609441+lc0rp@users.noreply.github.com> Date: Mon, 17 Jul 2023 20:11:30 -0400 Subject: [PATCH 33/33] Update BULLETIN.md and version numbers (#5002) Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com> --- BULLETIN.md | 29 +++++++++++++---------------- pyproject.toml | 2 +- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/BULLETIN.md b/BULLETIN.md index 117a436a..a857a7ce 100644 --- a/BULLETIN.md +++ b/BULLETIN.md @@ -4,26 +4,23 @@ 📖 *User Guide*: https://docs.agpt.co. 👩 *Contributors Wiki*: https://github.com/Significant-Gravitas/Auto-GPT/wiki/Contributing. -# v0.4.4 RELEASE HIGHLIGHTS! 🚀 +# v0.4.5 RELEASE HIGHLIGHTS! 🚀 # ----------------------------- -## GPT-4 is back! -Following OpenAI's recent GPT-4 GA announcement, the SMART_LLM .env setting -now defaults to GPT-4, and Auto-GPT will use GPT-4 by default in its main loop. +This release includes under-the-hood improvements and bug fixes, such as more +accurate token counts for OpenAI functions, faster CI builds, improved plugin +handling, and refactoring of the Config class for better maintainability. -### !! High Costs Warning !! 💰💀🚨 -GPT-4 costs ~20x more than GPT-3.5-turbo. -Please take note of this before using SMART_LLM. You can use `--gpt3only` -or `--gpt4only` to force the use of GPT-3.5-turbo or GPT-4, respectively, -at runtime. +We have also released some documentation updates, including: -## Re-arch v1 preview release! -We've released a preview version of the re-arch code, under `autogpt/core`. -This is a major milestone for us, and we're excited to continue working on it. -We look forward to your feedback. Follow the process here: -https://github.com/Significant-Gravitas/Auto-GPT/issues/4770. +- *How to share your system logs* + Visit [docs/share-your-logs.md] to learn how to how to share logs with us + via a log analyzer graciously contributed by https://www.e2b.dev/ -## Other highlights -Other fixes include plugins regressions, Azure config and security patches. +- *Auto-GPT re-architecture documentation* + You can learn more about the inner-workings of the Auto-GPT re-architecture + released last cycle, via these links: + * [autogpt/core/README.md] + * [autogpt/core/ARCHITECTURE_NOTES.md] Take a look at the Release Notes on Github for the full changelog! https://github.com/Significant-Gravitas/Auto-GPT/releases. diff --git a/pyproject.toml b/pyproject.toml index 06b2f87f..f16ee501 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "agpt" -version = "0.4.4" +version = "0.4.5" authors = [ { name="Torantulino", email="support@agpt.co" }, ]