diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 87ca39d27398..f31cdebadb81 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,26 +1,13 @@ -# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3-bullseye, 3.10-bullseye, 3-buster, 3.10-buster -ARG VARIANT=3-bullseye +# Use an official Python base image from the Docker Hub FROM python:3.10 -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - # Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131 - && apt-get purge -y imagemagick imagemagick-6-common +# Install browsers +RUN apt-get update && apt-get install -y \ + chromium-driver firefox-esr \ + ca-certificates -# Temporary: Upgrade python packages due to https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40897 -# They are installed by the base image (python) which does not have the patch. -RUN python3 -m pip install --upgrade setuptools +# Install utilities +RUN apt-get install -y curl jq wget git -# Install Chromium for web browsing -RUN apt-get install -y chromium-driver - -# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image. -# COPY requirements.txt /tmp/pip-tmp/ -# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ -# && rm -rf /tmp/pip-tmp - -# [Optional] Uncomment this section to install additional OS packages. -# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ -# && apt-get -y install --no-install-recommends - -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 +# Declare working directory +WORKDIR /workspace/Auto-GPT diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f26810fb540e..5d50e280c39a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,14 +1,14 @@ { - "build": { - "dockerfile": "./Dockerfile", - "context": "." - }, + "dockerComposeFile": "./docker-compose.yml", + "service": "auto-gpt", + "workspaceFolder": "/workspace/Auto-GPT", + "shutdownAction": "stopCompose", "features": { "ghcr.io/devcontainers/features/common-utils:2": { "installZsh": "true", "username": "vscode", - "userUid": "1000", - "userGid": "1000", + "userUid": "6942", + "userGid": "6942", "upgradePackages": "true" }, "ghcr.io/devcontainers/features/desktop-lite:1": {}, diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 000000000000..90d8c1168be1 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,19 @@ +# To boot the app run the following: +# docker-compose run auto-gpt +version: '3.9' + +services: + auto-gpt: + depends_on: + - redis + build: + dockerfile: .devcontainer/Dockerfile + context: ../ + tty: true + environment: + MEMORY_BACKEND: ${MEMORY_BACKEND:-redis} + REDIS_HOST: ${REDIS_HOST:-redis} + volumes: + - ../:/workspace/Auto-GPT + redis: + image: 'redis/redis-stack-server:latest' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e736a036ec0f..9af38b294787 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -127,3 +127,22 @@ When you run Pytest locally: - Or: The test might be poorly written. In that case, you can make suggestions to change the test. In our CI pipeline, Pytest will use the cassettes and not call paid API providers, so we need your help to record the replays that you break. + + +### Community Challenges +Challenges are goals we need Auto-GPT to achieve. +To pick the challenge you like, go to the tests/integration/challenges folder and select the areas you would like to work on. +- a challenge is new if level_currently_beaten is None +- a challenge is in progress if level_currently_beaten is greater or equal to 1 +- a challenge is beaten if level_currently_beaten = max_level + +Here is an example of how to run the memory challenge A and attempt to beat level 3. + +pytest -s tests/integration/challenges/memory/test_memory_challenge_a.py --level=3 + +To beat a challenge, you're not allowed to change anything in the tests folder, you have to add code in the autogpt folder + +Challenges use cassettes. Cassettes allow us to replay your runs in our CI pipeline. +Don't hesitate to delete the cassettes associated to the challenge you're working on if you need to. Otherwise it will keep replaying the last run. + +Once you've beaten a new level of a challenge, please create a pull request and we will analyze how you changed Auto-GPT to beat the challenge. diff --git a/autogpt/agent/agent_manager.py b/autogpt/agent/agent_manager.py index 1283fdaefbaf..17fb35d87841 100644 --- a/autogpt/agent/agent_manager.py +++ b/autogpt/agent/agent_manager.py @@ -4,9 +4,8 @@ from typing import List from autogpt.config.config import Config -from autogpt.llm import create_chat_completion +from autogpt.llm import Message, create_chat_completion from autogpt.singleton import Singleton -from autogpt.types.openai import Message class AgentManager(metaclass=Singleton): diff --git a/autogpt/commands/file_operations.py b/autogpt/commands/file_operations.py index 05f060887003..e518169148ef 100644 --- a/autogpt/commands/file_operations.py +++ b/autogpt/commands/file_operations.py @@ -264,7 +264,7 @@ def download_file(url, filename): progress = f"{readable_file_size(downloaded_size)} / {readable_file_size(total_size)}" spinner.update_message(f"{message} {progress}") - return f'Successfully downloaded and locally stored file: "{filename}"! (Size: {readable_file_size(total_size)})' + return f'Successfully downloaded and locally stored file: "{filename}"! (Size: {readable_file_size(downloaded_size)})' except requests.HTTPError as e: return f"Got an HTTP Error whilst trying to download file: {e}" except Exception as e: diff --git a/autogpt/commands/git_operations.py b/autogpt/commands/git_operations.py index fb74374cb7c6..22233108a32c 100644 --- a/autogpt/commands/git_operations.py +++ b/autogpt/commands/git_operations.py @@ -11,25 +11,25 @@ @command( "clone_repository", "Clone Repository", - '"repository_url": "", "clone_path": ""', + '"url": "", "clone_path": ""', CFG.github_username and CFG.github_api_key, "Configure github_username and github_api_key.", ) @validate_url -def clone_repository(repository_url: str, clone_path: str) -> str: +def clone_repository(url: str, clone_path: str) -> str: """Clone a GitHub repository locally. Args: - repository_url (str): The URL of the repository to clone. + url (str): The URL of the repository to clone. clone_path (str): The path to clone the repository to. Returns: str: The result of the clone operation. """ - split_url = repository_url.split("//") + split_url = url.split("//") auth_repo_url = f"//{CFG.github_username}:{CFG.github_api_key}@".join(split_url) try: - Repo.clone_from(auth_repo_url, clone_path) - return f"""Cloned {repository_url} to {clone_path}""" + Repo.clone_from(url=auth_repo_url, to_path=clone_path) + return f"""Cloned {url} to {clone_path}""" except Exception as e: return f"Error: {str(e)}" diff --git a/autogpt/llm/__init__.py b/autogpt/llm/__init__.py index 3a958285de06..2a6f0b8fe2d6 100644 --- a/autogpt/llm/__init__.py +++ b/autogpt/llm/__init__.py @@ -1,4 +1,13 @@ from autogpt.llm.api_manager import ApiManager +from autogpt.llm.base import ( + ChatModelInfo, + ChatModelResponse, + EmbeddingModelInfo, + EmbeddingModelResponse, + LLMResponse, + Message, + ModelInfo, +) from autogpt.llm.chat import chat_with_ai, create_chat_message, generate_context from autogpt.llm.llm_utils import ( call_ai_function, @@ -10,6 +19,13 @@ __all__ = [ "ApiManager", + "Message", + "ModelInfo", + "ChatModelInfo", + "EmbeddingModelInfo", + "LLMResponse", + "ChatModelResponse", + "EmbeddingModelResponse", "create_chat_message", "generate_context", "chat_with_ai", diff --git a/autogpt/llm/base.py b/autogpt/llm/base.py new file mode 100644 index 000000000000..722e0f0f1ed1 --- /dev/null +++ b/autogpt/llm/base.py @@ -0,0 +1,65 @@ +from dataclasses import dataclass, field +from typing import List, TypedDict + + +class Message(TypedDict): + """OpenAI Message object containing a role and the message content""" + + role: str + content: str + + +@dataclass +class ModelInfo: + """Struct for model information. + + Would be lovely to eventually get this directly from APIs, but needs to be scraped from + websites for now. + + """ + + name: str + prompt_token_cost: float + completion_token_cost: float + max_tokens: int + + +@dataclass +class ChatModelInfo(ModelInfo): + """Struct for chat model information.""" + + pass + + +@dataclass +class EmbeddingModelInfo(ModelInfo): + """Struct for embedding model information.""" + + embedding_dimensions: int + + +@dataclass +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 +class EmbeddingModelResponse(LLMResponse): + """Standard response struct for a response from an embedding model.""" + + 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.""" + + content: str = None diff --git a/autogpt/llm/chat.py b/autogpt/llm/chat.py index 119468c39f3e..e0f0226d1f16 100644 --- a/autogpt/llm/chat.py +++ b/autogpt/llm/chat.py @@ -5,13 +5,13 @@ from autogpt.config import Config from autogpt.llm.api_manager import ApiManager +from autogpt.llm.base import Message from autogpt.llm.llm_utils import create_chat_completion from autogpt.llm.token_counter import count_message_tokens from autogpt.logs import logger from autogpt.memory_management.store_memory import ( save_memory_trimmed_from_context_window, ) -from autogpt.types.openai import Message cfg = Config() diff --git a/autogpt/llm/llm_utils.py b/autogpt/llm/llm_utils.py index c1ba5fa5e0f5..9a2400c79478 100644 --- a/autogpt/llm/llm_utils.py +++ b/autogpt/llm/llm_utils.py @@ -10,8 +10,8 @@ from autogpt.config import Config from autogpt.llm.api_manager import ApiManager +from autogpt.llm.base import Message from autogpt.logs import logger -from autogpt.types.openai import Message def retry_openai_api( diff --git a/autogpt/llm/providers/__init__.py b/autogpt/llm/providers/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/autogpt/llm/providers/openai.py b/autogpt/llm/providers/openai.py new file mode 100644 index 000000000000..188d5cf75b46 --- /dev/null +++ b/autogpt/llm/providers/openai.py @@ -0,0 +1,37 @@ +from autogpt.llm.base import ChatModelInfo, EmbeddingModelInfo + +OPEN_AI_CHAT_MODELS = { + "gpt-3.5-turbo": ChatModelInfo( + name="gpt-3.5-turbo", + prompt_token_cost=0.002, + completion_token_cost=0.002, + max_tokens=4096, + ), + "gpt-4": ChatModelInfo( + name="gpt-4", + prompt_token_cost=0.03, + completion_token_cost=0.06, + max_tokens=8192, + ), + "gpt-4-32k": ChatModelInfo( + name="gpt-4-32k", + prompt_token_cost=0.06, + completion_token_cost=0.12, + max_tokens=32768, + ), +} + +OPEN_AI_EMBEDDING_MODELS = { + "text-embedding-ada-002": EmbeddingModelInfo( + name="text-embedding-ada-002", + prompt_token_cost=0.0004, + completion_token_cost=0.0, + max_tokens=8191, + embedding_dimensions=1536, + ), +} + +OPEN_AI_MODELS = { + **OPEN_AI_CHAT_MODELS, + **OPEN_AI_EMBEDDING_MODELS, +} diff --git a/autogpt/llm/token_counter.py b/autogpt/llm/token_counter.py index 2d50547b4ab6..5e13920ed8dd 100644 --- a/autogpt/llm/token_counter.py +++ b/autogpt/llm/token_counter.py @@ -5,8 +5,8 @@ import tiktoken +from autogpt.llm.base import Message from autogpt.logs import logger -from autogpt.types.openai import Message def count_message_tokens( diff --git a/autogpt/types/openai.py b/autogpt/types/openai.py deleted file mode 100644 index 2af85785b4f6..000000000000 --- a/autogpt/types/openai.py +++ /dev/null @@ -1,9 +0,0 @@ -"""Type helpers for working with the OpenAI library""" -from typing import TypedDict - - -class Message(TypedDict): - """OpenAI Message object containing a role and the message content""" - - role: str - content: str diff --git a/docs/testing.md b/docs/testing.md index 47cbecafcd42..9a1735966e95 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -28,7 +28,7 @@ python -m pytest :::shell pytest --cov=autogpt --without-integration --without-slow-integration -## Runing the linter +## Running the linter This project uses [flake8](https://flake8.pycqa.org/en/latest/) for linting. We currently use the following rules: `E303,W293,W291,W292,E305,E231,E302`. diff --git a/pyproject.toml b/pyproject.toml index fdb43d66e4c1..64926046683a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,25 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + [project] -name = "auto-gpt" -version = "0.1.0" -description = "A GPT based ai agent" +name = "agpt" +version = "0.2.2" +authors = [ + { name="Torantulino", email="support@agpt.co" }, +] readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] +description = "An open-source attempt to make GPT-4 autonomous" + +[project.urls] +"Homepage" = "https://github.com/Significant-Gravitas/Auto-GPT" +"Bug Tracker" = "https://github.com/Significant-Gravitas/Auto-GPT" [tool.black] line-length = 88 diff --git a/tests/browse_tests.py b/tests/browse_tests.py deleted file mode 100644 index 90692d8853a7..000000000000 --- a/tests/browse_tests.py +++ /dev/null @@ -1,29 +0,0 @@ -import os -import sys -import unittest - -from bs4 import BeautifulSoup - -sys.path.append(os.path.abspath("../scripts")) - -from browse import extract_hyperlinks - - -class TestBrowseLinks(unittest.TestCase): - """Unit tests for the browse module functions that extract hyperlinks.""" - - def test_extract_hyperlinks(self): - """Test the extract_hyperlinks function with a simple HTML body.""" - body = """ - - Google - Foo -
Some other crap
- - """ - soup = BeautifulSoup(body, "html.parser") - links = extract_hyperlinks(soup, "http://example.com") - self.assertEqual( - links, - [("Google", "https://google.com"), ("Foo", "http://example.com/foo.html")], - ) diff --git a/tests/integration/agent_factory.py b/tests/integration/agent_factory.py index 1cda93eb4400..8cb622ec002f 100644 --- a/tests/integration/agent_factory.py +++ b/tests/integration/agent_factory.py @@ -3,7 +3,7 @@ from autogpt.agent import Agent from autogpt.commands.command import CommandRegistry from autogpt.config import AIConfig, Config -from autogpt.memory import NoMemory, get_memory +from autogpt.memory import LocalCache, NoMemory, get_memory from autogpt.prompts.prompt import DEFAULT_TRIGGERING_PROMPT from autogpt.workspace import Workspace @@ -19,6 +19,16 @@ def agent_test_config(config: Config): config.set_temperature(was_temperature) +@pytest.fixture +def memory_local_cache(agent_test_config: Config): + was_memory_backend = agent_test_config.memory_backend + + agent_test_config.set_memory_backend("local_cache") + yield get_memory(agent_test_config, init=True) + + agent_test_config.set_memory_backend(was_memory_backend) + + @pytest.fixture def memory_none(agent_test_config: Config): was_memory_backend = agent_test_config.memory_backend @@ -101,3 +111,38 @@ def writer_agent(agent_test_config, memory_none: NoMemory, workspace: Workspace) ) return agent + + +@pytest.fixture +def memory_management_agent( + agent_test_config, memory_local_cache, workspace: Workspace +): + command_registry = CommandRegistry() + command_registry.import_commands("autogpt.commands.file_operations") + command_registry.import_commands("autogpt.app") + + ai_config = AIConfig( + ai_name="Follow-Instructions-GPT", + ai_role="an AI designed to read the instructions_1.txt file using the read_file method and follow the instructions in the file.", + ai_goals=[ + "Use the command read_file to read the instructions_1.txt file", + "Follow the instructions in the instructions_1.txt file", + ], + ) + ai_config.command_registry = command_registry + + system_prompt = ai_config.construct_full_prompt() + + agent = Agent( + ai_name="", + memory=memory_local_cache, + full_message_history=[], + command_registry=command_registry, + config=ai_config, + next_action_count=0, + system_prompt=system_prompt, + triggering_prompt=DEFAULT_TRIGGERING_PROMPT, + workspace_directory=workspace.root, + ) + + return agent diff --git a/tests/integration/challenges/__init__.py b/tests/integration/challenges/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/integration/challenges/conftest.py b/tests/integration/challenges/conftest.py new file mode 100644 index 000000000000..dce4518d8ce0 --- /dev/null +++ b/tests/integration/challenges/conftest.py @@ -0,0 +1,17 @@ +import pytest + + +def pytest_addoption(parser): + parser.addoption( + "--level", action="store", default=None, type=int, help="Specify test level" + ) + + +def pytest_configure(config): + config.option.level = config.getoption("--level") + + +@pytest.fixture +def user_selected_level(request) -> int: + ## used for challenges in the goal oriented tests + return request.config.option.level diff --git a/tests/integration/challenges/memory/__init__.py b/tests/integration/challenges/memory/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/integration/challenges/memory/cassettes/test_memory_challenge_a/test_memory_challenge_a.yaml b/tests/integration/challenges/memory/cassettes/test_memory_challenge_a/test_memory_challenge_a.yaml new file mode 100644 index 000000000000..dbd635335466 --- /dev/null +++ b/tests/integration/challenges/memory/cassettes/test_memory_challenge_a/test_memory_challenge_a.yaml @@ -0,0 +1,1454 @@ +interactions: +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}], "temperature": 0, "max_tokens": 3251}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3383' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA5yST4/aMBDF7/0U1pwdRIAFNjcuVVftZaVWldpUyDhD4l17HNmTLhTlu1chAVZQ + tdVe5897vzeaA5gCMtCVYu1qmyxWT3biH+vV5MHvF7Pdz4/mw1f3abN4xG/vQYLfPKHmYWOkvast + svEEEnRAxVhAls6Xk8X99G6ylOB8gRYyKGtOpqO7hJuw8cl4Ok5BQhNViZAdoA7e1bxm/4wUIVvM + 5hIu2ud6Ol9KYM/Knkv36ayVoCtvNEbIvh/AYTzJBm8RMlAxmsiKuIP0xEhdgENOQgiRA1e+KSuO + OWRiKA4N3HFXzOFBEGIh2IuAqhBcoTAUOTS644vrdMQ7FltjsZspkDE4Q3gcJNyx0N45RUeFJuIo + B/naKKCKngyVvdvnv8h3/MpQvGEQXCkWF9Ctt9a/XDvVVlFvkogvsQfsIq0H8TPlv3KO8pwSsSJl + 97/wDzBvuIIOho020V3fHCk2AU8BlRuyGSpvjbUPATXbveiMcLs12iCx3V+7xRrV88npxVjbIb39 + Hke7/4ncM7Ty9H3DwM3zkXLY4515rhKoUF7/bN/oZi/rt8AniCPIwJNTC62ErSETq3X/kJBBZF+D + BEMF7iAbtz/ad78BAAD//wMAZaybHTIEAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9a9ff2d0d6428-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:38:57 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '9047' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85995' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.67s + x-request-id: + - 4516accaac0d04bccb540241a7538089 + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''system'', ''content'': ''Command read_file returned: + This task_id is 2314\\nRead the file instructions_2.txt''}, {''role'': ''user'', + ''content'': ''Determine which next command to use, and respond using the format + specified above:''}, {''role'': ''assistant'', ''content'': ''{\\n \"thoughts\": + {\\n \"text\": \"I need to read the instructions_1.txt file to determine + the next command to use.\",\\n \"reasoning\": \"The instructions_1.txt + file contains the instructions that I need to follow.\",\\n \"plan\": + \"- Use the read_file command to read the instructions_1.txt file.\\\\n- Analyze + the instructions to determine the next command to use.\",\\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_1.txt\"\\n }\\n }\\n}''}]"], + "model": "text-embedding-ada-002", "encoding_format": "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1151' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + ++9//D8AAAD//wMAP557oeUgAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aa48f88a6428-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:00 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '105' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - 4b63030d949781709e3e3da468f83709 + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to read the instructions_1.txt file to determine the next command to + use.\",\n \"reasoning\": \"The instructions_1.txt file contains the instructions + that I need to follow.\",\n \"plan\": \"- Use the read_file command to + read the instructions_1.txt file.\\n- Analyze the instructions to determine + the next command to use.\",\n \"criticism\": \"I need to ensure that + I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_1.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: This task_id is 2314\nRead + the file instructions_2.txt"}, {"role": "user", "content": "Determine which + next command to use, and respond using the format specified above:"}], "temperature": + 0, "max_tokens": 3021}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '4440' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA5yST4/TMBDF73wKa85JlW5puptbD0jLiQsIAUGV15kk3trjYE9oS5XvjtIk7apF + gPY6f977vdEcQReQgaolK9uYeLV+Nu92SZqo+Tb5YR+//Pyw/py2ZfpVl48QgXt6RsXjxkw52xhk + 7QgiUB4lYwHZPL2/Wz0slm+TCKwr0EAGVcPxYraMufVPLk4WyRwiaIOsELIjNN7ZhjfstkgBsod0 + FcFF+1yfp/cRsGNpLqX5YtlFoGqnFQbIvh3BYph0vTMIGcgQdGBJ3FM6YqQ+wTEnIYTIgWvXVjWH + HDIxFscG7rkv5vBeEGIh2AmPshBco9AU2LeqBwybuxnvWZTaYD9TIKO3mvA0SLhnoZy1kk4KbcBZ + DtFLI48yONJUDW4f/yLf80tN4YZBcC1ZXEBLZ4zbXTs1RtJgEotPYQDsI21G8TPlv3LO8pxisSZp + Dr/wDzCvuILymrXSwV7fHCm0HqeA0o7ZNFW3xsp5j4rNQfRGWJZaaSQ2h2u30KDcTk47bUyP9Pp7 + nOz+J/LA0EXT940DN89H0uKAd+a5SiB9df2zQ6OfvazfAk8QJ5CRJ6cOughKTTrUm+EhIYPAroEI + NBW4hyzpvndvfgMAAP//AwD56qfzMwQAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aa4aaaa56428-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:10 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '10495' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85996' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.668s + x-request-id: + - 8a4f2cccf4cb6192b63c911d82abd833 + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''system'', ''content'': ''Command read_file returned: + Read the file instructions_3.txt''}, {''role'': ''system'', ''content'': ''Command + read_file returned: This task_id is 2314\\nRead the file instructions_2.txt''}, + {''role'': ''user'', ''content'': ''Determine which next command to use, and + respond using the format specified above:''}, {''role'': ''assistant'', ''content'': + ''{\\n \"thoughts\": {\\n \"text\": \"I need to read the instructions_2.txt + file to determine the next command to use.\",\\n \"reasoning\": \"The + instructions_2.txt file contains the instructions that I need to follow.\",\\n \"plan\": + \"- Use the read_file command to read the instructions_2.txt file.\\\\n- Analyze + the instructions to determine the next command to use.\",\\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_2.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_2.txt\"\\n }\\n }\\n}''}, + {''role'': ''assistant'', ''content'': ''{\\n \"thoughts\": {\\n \"text\": + \"I need to read the instructions_1.txt file to determine the next command to + use.\",\\n \"reasoning\": \"The instructions_1.txt file contains the + instructions that I need to follow.\",\\n \"plan\": \"- Use the read_file + command to read the instructions_1.txt file.\\\\n- Analyze the instructions + to determine the next command to use.\",\\n \"criticism\": \"I need to + ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_1.txt\"\\n }\\n }\\n}''}]"], + "model": "text-embedding-ada-002", "encoding_format": "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2085' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + P//1/wAAAP//AwBJaieS5SAAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aa9c391c6428-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:13 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '121' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - bc3576feee112cf82bb99b1ab4530d16 + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to read the instructions_1.txt file to determine the next command to + use.\",\n \"reasoning\": \"The instructions_1.txt file contains the instructions + that I need to follow.\",\n \"plan\": \"- Use the read_file command to + read the instructions_1.txt file.\\n- Analyze the instructions to determine + the next command to use.\",\n \"criticism\": \"I need to ensure that + I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_1.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: This task_id is 2314\nRead + the file instructions_2.txt"}, {"role": "user", "content": "Determine which + next command to use, and respond using the format specified above:"}, {"role": + "assistant", "content": "{\n \"thoughts\": {\n \"text\": \"I need + to read the instructions_2.txt file to determine the next command to use.\",\n \"reasoning\": + \"The instructions_2.txt file contains the instructions that I need to follow.\",\n \"plan\": + \"- Use the read_file command to read the instructions_2.txt file.\\n- Analyze + the instructions to determine the next command to use.\",\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_2.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_2.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: Read the file instructions_3.txt"}, + {"role": "user", "content": "Determine which next command to use, and respond + using the format specified above:"}], "temperature": 0, "max_tokens": 2801}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '5473' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA5ySy27bMBBF9/0KYtaSYVf1o9oF6SbbIF0UVWHQ1EhiQg4VctTINfTvBS05Duyi + LbKdx73nDuYAuoQcVCNZ2dak65tHc387//lt3pkm0H3/rO7K5/bhS3e7W0ACbveIiqeNmXK2Ncja + ESSgPErGEvLFavNx/TlbLrMErCvRQA51y2k2W6bc+Z1L59k8inVB1gj5AVrvbMtbdk9IAfLFYr1J + 4Cx+bqw2CbBjac6l7NNqSEA1TisMkH8/gMVwEvbOIOQgQ9CBJXHEdMRIMcKhICGEKIAb19UNhwJy + MRWnBvYciwXcCUIsBTvhUZaCGxSaAvtORcCwzWbcs6i0wThTIqO3mvA4SNizUM5aSUeFLuCsgOSt + kUcZHGmqR7eHv8hHfqkpXDEIbiSLM2jljHEvl06tkTSapOJrGAFjpO0k/kr5r5yzoqBU3JA0+1/4 + B5h3XEF5zVrpYC9vjhQ6j6eA0k7ZNNXXxsp5j4rNXkQjrCqtNBKb/aVbaFE+nZxetDER6f33ONr9 + T+SRYUhO3zcNXD0fSYsj3ivPRQLp68ufHRtx9rx+DXyCOIJMPAUNMCRQadKh2Y4PCTkEdi0koKnE + HvL58GP48BsAAP//AwC/PogcNAQAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aa9d7a3f6428-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:23 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '9467' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85995' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.67s + x-request-id: + - 10ccfb983a68d5f1e7b284af0cf6d8f2 + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''assistant'', ''content'': ''{\\n \"thoughts\": + {\\n \"text\": \"I need to read the instructions_2.txt file to determine + the next command to use.\",\\n \"reasoning\": \"The instructions_2.txt + file contains the instructions that I need to follow.\",\\n \"plan\": + \"- Use the read_file command to read the instructions_2.txt file.\\\\n- Analyze + the instructions to determine the next command to use.\",\\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_2.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_2.txt\"\\n }\\n }\\n}''}, + {''role'': ''assistant'', ''content'': ''{\\n \"thoughts\": {\\n \"text\": + \"I need to read the instructions_3.txt file to determine the next command to + use.\",\\n \"reasoning\": \"The instructions_3.txt file contains the + instructions that I need to follow.\",\\n \"plan\": \"- Use the read_file + command to read the instructions_3.txt file.\\\\n- Analyze the instructions + to determine the next command to use.\",\\n \"criticism\": \"I need to + ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_3.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_3.txt\"\\n }\\n }\\n}''}, + {''role'': ''system'', ''content'': ''Command read_file returned: Write the + task_id into the file output.txt\\nShutdown''}, {''role'': ''system'', ''content'': + ''Command read_file returned: Read the file instructions_3.txt''}, {''role'': + ''user'', ''content'': ''Determine which next command to use, and respond using + the format specified above:''}]"], "model": "text-embedding-ada-002", "encoding_format": + "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2083' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + H4sIAAAAAAAAA1SaSRO6Spfm9++nuHG39hsiInm4OwYFZMhEQNSOjg5ARXBAhkwgK+q7d+C/ojpq + 4wIzQJMzPM8vz3/866+//q6z6pb3f//z19+vsuv//l/ztWvap3//89f//tdff/3113/8Pv/Hyts7 + u12v5af4Lf99WX6ut/Hvf/4S/vvK/1/0z19/Hw3JYRmNmDGePm2CkP/dEY/auTupWfFUFHF6U+W0 + fbUT32UybI5Lxuzp21cd2voFGtpOZbE9xpztskoGPU/feOqyrzGgs1gDyXOR6GTo0XAg1wEON3Yh + 2tn+ZJyEsYqq4iwzHxaK8V2cYgAmrA1mhTrPxk2tq3JenhyyX4V1xk/2pUabtfplp720dl803VMU + BYqC19JBa6f13bAB8Xak7GyLVceKRylvoN4SsnMdNB5WY6Jc9QUi6uNr8+F61xvFXrwoM2z48MGd + cglUOW5JclVXaDhvCwlt79sQK1v1w+l0egEAi9bE2q18d7qpbY7GfBcQbbf9ZpNx9Z9IeIklMfTd + YEyrdF2C5z9ChpefUzW863UM2HlV+BnVXTSuQa1RgwMNL15ciDo7DT3l8xpCtt+mH/cbk7qW7mp+ + xJDfVgZTl9cS3WIRM/0SnNHUklsAh0tlEeP7KTkvv0kBF1u4kODs2e7kLlIdShwvyPYOTz5ode1B + 5OkuIfV943aVfJMA7uWZ+S4so/GzYR3a7gPCzlnGo7r6pDF6hfmKHd/1vh1cYX9DD/3AmO47Tz5U + yqCjl9VaxA/5yXgRnoawyJ9fcnRTlg1rdX+DLLivmb+4my4bF/sConUdskA2Vhk/TzRFg/M1qSij + NuLeq3aQP6gndnXhHvFnX9pQgCwQ7XE7ImHPViIoL9Yxo3B0YwVJmcPb/074TLDv0vaFFmDmdkVS + 7V2gCWtVDdslNZhfXBcZ+96+NVDDO5BQ129tvztECbgH5BGVR4x35PER4XZ5nci23rdZLX7WNnSt + NRJHfooutZ/NBIFPz8w/FGE7tFl7hvMVh8R/tjqfXvezAMlrsWNbT7ghWtBLDLcb/7Jd6MSI78xp + gAutcxLrGonWn1x/AqKBiOszPbvj6VMl8MYmIlYOR3e0k0MOfKXuiTVGp5Z7RM+Vwd0Soklcz6aW + JCH63B87CifbjPgVCwMcN9KKkI8uuT2qhVLpDwuGy+Szazm6ZQsUNsqB7O7S1lh3UiApXl3VdJO6 + ajYcm/G9RNV1z8yocDiXxsJU4vrWku0j5NXo544Jp2wxUMmrt+7QT+gJx6VlMW233UejvUQdRLnH + 2f4U11UT6IkDfooj3Nl4iwTfvVDYxwIi8eCtsjHXdzZI8YJSMZAfaHqcqQPUPlfEKY11xtO92MDt + 8jlhaTd2EX8oVwfwqJ2ZBf4mmvNThuVG25Nwjkfe3GNHYfebTYxbrxmD+t47G+31+DKv8bZZ9/qO + Z2RYrydxz+UR9U+XxHI3ThbTzag3eCpOOgoqK6JgKKJBM+UgorsjbLAwxwM3LlvhFw+0PG/Nan1k + sQiitt7g9jgF2UBvsJCpPtrEpRFxWbmwGjiXL59hxS74UKIA4NXLEdHRsWk5wx9T8Ranluhm5BtT + hvoQsOg3tDmyBX8d34MA5140iLmpTT6eIM/R+xZVxA6eGWJC4oVIN98VI5ZkutOxuKiwcpsX2c35 + x596lkD6XA8Y2S7P2OX+EMAWfIfybMMzyhJ1AaeAyXhpvh7VHF83lMatzfQC61wY7uwG/LJ/MOx0 + XrTW6aBDGJx3eFM9KB+dVtnC3Q11Rm5LanASq2+wl/qaitHl3E7KJxXhUZeIClfybbs2q1IFGcGD + JdKxjIb38qgjiKOS7BSxQow3ugQneD6IsTzs0bgNahHuquERfa/WFRdbJsFLNzpml6Hr8jVDBWyX + gczce1Jl/CKEAIb1eTLrPEm8qcsyBascVbI9TXXL5nxTppL1uLbcyh2fkt4h0fu+iR/EajYa0q0E + ozIM5uH1CfG0VCUgXoDZSV477XDWhQRGkyZYPr+Tdrw0Toq09u3TX33hahcAityXjmV6Kw1u9MoC + 3DwaaKrdcTWi2E1BeTsrPK3Doh3kTgmQPnkNU7mnVNOtlUOgvtsxlQU71ClXPQQprl5UTtU+42vz + EMAvXqwx3aNVuQ48qJgyEDuY1Gzo94dE2aeGT8zQFIy+OzUNzP2Ivt9Pm3/dk5jDCL1GtHRVtlPF + FjGEzqnA45owY4zL3kNH46oxc3DfBiMBy0E8SVesPNuScxJ88l+9JjtR2vC2k84SiGHnku3S37ur + cfJS2IwZZrq+D/hcbwAd7k6JxdB/Z9PrHgjKZjdaLF59Rbd6tsoTDYUU4eO9WVasXAoYcWG/JqYo + bFxambEJK1WU8NQsbGNcqOsA5FBdEu2srdzavQcJaK27JfjSF1nv0diBz9F5YLn9OJGogLuQi8M9 + wYqITy2/OEOnVNtlxvz45ESry/EQQq1ONfGNzTGb40tG+joF2h0pqaZoqkzlqgMih/ApuP32dQDl + 29cBMW5vjPg7C7aKo0oucb1c4+1nKkLFCMWM6WStGnwzvNXf/hEsLZ7V0O78DvA7d8k1UaKsX1eL + VMZovSP7Tf6c88/JYX1JPmz7zQkStZSWSA91nan4JrXck54UVok/sd9+TwavAvDjt0SR4gd8ksQs + kXeFFRMyGZ7BH9EkQZ3sS2Law6tlltUH8Cq/V+aH8jcrysBx0NbwW+bm39qYtl5tQtL0mBgXTzI6 + A04BPKidMNdnZjQeHjZGbt5t/vTPITmaKbgfRshefHWIPc+jCiFZIDxYNHKnaK8KEKnjkQRdfs6G + Sr7Jcv04X/CmxE7W0VXagL1U12TvPY1IaCfNhLn/0G/qFhHfTdpzvfQFl6XK2UBT8nAL8AybErvf + pe0I2pgox+XOouPrceecoTIH/bAfyKG77/kQ4CoE2x+PzCFm247f+GAq5eUYM9/sK+M1msob5PxS + McsiBhqOiXqTTypkWJq+frV6v4YamVmfMptNRzRdQ6VAVeCF7LR5vo1Zv+rA5NuNntJI4+Puvc2B + fvWYudQD3nNX8xRz/daZUzr7djVO21QubwtGtktT5Px4XtoQHQTCUp9bBgNvL0E3Dhbx1G1d/dED + JzdZ0v4qtO7zMjRYvo8hZVvykI3pcHknsGfrgD5XX9Hg68xJ5bXdiSw9v5Nqim1zQptROLHb3dFc + trsGuULW8hGPpIesm+8HR0N2KDfOcdVf1NpGu+Yq/dmPbrh/bgAxbZmhe3o2WksNK+Mptpj2PPYt + /wyog5V5i/BqLNuIzvEKXVvIzFP0Kx8yS84RNfCB7Qshapl+TmMQtmPNtDmfusEREwW39ZWctzeL + dy9YLWS47wj+npt1xu6EBajPh5xa9/Jm8FKrRXDckJG9dz0Y480MJmXOb6LeVsgY00aQkFsWCvGd + oTeY3hs3UBBIuK0VtRUKvzUhsLcK8wUUGRM+7xNYTOeeeFOiVmKQFinKD+zCPAepxpSFhg5a0yOm + +uE7++ljOEbtl4q7jY8mFOg1BNUuYn5NOzRE0SMF+8xbZirtwMeuiwZ0ek83tnVvgTH1i6GD+Bwa + DIdi3f78ljzXOwqzPhnqXgc09ydGokVqDFUgNCh0pi8d0vaG6Pz7lKk+2Qwf74h3/PDVIVfeKrM2 + T9P9/X/QR/5g7mknoHHzPuagxmVNPGU/GENQ5SkSS5mTfa9dkGA2S4psnx/xEtduK6iyHMhzfpBj + Eo/GBO86hobmX3K4ZC6ahnOhwwL4gbZ3Mhr9U9Ipeh7qnNhsWqFxR94TrA75l6kh+7gf/502yIHi + QE4WqRAXlrQE23ZlYtmvqZrfbyjrh+eGYWsltIPvHqiyAsmim5WbuNw/PEqka+mBbRvxXfHuwT1l + n94SXByOQ/T1d126Nmy9J/j6ldyxdHIRljyjWPb5x5ge/SmEdEV15h9HzRUKaSOBe7Ju9JefP72C + 1KUl4LYWacSf543+x596E8HZVK/egJCtNXhD40U2vp6eCRJbGsw8VTGnqLIwqBcqY/m0P7a/94+2 + dzMklqXds/F+rRcoKZKGzno/40KzOitbQU6IPfurKVkJtaJeOpnsd+9Nxja2lKDOdFS6bvIl4sJp + EKBz0J54izyu+tFcvdGY3Fd0PfU04t/bt4HGJlfmzv6dfaYigNXh9iXb/n5BfO7fSN0mKouuURPR + X7w72fXEsG1WWZ18lyXap3nCbi8eR99GDXP4+eXAzGg1qkUkQGwJMnE2zj3rX5KCYRxRTBx6092u + n/gT9IS7GBVdaEyz30GLZInnfm9m3BF3NVz9oSbbRjQrgTquCOdeMIh/2u4qJo3FFj0s5ODPvVy4 + bbxTt3Cl6YXsxmzjDr576TazPiW2YDzbpl5RQCszjzA0u8mtLwYV0Zx/RC2hjwYlu3ZIaxiii8nq + 0LiVjS2Q9dXDaPGxqmnoD45M9eMSr797FI2y0tdg+HhJh0l1oyF4qQtltQ464hLdQatpH9egqTYj + bhO83JGl4KFRK7aU3/qHy/U2keWZd5Dt7Oen5VEd/uh7/44ffHy6JEGbUTxhfgzUaLXYnlOIrctI + 7Oiwdr/LnSOhuV4Tsscxmi4bjMFxA0b8QzFVs9/OkanZmF3ehzgaN4dnDNRSUuLz1zbqS2+fwiJR + MHFW+NOy2T9DuHMxXjPF5lOzkd9/9N5OU2j10wPK0TAkujDLwOWe1HXomRvqr16j4QAH5w8P0VbQ + tEPyXRZw3MgrOrl9hcZxOIlo9p/sBnKeDa5lmj/ewOLH5cX5eMA2rPlGYISqpTvmxtgp836zPaMr + d7q89w3c3+GZTutQbblTaVv0Cm8rKg6uaYypljYgnuQr2y33dcSPu+kNxUG64/ykxcYoem/80/Ns + V++atr2TTwBx2NREww/HYMHiGKNhNBHdHOSRdw1rVNQ8t7vf+oq+LPwGFtcZXk1QGoMRKqrc+ILE + jL7x+JQeghKG4uqwfXbbcvFA7zd0WWQIrz6IGp1MvwKgus3wwIIX6oWiE2Dy44lZ76J2B+XqBNAV + zGemPezaKVMOAqTseyXYecnu2Gvrm9ws2sOf+w0zn1KKbC3TWS8ZfUyKRjHHxw134cIxplX+NCHg + /ZZsr/Y6G7Jb4MDmnUp//Op3sT2fARnhg3nd6lTxY9p2YB5ikVzbzHZFJVBsoBsPSKc3YzvS3fkJ + RdLWxHN61A5Txbd/6st+FdrZ8Kq3ImRuucNPEdKKpaKsQq48VSouFquMiec2BrgXZ+KcAgsJUnPD + oO2OGjO+RdDyWV/AEQeULpafdcuO56UDSnu0yD2l93a40FWDskeyZ4aQhtHgi3UBctkMjOSXncFP + vM7l9zK54qWLArerNXDQo9wUbKvJV2Oq/TFQjJocGU42YTUFZy4qV72asMzGdzv61nkBzdPc4cfc + r7p22psg3aeMWeRSGL1a2il4m/2FjgQVfJ2vn8WvHmNRwoE7Na/9Deb+iuVzb6PmXbgxXBcfjTlr + pHMxC243ZMIQEyytp2haRrEHsx6jSmMbraCh5wDNRhPJrml5Rd/iV4drrwQ/f9ey2e/D0s9+fhkb + 62vVS+gm+zZx74kRienhXMIwbhFehKJdTdL+tECBhBK2F18eWnXUjoHy1wMvr92+5XZRqtD44qzX + 7LEd08SYYOaldEin0S0lgU6ywLiCV4po8NGoXimQw3dPRTfB7XpjD7Gy25kLsrOFd8QfzfmNDFvt + mRecNXcch7uIhtc3J/v32ayGQhqlP35S3Dzitn2dxIV8CnqZ6b4RVrSVexNOu/7J1GspVrR98QUY + tX8ke0nvUWM4mq4EVitg9Fgm7bj7bHSQWCUzf3L7lln7i4ggjU3McShG/H6IRKXOjgLZCWHAB9nI + dPj5ddwGK2P0BrVDKu6exF/c3wa7ocGGcdzE5NffW9s+TVDiwSLH8rHOBsW+2JAnqKXr7P2e+dKi + gZl3s7R6qhmHgusogkvGvPactOxavWRQN5uSzHza5VPU4429zFXiH8eHu/p+jjXQrxqz/XPBOLOs + V4CE5tVSubpiV/rx1p9eWVze2F1f7l8BksDRyf7A7xXrxGcCl2XgEzM96S3XNZj1pBXRZThZaHW3 + 3EAOdLllRneyo9XyAjo63O2SjnpsIPZY7jvYGqQldla+Wv7dS4U0TskVS5JJq15wiCNb3oPTzVo6 + RP0XzAn4bQIqo7Vc9d52lCDPHybRV9KX8/elKpS1f11iGuiZW08VMjfa7qT94a3jwWkKMGGKiWfj + 5493ilDt0ifTn07adq0pBzDpO6AvcekZo1BeUpBezzsxHtd3O0idPqCnWZszb7f4UDztAU6iYrL9 + 5jhF/LsfSjj3Z5lYg/WKpn3QOaDG1p0Gh2OQTe63ltHsB4k/+/lJluQzrA0rY9qLPaPx1w+poDZE + bxa10Xm3JABlB/6vXvEpeRjlf/HvYfhU4zfsCnnhnTW6Wu7taLV+NbBJHOuKP9JBq4b8mphw3Nw7 + vPGeVdbmD1P86W2sKDsSrcPODdHD2jhs+zQf2bT8jjLci0Yhcz1u5/pe/Dnf2MKncKd6Y//hZeTH + IwfE8gTYM5PJH317ULWFMvcfosqOVQmuPdWyUkBFu3tYVgNHboA+d8BEZ9rkjvdrAYp/GR1mpR5r + +ZY1BZrrJ9lOm6Ca2k9dIn0t7IixtvzqDw883PoL89t4hcSZbyo//fZK4tH98abfeuZ4lyCb9YCt + CIF+Z6YVbathkp4e+PfzC1dUGTP206dLQ78x9dWFnL23UwqPerHF0muvo8mUvuc/+UcuWeaOhKcB + HJZDxDSCVNSZXRfAN1EQU9ONEQ0/3uCM3ZOo1zKZ9T7C6KFHDCvX/szpTW1vv3gj5nL3aSdTBBH8 + 1ItI0tCdKzwqk8LMZ5irZT7nuvH1EMmNnqIreO0AoyorG9MLKKpFHFVLn8qykAoe2zrbSzbln3cD + 6r4MqeAJNz756mgrq5O5JQa0BZ/OInNQngPB9cyjKcLJXO/Yk6k8InwdG1kBWYFU4jrLAk0yOTtw + uRgahkO7q8aPogpIPpEDsZr8jkbneEpRptIzhoJV7SDpRYl2Kb2wrYcOxujooaicssfnxy+qxlc3 + NurL/YmKn3Ufsc49Fmj3it64mf0ORRXByD+qGkvca8H51rQD0HaDg9ncL6hZSSE4zupN9ufx2zbc + sme97yFm9UHf/sm3n34uZl4jvLtzDmghf5gVHddoVEv1jELnWLA5/oxJCR8UuqL3sVwliPeWEtew + 0gKN3D/7JhuM5XAGb+Ne8Drc79pR/hD4nXcwktJ7NeEkn9DMg8l2fHcuCxbXGO4FEehmusnVzx9B + Xh4dgud+uBJW1wXM53fMm/eTlwvSwMUWL1SKzt+oq8DIIXxjm3hKUEaj+Bxy1Ny0gsz9pZrPK96g + Z8qV3ehWR/wR4gS2+5AwVVpXLsVaNeduiMnMl42hkhMJzbwfo+riR0PhV+YffunuX44xnmQmIyw2 + nGjGx476JjqpaGipSrn7rX76UgczsZbEZW9e/eEZg2sSRlxB4WxagI5UOWmZmTUf98dv4GTaPRWz + 5mOw81UJ4FM8VaKft7P/LXAD5Wa5Iyq6di7/8nSAqYeKnHar3uUbyxjgKHQVpZc3Nca19Clgdyws + 5lw2aD4PDFU06xNmyqjN6FlWw18/J9aOpqj/hs8C1gv2wKvT59hOxQk1QBfCaebndjVlykWU++ld + ME34vt2hKHMM/OI+mKEtFDSIn6UDnuFQurHUwOgOn0IFM4EDm3k1H46JnYPmLHLifDUtExG65Oh9 + sQ54KJJnNk1swEqfTznRjfwYdfQGACfYn0kyx3svbh5PZdbjRPMtHg2s+JbwdIUzRUpsuFO5e7zh + mywRFaPCQcILVoDez9j+c/7S7NEE6HsSfbyp0rwd1u05UPSDO9DK/Vbu+H5JDZr1I/O1qIv6TvPg + j/5XgrjIJtmv3pC1tCfOT28a1esM7Z26M2+J0fjEdS5vHvjNjNq88EHJjhQ5I33SSQ8qg4l9nv94 + Hl7Qbcm5j9wJ/EE/ET8+NdFPf8oefXvMdZYqWpXFVKD+tNfwatN9WuaWlg749dmwvXcdje9D2Nib + wpT3M2/MOZ/1B5SbCrBYa3suajslhR+vzKiXI36HpkYzX6T9/LyZNy2Uv39TAf/5r7/++j+/CYN3 + fb295sGA/jb2//7vUYF/p9f034Ig/puJfyYRaJcWt7//+a8hhL+/bf3+9v+3r5+3T/f3P39JCP7M + G/zd1336+h9f/Gt+3n/+6/8BAAD//wMAUfv/wOUgAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aae9deb86428-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:25 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '214' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - 301bbf6b8f5f18d655731e55edb09ca9 + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to read the instructions_1.txt file to determine the next command to + use.\",\n \"reasoning\": \"The instructions_1.txt file contains the instructions + that I need to follow.\",\n \"plan\": \"- Use the read_file command to + read the instructions_1.txt file.\\n- Analyze the instructions to determine + the next command to use.\",\n \"criticism\": \"I need to ensure that + I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_1.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: This task_id is 2314\nRead + the file instructions_2.txt"}, {"role": "user", "content": "Determine which + next command to use, and respond using the format specified above:"}, {"role": + "assistant", "content": "{\n \"thoughts\": {\n \"text\": \"I need + to read the instructions_2.txt file to determine the next command to use.\",\n \"reasoning\": + \"The instructions_2.txt file contains the instructions that I need to follow.\",\n \"plan\": + \"- Use the read_file command to read the instructions_2.txt file.\\n- Analyze + the instructions to determine the next command to use.\",\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_2.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_2.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: Read the file instructions_3.txt"}, + {"role": "user", "content": "Determine which next command to use, and respond + using the format specified above:"}, {"role": "assistant", "content": "{\n \"thoughts\": + {\n \"text\": \"I need to read the instructions_3.txt file to determine + the next command to use.\",\n \"reasoning\": \"The instructions_3.txt + file contains the instructions that I need to follow.\",\n \"plan\": + \"- Use the read_file command to read the instructions_3.txt file.\\n- Analyze + the instructions to determine the next command to use.\",\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_3.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_3.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: Write the task_id + into the file output.txt\nShutdown"}, {"role": "user", "content": "Determine + which next command to use, and respond using the format specified above:"}], + "temperature": 0, "max_tokens": 2577}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '6526' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA6yTy27bMBBF9/0KYta0YVu1YmtXoAWSVRfpA0UVCAw1kRjzIZCj2oWhfy9ESVDs + oIsA2d4hDw+HnDOoEjKQtSBpGr24+fSs8Vf1o/ZSlH9uDz8PX77ep7vP97ep2AAH9/iMksYdS+lM + o5GUs8BBehSEJWTrdLe52SfbNOVgXIkaMqgaWiTL7YJa/+gWq2S1Bg5tEBVCdobGO9NQQe6ANkC2 + TvYJhxk+F/ZbDuRI6Dna7nYdB1k7JTFA9vsMBsME9k4jZCBCUIGEpV7TWULbX+GcW8YYy4Fq11Y1 + hRwyNoZjAU/UhzncMYtYMnLs6BUhoxoZiXAoVMmUJReDJ6WRuZaalpZ0IiZs2eeWhbql0h3tMgf+ + ku9RBGeVrYZDvtXIlA3kW9lfOxRJxETslGPJDL63R6OFHRQW7HsYqJFfkCsiTTpjIuYtBy/z3M7A + uHp81Avg/6ykV6SkCub6CdCG1vdQQeyOCROVlK3iMdJ5j5Jey71oSPQcujIheonI6E0miP577RQa + FIfJ56i0Zu379Wt+qPYNPRv0Oj795nHVq89shcHB/EL16oLCV9dzMBT6tTNilr7Yfz02m2T9cTKM + lqNsbjvoODwpq0JdDGMAGQRyDXBQtsQTZKvuofvwDwAA//8DAIII0sehBAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9aaeba83c6428-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:36 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '10520' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85990' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.672s + x-request-id: + - 40187af4864698ab7cafb098969e7421 + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''system'', ''content'': ''Command read_file returned: + Write the task_id into the file output.txt\\nShutdown''}, {''role'': ''assistant'', + ''content'': ''{\\n \"thoughts\": {\\n \"text\": \"I need to read + the instructions_3.txt file to determine the next command to use.\",\\n \"reasoning\": + \"The instructions_3.txt file contains the instructions that I need to follow.\",\\n \"plan\": + \"- Use the read_file command to read the instructions_3.txt file.\\\\n- Analyze + the instructions to determine the next command to use.\",\\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\\n \"speak\": + \"I will use the read_file command to read the instructions_3.txt file and determine + the next command to use.\"\\n },\\n \"command\": {\\n \"name\": + \"read_file\",\\n \"args\": {\\n \"filename\": \"instructions_3.txt\"\\n }\\n }\\n}''}, + {''role'': ''system'', ''content'': ''Command write_to_file returned: File written + to successfully.''}, {''role'': ''user'', ''content'': ''Determine which next + command to use, and respond using the format specified above:''}, {''role'': + ''assistant'', ''content'': ''{\\n \"thoughts\": {\\n \"text\": \"I + need to write the task_id into the file output.txt and then shutdown.\",\\n \"reasoning\": + \"The instructions_3.txt file instructed me to write the task_id into the file + output.txt and then shutdown.\",\\n \"plan\": \"- Use the write_to_file + command to write the task_id into the file output.txt.\\\\n- Use the task_complete + command to shutdown.\",\\n \"criticism\": \"I need to ensure that I am + writing the correct task_id into the output.txt file and that I am shutting + down correctly.\",\\n \"speak\": \"I will use the write_to_file command + to write the task_id into the file output.txt and then use the task_complete + command to shutdown.\"\\n },\\n \"command\": {\\n \"name\": \"write_to_file\",\\n \"args\": + {\\n \"filename\": \"output.txt\",\\n \"text\": \"2314\"\\n }\\n }\\n}''}]"], + "model": "text-embedding-ada-002", "encoding_format": "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2194' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAAA//8DAPp9nSnlIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9ab3e6de06428-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:39 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '195' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - 6c805826f30e21e10011f6f0db0b02c6 + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to read the instructions_1.txt file to determine the next command to + use.\",\n \"reasoning\": \"The instructions_1.txt file contains the instructions + that I need to follow.\",\n \"plan\": \"- Use the read_file command to + read the instructions_1.txt file.\\n- Analyze the instructions to determine + the next command to use.\",\n \"criticism\": \"I need to ensure that + I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_1.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_1.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: This task_id is 2314\nRead + the file instructions_2.txt"}, {"role": "user", "content": "Determine which + next command to use, and respond using the format specified above:"}, {"role": + "assistant", "content": "{\n \"thoughts\": {\n \"text\": \"I need + to read the instructions_2.txt file to determine the next command to use.\",\n \"reasoning\": + \"The instructions_2.txt file contains the instructions that I need to follow.\",\n \"plan\": + \"- Use the read_file command to read the instructions_2.txt file.\\n- Analyze + the instructions to determine the next command to use.\",\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_2.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_2.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: Read the file instructions_3.txt"}, + {"role": "user", "content": "Determine which next command to use, and respond + using the format specified above:"}, {"role": "assistant", "content": "{\n \"thoughts\": + {\n \"text\": \"I need to read the instructions_3.txt file to determine + the next command to use.\",\n \"reasoning\": \"The instructions_3.txt + file contains the instructions that I need to follow.\",\n \"plan\": + \"- Use the read_file command to read the instructions_3.txt file.\\n- Analyze + the instructions to determine the next command to use.\",\n \"criticism\": + \"I need to ensure that I am following the instructions correctly and efficiently.\",\n \"speak\": + \"I will use the read_file command to read the instructions_3.txt file and determine + the next command to use.\"\n },\n \"command\": {\n \"name\": \"read_file\",\n \"args\": + {\n \"filename\": \"instructions_3.txt\"\n }\n }\n}"}, + {"role": "system", "content": "Command read_file returned: Write the task_id + into the file output.txt\nShutdown"}, {"role": "user", "content": "Determine + which next command to use, and respond using the format specified above:"}, + {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to write the task_id into the file output.txt and then shutdown.\",\n \"reasoning\": + \"The instructions_3.txt file instructed me to write the task_id into the file + output.txt and then shutdown.\",\n \"plan\": \"- Use the write_to_file + command to write the task_id into the file output.txt.\\n- Use the task_complete + command to shutdown.\",\n \"criticism\": \"I need to ensure that I am + writing the correct task_id into the output.txt file and that I am shutting + down correctly.\",\n \"speak\": \"I will use the write_to_file command + to write the task_id into the file output.txt and then use the task_complete + command to shutdown.\"\n },\n \"command\": {\n \"name\": \"write_to_file\",\n \"args\": + {\n \"filename\": \"output.txt\",\n \"text\": \"2314\"\n }\n }\n}"}, + {"role": "system", "content": "Command write_to_file returned: File written + to successfully."}, {"role": "user", "content": "Determine which next command + to use, and respond using the format specified above:"}], "temperature": 0, + "max_tokens": 2331}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '7669' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA5SSP2/bMBDF936Kw82y4VRwHGsL2g4eOrUdiqowaOosMaaOKnmMHRj67oX+xY6D + Dh31SP3eu3s8oykwQ10p0XVjZ6vHJ+vDJ7f8oquH01d9OMT0+Rv/NH94/RkTdLsn0jL+MdeubiyJ + cYwJak9KqMDs7v7h42qdLlfrBGtXkMUMy0Zm6Xw5k+h3brZIF3eYYAyqJMzO2HhXN7IVdyAOHSBd + JHiBXw7SdYLiRNmLtLpftwnqyhlNAbNfZ6wpTGDvLGGGKgQTRLF0MR0LcTfCOWcAgBylcrGsJOSY + wSiOB3SSTsxxA5V6JghRawphH619gaM3IsQgFYGocNiaAgyL6wUXpYkyl5PA3liawwaYqABxEKoo + hTsysDvOc0yuHT2p4NhwOdh+v0JXKsCOiF99/+UFiotO9wTKE7CDffTdNxgO4qPudhq6JHtn7fsM + jVU82M/gR6DLfGMjBNrVdW9yGeYWor0Ro02op/1N0xOH6DuoEtiAqnuCGC6h34l23pMW+3ILDA2p + wwQ7Gmsh/ke2gdQmU+XjrXeNs6ppMHlDvcmifHn7WK7rGwCP1r5deP+C+gYnbPGarE83hsy5xTbB + vWETqu2AxAyDuAYTNFzQCbNF+7v98BcAAP//AwDI0C/ivgMAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bf9ab403fa96428-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 18:39:47 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '8206' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85989' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.674s + x-request-id: + - 62946a2415fd4014bc6556763cc6f992 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/challenges/memory/cassettes/test_memory_challenge_b/test_memory_challenge_b.yaml b/tests/integration/challenges/memory/cassettes/test_memory_challenge_b/test_memory_challenge_b.yaml new file mode 100644 index 000000000000..fd82ce2e09f6 --- /dev/null +++ b/tests/integration/challenges/memory/cassettes/test_memory_challenge_b/test_memory_challenge_b.yaml @@ -0,0 +1,775 @@ +interactions: +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}], "temperature": 0, "max_tokens": 3251}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3383' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA7SSTY/aQAyG7/0Vls8BQYGFzW37cUBaqVW1aqUuFTKJk0yZj3TGKUGI/14NIWwL + 0t56fe3x+7weH1DlmGJWkWSm1oP5g3v4Nv/MLX98elzO+P2nr+/axw+/SL6X95ig2/zkTM4vhpkz + tWZRzmKCmWcSzjEd3y3eLsaj6WKaoHE5a0yxrGUwGc4G0viNG4wmozEm2AQqGdMD1t6ZWtbitmwD + pvPpXYIvsy/6eDZPUJyQvkj3o8kxwaxyKuOA6fMBDYd+rHeaMUUKQQUhKxHSWWEbAxxWFgBghVK5 + pqwkrDCFs3gucCtRXOESQuUanUMQ8gKbPXimXNkSpGJQNohvsoga1uOhtAKF0gziIGdhb5Rl2FUk + QF1TrAhtGSy3Mlxh8rerZwrOKlt21k+vGMQwpOK8Ks7KYnK/B2UL5w3F9n8ZurZWIAjX4dq41mQ7 + zwF8YcpfzdaEPn3cxPqMYwzZ/Hpu5pWoTAXT79Iy5xGMbWh8pCKBJWTkuWi03kPhtHa7G3tQ9qSd + vMjmYJ1Azr8VCUPhnYlVc+0eaqZt77xTWv+nP+w8j0l/Vedl3ByVJcMdzmVxV8Tky+tb7Aqx9+X5 + LXEPcQI586zsEY8JFsqqUK2728IUg7gaE1Q25xbT0fHH8c0fAAAA//8DACiYLFgKBAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bfb47f48975968c-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 23:21:31 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '7598' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '85995' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.67s + x-request-id: + - 7763b6b11a061097597b024900075aaf + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''assistant'', ''content'': ''{\\n \"thoughts\": + {\\n \"text\": \"I should start by reading the instructions_1.txt file + to determine what actions to take next.\",\\n \"reasoning\": \"The instructions_1.txt + file contains the necessary information to determine the next steps.\",\\n \"plan\": + \"- Read the instructions_1.txt file using the read_file command.\",\\n \"criticism\": + \"I need to ensure that I carefully follow the instructions in the file and + not deviate from them.\",\\n \"speak\": \"I will start by reading the + instructions_1.txt file to determine what actions to take next.\"\\n },\\n \"command\": + {\\n \"name\": \"read_file\",\\n \"args\": {\\n \"filename\": + \"instructions_1.txt\"\\n }\\n }\\n}''}, {''role'': ''user'', ''content'': + ''Determine which next command to use, and respond using the format specified + above:''}, {''role'': ''system'', ''content'': ''Command read_file returned: + nBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\\nThis + task_id is 1111\\nnBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\\nWrite + all the task_ids into the file output.txt. The file has not been created yet. + After that, use the task_complete command.\\n''}]"], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '3212' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + aKTnIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bfb48352f8d968c-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 23:21:34 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '102' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - fecf22b60b7b162df4e8f245a8b6eb90 + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I should start by reading the instructions_1.txt file to determine what actions + to take next.\",\n \"reasoning\": \"The instructions_1.txt file contains + the necessary information to determine the next steps.\",\n \"plan\": + \"- Read the instructions_1.txt file using the read_file command.\",\n \"criticism\": + \"I need to ensure that I carefully follow the instructions in the file and + not deviate from them.\",\n \"speak\": \"I will start by reading the + instructions_1.txt file to determine what actions to take next.\"\n },\n \"command\": + {\n \"name\": \"read_file\",\n \"args\": {\n \"filename\": + \"instructions_1.txt\"\n }\n }\n}"}, {"role": "system", "content": + "Command read_file returned: nBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\nThis + task_id is 1111\nnBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\nWrite + all the task_ids into the file output.txt. The file has not been created yet. + After that, use the task_complete command.\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}], "temperature": 0, "max_tokens": 1597}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '6500' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA8STTYvbQAyG7/0VQmfbxMl2d+NbKBS2UGgp20tdwmSs2FPbGjMjN4GQ/178tfmC + 7R4KPVp6pXleSzqgyTBBXSjRdVOFDyu7yj98rK1bbj5/KYvtQj6pvP7+dcvfHjBAu/lFWsaKSNu6 + qUiMZQxQO1JCGSbx/eP8MZ7dLe8CrG1GFSaYNxIuovehtG5jw9liFmOArVc5YXLAxtm6kbXYkthj + Ml8s4wBPzc8SswDFiqpOoft5fAxQF9Zo8pj8OGBNfmrsbEWYoPLeeFEsHaZlIe4sHFIGAEhRCtvm + hfgUExiDY4L20gVTfAImykAsqKYhzkAKAlG+XJs+2n3aVppWItkLbE1FoAYZQ+vppB9tEWhb173E + guHMaCWdSsmLFIyHSR2lGJyTOVLesuF8wFv1UIbzt3DtTFWBqiq7g5o6UUnUgDilS7DbLnPexQ9Q + hfpNsCFiyInJdZOO4NlfPHljrX/p1pxunSOWv5psKsWDvxBWb/7t7QvUMKq12HWfGKmiNOUQnv/9 + TLQzYrTx9fXKEPvWjY2eXlkgbZ0jfbE9fcW0P1N+KtsNy/XqDK4hfUOqnACHTfhfCz1gHYPpDMf6 + mytkVdNAfDnQK2fK5dcXPCQ67anHydRF/fXBx3EcpylPlD3pCJzyEY8Bbg0bX6yHS8QEvdgGAzSc + 0R6T2fHn8d0fAAAA//8DAHrFs+FeBQAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bfb48364828968c-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 23:21:45 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '11098' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '86907' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.062s + x-request-id: + - b8fa55724277bee4e9099b5c3f76d269 + status: + code: 200 + message: OK +- request: + body: '{"input": ["[{''role'': ''user'', ''content'': ''Determine which next command + to use, and respond using the format specified above:''}, {''role'': ''system'', + ''content'': ''Command read_file returned: nBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\\nThis + task_id is 1111\\nnBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\\nWrite + all the task_ids into the file output.txt. The file has not been created yet. + After that, use the task_complete command.\\n''}, {''role'': ''system'', ''content'': + ''Command append_to_file returned: Text appended successfully.''}, {''role'': + ''assistant'', ''content'': ''{\\n \"thoughts\": {\\n \"text\": \"I + should start by reading the instructions_1.txt file to determine what actions + to take next.\",\\n \"reasoning\": \"The instructions_1.txt file contains + the necessary information to determine the next steps.\",\\n \"plan\": + \"- Read the instructions_1.txt file using the read_file command.\",\\n \"criticism\": + \"I need to ensure that I carefully follow the instructions in the file and + not deviate from them.\",\\n \"speak\": \"I will start by reading the + instructions_1.txt file to determine what actions to take next.\"\\n },\\n \"command\": + {\\n \"name\": \"read_file\",\\n \"args\": {\\n \"filename\": + \"instructions_1.txt\"\\n }\\n }\\n}''}, {''role'': ''assistant'', + ''content'': ''{\\n \"thoughts\": {\\n \"text\": \"I need to append + the task_id to the output.txt file and then use the task_complete command to + indicate that the task is complete.\",\\n \"reasoning\": \"Appending + the task_id to the output.txt file will allow me to keep track of all the task_ids + that have been generated. Using the task_complete command will indicate that + the current task is complete.\",\\n \"plan\": \"- Append the task_id + to the output.txt file using the append_to_file command.\\\\n- Use the task_complete + command to indicate that the task is complete.\",\\n \"criticism\": \"I + need to ensure that I append the task_id to the correct file and that I use + the correct task_id when using the task_complete command.\",\\n \"speak\": + \"I will append the task_id to the output.txt file and then use the task_complete + command to indicate that the task is complete.\"\\n },\\n \"command\": + {\\n \"name\": \"append_to_file\",\\n \"args\": {\\n \"filename\": + \"output.txt\",\\n \"text\": \"1111\\\\n\"\\n }\\n }\\n}''}]"], + "model": "text-embedding-ada-002", "encoding_format": "base64"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '4447' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + 5Yn//Y//BwAA//8DADqWffrnIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bfb48903cf4968c-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 23:21:49 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '191' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3000' + x-ratelimit-remaining-requests: + - '2999' + x-ratelimit-reset-requests: + - 20ms + x-request-id: + - 82f9958865f62293d4b4b8fa59c8ef2c + status: + code: 200 + message: OK +- request: + body: '{"model": "gpt-3.5-turbo", "messages": [{"role": "system", "content": "You + are Follow-Instructions-GPT, an AI designed to read the instructions_1.txt file + using the read_file method and follow the instructions in the file.\nYour decisions + must always be made independently without seeking user assistance. Play to your + strengths as an LLM and pursue simple strategies with no legal complications.\n\nGOALS:\n\n1. + Use the command read_file to read the instructions_1.txt file\n2. Follow the + instructions in the instructions_1.txt file\n\n\nConstraints:\n1. ~4000 word + limit for short term memory. Your short term memory is short, so immediately + save important information to files.\n2. If you are unsure how you previously + did something or want to recall past events, thinking about similar events will + help you remember.\n3. No user assistance\n4. Exclusively use the commands listed + in double quotes e.g. \"command name\"\n\nCommands:\n1. append_to_file: Append + to file, args: \"filename\": \"\", \"text\": \"\"\n2. delete_file: + Delete file, args: \"filename\": \"\"\n3. read_file: Read file, args: + \"filename\": \"\"\n4. search_files: Search Files, args: \"directory\": + \"\"\n5. write_to_file: Write to file, args: \"filename\": \"\", + \"text\": \"\"\n6. delete_agent: Delete GPT Agent, args: \"key\": \"\"\n7. + get_hyperlinks: Get text summary, args: \"url\": \"\"\n8. get_text_summary: + Get text summary, args: \"url\": \"\", \"question\": \"\"\n9. + list_agents: List GPT Agents, args: () -> str\n10. message_agent: Message GPT + Agent, args: \"key\": \"\", \"message\": \"\"\n11. start_agent: + Start GPT Agent, args: \"name\": \"\", \"task\": \"\", + \"prompt\": \"\"\n12. Task Complete (Shutdown): \"task_complete\", args: + \"reason\": \"\"\n\nResources:\n1. Internet access for searches and + information gathering.\n2. Long Term memory management.\n3. GPT-3.5 powered + Agents for delegation of simple tasks.\n4. File output.\n\nPerformance Evaluation:\n1. + Continuously review and analyze your actions to ensure you are performing to + the best of your abilities.\n2. Constructively self-criticize your big-picture + behavior constantly.\n3. Reflect on past decisions and strategies to refine + your approach.\n4. Every command has a cost, so be smart and efficient. Aim + to complete tasks in the least number of steps.\n5. Write all code to a file.\n\nYou + should only respond in JSON format as described below \nResponse Format: \n{\n \"thoughts\": + {\n \"text\": \"thought\",\n \"reasoning\": \"reasoning\",\n \"plan\": + \"- short bulleted\\n- list that conveys\\n- long-term plan\",\n \"criticism\": + \"constructive self-criticism\",\n \"speak\": \"thoughts summary to say + to user\"\n },\n \"command\": {\n \"name\": \"command name\",\n \"args\": + {\n \"arg name\": \"value\"\n }\n }\n} \nEnsure the response + can be parsed by Python json.loads"}, {"role": "system", "content": "The current + time and date is Tue Jan 01 00:00:00 2000"}, {"role": "system", "content": "This + reminds you of these events from your past:\n[]\n\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I should start by reading the instructions_1.txt file to determine what actions + to take next.\",\n \"reasoning\": \"The instructions_1.txt file contains + the necessary information to determine the next steps.\",\n \"plan\": + \"- Read the instructions_1.txt file using the read_file command.\",\n \"criticism\": + \"I need to ensure that I carefully follow the instructions in the file and + not deviate from them.\",\n \"speak\": \"I will start by reading the + instructions_1.txt file to determine what actions to take next.\"\n },\n \"command\": + {\n \"name\": \"read_file\",\n \"args\": {\n \"filename\": + \"instructions_1.txt\"\n }\n }\n}"}, {"role": "system", "content": + "Command read_file returned: nBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\nThis + task_id is 1111\nnBRNtp3FaBNfBMohNkyAxrVJ7UFF0lyth8Xizm1jrCOREOGRnWWMQ6olKtKX9niq0wOBTQN62ToY4cQPiQk3YN9fFCGmxaDX9g81AsqhQnGac72QfL41SnlJvhwgAUB52zTD26FeEvvHdiQ2aNhtMT9obgHNUkONEnO41EOpNI6jdwyLGaactp9GYV1PLbaRP5b1iD9z850KeNYDX9Qwca79isJS8jhuDkf0J7ELkpOH3PkmZkg5MsOYpSTuEc99ENQ522WJzrl9oAySp6IHGiQlsMnQe40FaRAvnQtiaAE24hzkJHT3x13NPGw2ZmJ518y2BtU5x1yQwG21NycSxOBLU17RnY8h6H8L7QGatTlfXjPrA5hsupWEpUT0sSTZYSHa6p3mShARajocbNd3xKFfnUyupNMBPd0EZnMrePoAuvGaK7gDP0cxp9k63lsfzh3udQPnvgmRERQThIOrrDZhZMa4kr1vXAVu07ZuhlNNbBUqZKcHmBYiBnIcDXNUvXuzPFBh9Vowou6MBJHpiNrvKluHy7GBTp7YsEqmGv0lH8wVaWfV0yG7nzrbt7QyhdbtQ0zF2PclXB0LNxV2rRA6FsevqoexFNqSkdgauUrQPHLHhvLNes8gRGMOLAhR8irH1e2jdbLD6dyYEnDJiS9HvlxNgbb19Smlt6MNoJKEAbkSOrrcq5wmo5aho4zEKTujRHqr6feECaTPF7zj69pQCudo4LkneFVUp1UrR6yicTU8Zf9ohZLWumvMi5brH8lOJiiF94cHzesfQz8PiX5f21RwZ5fyRSk9eJhVihcTLrjOwCuryXpy8eCfk12bgcsZoJd8Uqo001XTsv2CEn59uaGn2br4CxSXJgjxKE1mO4IcPPAx3qJbVknaP0MXdOjj9S8oRjquDle4RxlVnmqsozm4oTbjtFSuKIh8g4zPzdyuVH7I71s87xWxAhcppky6GOB2i4NDz4SZI6SeG3Icpu6ZuJZGeZ6CWb61\nWrite + all the task_ids into the file output.txt. The file has not been created yet. + After that, use the task_complete command.\n"}, {"role": "user", "content": + "Determine which next command to use, and respond using the format specified + above:"}, {"role": "assistant", "content": "{\n \"thoughts\": {\n \"text\": + \"I need to append the task_id to the output.txt file and then use the task_complete + command to indicate that the task is complete.\",\n \"reasoning\": \"Appending + the task_id to the output.txt file will allow me to keep track of all the task_ids + that have been generated. Using the task_complete command will indicate that + the current task is complete.\",\n \"plan\": \"- Append the task_id to + the output.txt file using the append_to_file command.\\n- Use the task_complete + command to indicate that the task is complete.\",\n \"criticism\": \"I + need to ensure that I append the task_id to the correct file and that I use + the correct task_id when using the task_complete command.\",\n \"speak\": + \"I will append the task_id to the output.txt file and then use the task_complete + command to indicate that the task is complete.\"\n },\n \"command\": {\n \"name\": + \"append_to_file\",\n \"args\": {\n \"filename\": \"output.txt\",\n \"text\": + \"1111\\n\"\n }\n }\n}"}, {"role": "system", "content": "Command append_to_file + returned: Text appended successfully."}, {"role": "user", "content": "Determine + which next command to use, and respond using the format specified above:"}], + "temperature": 0, "max_tokens": 1317}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '7831' + Content-Type: + - application/json + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA6ySQY/aMBCF7/0VozkbFLKCprmhHipUqVXVoh6aChl7SFwS27InBYry3ytIgF22 + 2l72as+8782bOaLRmKOqJKvG16O3czf/vV9+SD6X6fzP4cv3j2n29aCXpir1exTo1r9I8dAxVq7x + NbFxFgWqQJJJYz6ZZWk2SabJO4GN01RjjqXn0cN4OuI2rN0oeUgmKLCNsiTMj+iDazyv2G3JRszT + 2SwVeBO/fkymmUB2LOtbbZYmnUBVOaMoYv7jiA3Fi3BwNWGOMkYTWVo+2XSWyZ5GOBYWAKBArlxb + VhwLzGF4HD5oz6fHAj+5HXAlGbgiYBm3K6OhkhHWRBak92Q1aWB3LnAt+5bHvGfYmJoELEBJC22k + W/8wHoFyTSPtuddYbZRkeooCE+FSPS5QPHYYSEZnjS17m8tobPkCY2fq+h8U1YZAlv9L87W0PWgE + y9cfRgXDRpnY9IwFWOozJRvbMAgtrjEqFwIpvq5jV9Ep4xcTuEdGT3J7wZ3TeZ0l9YxOXE5s6H92 + YVY21OOf8O5cylDeH+fj9fcC304uLgIaYqsUxbhp6/pwNXQ2NXgrbIedwI2xJlarXglzjOw8CjRW + 0x7zpPvZvfkLAAD//wMA1GRhPyUEAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 7bfb48929ebc968c-SJC + Cache-Control: + - no-cache, must-revalidate + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 29 Apr 2023 23:21:57 GMT + Server: + - cloudflare + access-control-allow-origin: + - '*' + alt-svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + openai-model: + - gpt-3.5-turbo-0301 + openai-organization: + - user-adtx4fhfg1qsiyzdoaxciooj + openai-processing-ms: + - '7934' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=15724800; includeSubDomains + x-ratelimit-limit-requests: + - '3500' + x-ratelimit-limit-tokens: + - '90000' + x-ratelimit-remaining-requests: + - '3499' + x-ratelimit-remaining-tokens: + - '86890' + x-ratelimit-reset-requests: + - 17ms + x-ratelimit-reset-tokens: + - 2.072s + x-request-id: + - 38b1938d8fa82ba256f64bb39662db49 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/challenges/memory/test_memory_challenge_a.py b/tests/integration/challenges/memory/test_memory_challenge_a.py new file mode 100644 index 000000000000..fe18773dfe1d --- /dev/null +++ b/tests/integration/challenges/memory/test_memory_challenge_a.py @@ -0,0 +1,80 @@ +import pytest + +from autogpt.agent import Agent +from autogpt.commands.file_operations import read_file, write_to_file +from tests.integration.agent_utils import run_interaction_loop +from tests.integration.challenges.utils import get_level_to_run +from tests.utils import requires_api_key + +LEVEL_CURRENTLY_BEATEN = 3 +MAX_LEVEL = 5 + + +@pytest.mark.vcr +@requires_api_key("OPENAI_API_KEY") +def test_memory_challenge_a( + memory_management_agent: Agent, user_selected_level: int +) -> None: + """ + The agent reads a file containing a task_id. Then, it reads a series of other files. + After reading 'n' files, the agent must write the task_id into a new file. + + Args: + memory_management_agent (Agent) + user_selected_level (int) + """ + + num_files = get_level_to_run(user_selected_level, LEVEL_CURRENTLY_BEATEN, MAX_LEVEL) + + task_id = "2314" + create_instructions_files(memory_management_agent, num_files, task_id) + + try: + run_interaction_loop(memory_management_agent, 40) + # catch system exit exceptions + except SystemExit: + file_path = str(memory_management_agent.workspace.get_path("output.txt")) + content = read_file(file_path) + assert task_id in content, f"Expected the file to contain {task_id}" + + +def create_instructions_files( + memory_management_agent: Agent, + num_files: int, + task_id: str, + base_filename: str = "instructions_", +) -> None: + """ + Creates a series of instructions files for the memory challenge. + Args: + memory_management_agent (Agent) + num_files (int) + task_id (str) + base_filename (str, optional) + """ + for i in range(1, num_files + 1): + content = generate_content(i, task_id, base_filename, num_files) + file_name = f"{base_filename}{i}.txt" + file_path = str(memory_management_agent.workspace.get_path(file_name)) + write_to_file(file_path, content) + + +def generate_content( + index: int, task_id: str, base_filename: str, num_files: int +) -> str: + """ + Args: + index: int + task_id: str + base_filename: str + num_files: int + + Returns: str + """ + if index == 1: + return ( + f"This task_id is {task_id}\nRead the file {base_filename}{index + 1}.txt" + ) + if index != num_files: + return f"Read the file {base_filename}{index + 1}.txt" + return "Write the task_id into the file output.txt\nShutdown" diff --git a/tests/integration/challenges/memory/test_memory_challenge_b.py b/tests/integration/challenges/memory/test_memory_challenge_b.py new file mode 100644 index 000000000000..3ab540541fa2 --- /dev/null +++ b/tests/integration/challenges/memory/test_memory_challenge_b.py @@ -0,0 +1,81 @@ +import pytest + +from autogpt.agent import Agent +from autogpt.commands.file_operations import read_file, write_to_file +from tests.integration.agent_utils import run_interaction_loop +from tests.integration.challenges.utils import generate_noise, get_level_to_run +from tests.utils import requires_api_key + +LEVEL_CURRENTLY_BEATEN = 1 +MAX_LEVEL = 5 +NOISE = 1000 + + +@pytest.mark.vcr +@requires_api_key("OPENAI_API_KEY") +def test_memory_challenge_b( + memory_management_agent: Agent, user_selected_level: int +) -> None: + """ + The agent reads a series of files, each containing a task_id and noise. After reading 'n' files, + the agent must write all the task_ids into a new file, filtering out the noise. + + Args: + memory_management_agent (Agent) + user_selected_level (int) + """ + + current_level = get_level_to_run( + user_selected_level, LEVEL_CURRENTLY_BEATEN, MAX_LEVEL + ) + task_ids = [str(i * 1111) for i in range(1, current_level + 1)] + create_instructions_files(memory_management_agent, current_level, task_ids) + + try: + run_interaction_loop(memory_management_agent, 40) + except SystemExit: + file_path = str(memory_management_agent.workspace.get_path("output.txt")) + content = read_file(file_path) + for task_id in task_ids: + assert task_id in content, f"Expected the file to contain {task_id}" + + +def create_instructions_files( + memory_management_agent: Agent, + level: int, + task_ids: list, + base_filename: str = "instructions_", +) -> None: + """ + Creates a series of instructions files for the memory challenge. + Args: + level: + memory_management_agent (Agent) + num_files (int) + task_ids (list) + base_filename (str, optional) + """ + for i in range(1, level + 1): + content = generate_content(i, task_ids, base_filename, level) + file_name = f"{base_filename}{i}.txt" + file_path = str(memory_management_agent.workspace.get_path(file_name)) + write_to_file(file_path, content) + + +def generate_content(index: int, task_ids: list, base_filename: str, level: int) -> str: + """ + Args: + index: int + task_ids: list + base_filename: str + num_files: int + + Returns: str + """ + task_id = task_ids[index - 1] + noise = generate_noise(NOISE) + if index != level: + if level == 1: + return f"{noise}\nThe current task_id is {task_id}.\n{noise}\nWrite all the task_ids into the file output.txt. The file has not been created yet. After that, use the task_complete command." + return f"{noise}\nThe current task_id is {task_id}.\n{noise}\nRead the file {base_filename}{index + 1}.txt using the read_file command." + return f"{noise}\nThis task_id is {task_id}\n{noise}\nWrite all the task_ids into the file output.txt. The file has not been created yet. After that, use the task_complete command.\n" diff --git a/tests/integration/challenges/utils.py b/tests/integration/challenges/utils.py new file mode 100644 index 000000000000..0c97402c33ad --- /dev/null +++ b/tests/integration/challenges/utils.py @@ -0,0 +1,44 @@ +import random +from typing import Optional + +import pytest + + +def get_level_to_run( + user_selected_level: Optional[int], + level_currently_beaten: Optional[int], + max_level: int, +) -> int: + """ + Determines the appropriate level to run for a challenge, based on user-selected level, level currently beaten, and maximum level. + + Args: + user_selected_level (int | None): The level selected by the user. If not provided, the level currently beaten is used. + level_currently_beaten (int | None): The highest level beaten so far. If not provided, the test will be skipped. + max_level (int): The maximum level allowed for the challenge. + + Returns: + int: The level to run for the challenge. + + Raises: + ValueError: If the user-selected level is greater than the maximum level allowed. + """ + if user_selected_level is None: + if level_currently_beaten is None: + pytest.skip( + "No one has beaten any levels so we cannot run the test in our pipeline" + ) + # by default we run the level currently beaten. + return level_currently_beaten + if user_selected_level > max_level: + raise ValueError(f"This challenge was not designed to go beyond {max_level}") + return user_selected_level + + +def generate_noise(noise_size) -> str: + return "".join( + random.choices( + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", + k=noise_size, + ) + ) diff --git a/tests/integration/goal_oriented/__init__.py b/tests/integration/goal_oriented/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/unit/test_file_operations.py b/tests/unit/test_file_operations.py index b2760671963b..f324193a5494 100644 --- a/tests/unit/test_file_operations.py +++ b/tests/unit/test_file_operations.py @@ -1,12 +1,18 @@ +""" +This set of unit tests is designed to test the file operations that autoGPT has access to. +""" + import os -import shutil -import unittest from pathlib import Path +from tempfile import gettempdir + +import pytest from autogpt.commands.file_operations import ( append_to_file, check_duplicate_operation, delete_file, + download_file, log_operation, read_file, search_files, @@ -14,118 +20,150 @@ write_to_file, ) from autogpt.config import Config -from autogpt.workspace import Workspace - - -class TestFileOperations(unittest.TestCase): - """ - This set of unit tests is designed to test the file operations that autoGPT has access to. - """ - - def setUp(self): - self.config = Config() - workspace_path = os.path.join(os.path.dirname(__file__), "workspace") - self.workspace_path = Workspace.make_workspace(workspace_path) - self.config.workspace_path = workspace_path - self.config.file_logger_path = os.path.join(workspace_path, "file_logger.txt") - self.workspace = Workspace(workspace_path, restrict_to_workspace=True) - - self.test_file = str(self.workspace.get_path("test_file.txt")) - self.test_file2 = "test_file2.txt" - self.test_directory = str(self.workspace.get_path("test_directory")) - self.test_nested_file = str(self.workspace.get_path("nested/test_file.txt")) - self.file_content = "This is a test file.\n" - self.file_logger_logs = "file_logger.txt" - - with open(self.test_file, "w") as f: - f.write(self.file_content) - - def tearDown(self) -> None: - shutil.rmtree(self.workspace_path) - - def test_check_duplicate_operation(self): - log_operation("write", self.test_file) - self.assertTrue(check_duplicate_operation("write", self.test_file)) - - # Test logging a file operation - def test_log_operation(self): - if os.path.exists(self.file_logger_logs): - os.remove(self.file_logger_logs) - - log_operation("log_test", self.test_file) - with open(self.config.file_logger_path, "r") as f: - content = f.read() - self.assertIn(f"log_test: {self.test_file}", content) - - # Test splitting a file into chunks - def test_split_file(self): - content = "abcdefghij" - chunks = list(split_file(content, max_length=4, overlap=1)) - expected = ["abcd", "defg", "ghij"] - self.assertEqual(chunks, expected) - - def test_read_file(self): - content = read_file(self.test_file) - self.assertEqual(content, self.file_content) - - def test_write_to_file(self): - new_content = "This is new content.\n" - write_to_file(self.test_nested_file, new_content) - with open(self.test_nested_file, "r") as f: - content = f.read() - self.assertEqual(content, new_content) - - def test_append_to_file(self): - append_text = "This is appended text.\n" - append_to_file(self.test_nested_file, append_text) - with open(self.test_nested_file, "r") as f: - content = f.read() - - append_to_file(self.test_nested_file, append_text) - - with open(self.test_nested_file, "r") as f: - content_after = f.read() - - self.assertEqual(content_after, append_text + append_text) - - def test_delete_file(self): - delete_file(self.test_file) - self.assertFalse(os.path.exists(self.test_file)) - - def test_search_files(self): - # Case 1: Create files A and B, search for A, and ensure we don't return A and B - file_a = self.workspace.get_path("file_a.txt") - file_b = self.workspace.get_path("file_b.txt") - - with open(file_a, "w") as f: - f.write("This is file A.") - - with open(file_b, "w") as f: - f.write("This is file B.") - - # Create a subdirectory and place a copy of file_a in it - if not os.path.exists(self.test_directory): - os.makedirs(self.test_directory) - - with open(os.path.join(self.test_directory, file_a.name), "w") as f: - f.write("This is file A in the subdirectory.") - - files = search_files(str(self.workspace.root)) - self.assertIn(file_a.name, files) - self.assertIn(file_b.name, files) - self.assertIn(os.path.join(Path(self.test_directory).name, file_a.name), files) - - # Clean up - os.remove(file_a) - os.remove(file_b) - os.remove(os.path.join(self.test_directory, file_a.name)) - os.rmdir(self.test_directory) - - # Case 2: Search for a file that does not exist and make sure we don't throw - non_existent_file = "non_existent_file.txt" - files = search_files("") - self.assertNotIn(non_existent_file, files) - - -if __name__ == "__main__": - unittest.main() +from autogpt.utils import readable_file_size + + +@pytest.fixture() +def file_content(): + return "This is a test file.\n" + + +@pytest.fixture() +def test_file(workspace, file_content): + test_file = str(workspace.get_path("test_file.txt")) + with open(test_file, "w") as f: + f.write(file_content) + return test_file + + +@pytest.fixture() +def test_directory(workspace): + return str(workspace.get_path("test_directory")) + + +@pytest.fixture() +def test_nested_file(workspace): + return str(workspace.get_path("nested/test_file.txt")) + + +def test_check_duplicate_operation(config, test_file): + log_operation("write", test_file) + assert check_duplicate_operation("write", test_file) is True + + +# Test logging a file operation +def test_log_operation(test_file, config): + file_logger_name = config.file_logger_path + if os.path.exists(file_logger_name): + os.remove(file_logger_name) + + log_operation("log_test", test_file) + with open(config.file_logger_path, "r") as f: + content = f.read() + assert f"log_test: {test_file}" in content + + +# Test splitting a file into chunks +def test_split_file(): + content = "abcdefghij" + chunks = list(split_file(content, max_length=4, overlap=1)) + expected = ["abcd", "defg", "ghij"] + assert chunks == expected + + +def test_read_file(test_file, file_content): + content = read_file(test_file) + assert content == file_content + + +def test_write_to_file(config, test_nested_file): + new_content = "This is new content.\n" + write_to_file(test_nested_file, new_content) + with open(test_nested_file, "r") as f: + content = f.read() + assert content == new_content + + +def test_append_to_file(test_nested_file): + append_text = "This is appended text.\n" + write_to_file(test_nested_file, append_text) + + append_to_file(test_nested_file, append_text) + + with open(test_nested_file, "r") as f: + content_after = f.read() + + assert content_after == append_text + append_text + + +def test_delete_file(config, test_file): + delete_file(test_file) + assert os.path.exists(test_file) is False + assert delete_file(test_file) == "Error: File has already been deleted." + + +def test_delete_missing_file(test_file): + os.remove(test_file) + try: + os.remove(test_file) + except FileNotFoundError as e: + error_string = str(e) + assert error_string in delete_file(test_file) + return + assert True, "Failed to test delete_file" + + +def test_search_files(config, workspace, test_directory): + # Case 1: Create files A and B, search for A, and ensure we don't return A and B + file_a = workspace.get_path("file_a.txt") + file_b = workspace.get_path("file_b.txt") + + with open(file_a, "w") as f: + f.write("This is file A.") + + with open(file_b, "w") as f: + f.write("This is file B.") + + # Create a subdirectory and place a copy of file_a in it + if not os.path.exists(test_directory): + os.makedirs(test_directory) + + with open(os.path.join(test_directory, file_a.name), "w") as f: + f.write("This is file A in the subdirectory.") + + files = search_files(str(workspace.root)) + assert file_a.name in files + assert file_b.name in files + assert os.path.join(Path(test_directory).name, file_a.name) in files + + # Clean up + os.remove(file_a) + os.remove(file_b) + os.remove(os.path.join(test_directory, file_a.name)) + os.rmdir(test_directory) + + # Case 2: Search for a file that does not exist and make sure we don't throw + non_existent_file = "non_existent_file.txt" + files = search_files("") + assert non_existent_file not in files + + +def test_download_file(): + url = "https://github.com/Significant-Gravitas/Auto-GPT/archive/refs/tags/v0.2.2.tar.gz" + local_name = os.path.join(gettempdir(), "auto-gpt.tar.gz") + size = 365023 + readable_size = readable_file_size(size) + assert ( + download_file(url, local_name) + == f'Successfully downloaded and locally stored file: "{local_name}"! (Size: {readable_size})' + ) + assert os.path.isfile(local_name) is True + assert os.path.getsize(local_name) == size + + url = "https://github.com/Significant-Gravitas/Auto-GPT/archive/refs/tags/v0.0.0.tar.gz" + assert "Got an HTTP Error whilst trying to download file" in download_file( + url, local_name + ) + + url = "https://thiswebsiteiswrong.hmm/v0.0.0.tar.gz" + assert "Failed to establish a new connection:" in download_file(url, local_name) diff --git a/tests/unit/test_spinner.py b/tests/unit/test_spinner.py index 16106f429cc7..1c5c3ac00e2e 100644 --- a/tests/unit/test_spinner.py +++ b/tests/unit/test_spinner.py @@ -1,6 +1,5 @@ # Generated by CodiumAI import time -import unittest from autogpt.spinner import Spinner @@ -29,40 +28,43 @@ PLEASE_WAIT = "Please wait..." -class TestSpinner(unittest.TestCase): - def test_spinner_initializes_with_default_values(self): - """Tests that the spinner initializes with default values.""" - with Spinner() as spinner: - self.assertEqual(spinner.message, "Loading...") - self.assertEqual(spinner.delay, 0.1) - - def test_spinner_initializes_with_custom_values(self): - """Tests that the spinner initializes with custom message and delay values.""" - with Spinner(message=PLEASE_WAIT, delay=0.2) as spinner: - self.assertEqual(spinner.message, PLEASE_WAIT) - self.assertEqual(spinner.delay, 0.2) - - # - def test_spinner_stops_spinning(self): - """Tests that the spinner starts spinning and stops spinning without errors.""" - with Spinner() as spinner: - time.sleep(1) - spinner.update_message(ALMOST_DONE_MESSAGE) - time.sleep(1) - self.assertFalse(spinner.running) - - def test_spinner_updates_message_and_still_spins(self): - """Tests that the spinner message can be updated while the spinner is running and the spinner continues spinning.""" - with Spinner() as spinner: - self.assertTrue(spinner.running) - time.sleep(1) - spinner.update_message(ALMOST_DONE_MESSAGE) - time.sleep(1) - self.assertEqual(spinner.message, ALMOST_DONE_MESSAGE) - self.assertFalse(spinner.running) - - def test_spinner_can_be_used_as_context_manager(self): - """Tests that the spinner can be used as a context manager.""" - with Spinner() as spinner: - self.assertTrue(spinner.running) - self.assertFalse(spinner.running) +def test_spinner_initializes_with_default_values(): + """Tests that the spinner initializes with default values.""" + with Spinner() as spinner: + assert spinner.message == "Loading..." + assert spinner.delay == 0.1 + + +def test_spinner_initializes_with_custom_values(): + """Tests that the spinner initializes with custom message and delay values.""" + with Spinner(message=PLEASE_WAIT, delay=0.2) as spinner: + assert spinner.message == PLEASE_WAIT + assert spinner.delay == 0.2 + + +# +def test_spinner_stops_spinning(): + """Tests that the spinner starts spinning and stops spinning without errors.""" + with Spinner() as spinner: + time.sleep(1) + spinner.update_message(ALMOST_DONE_MESSAGE) + time.sleep(1) + assert spinner.running == False + + +def test_spinner_updates_message_and_still_spins(): + """Tests that the spinner message can be updated while the spinner is running and the spinner continues spinning.""" + with Spinner() as spinner: + assert spinner.running == True + time.sleep(1) + spinner.update_message(ALMOST_DONE_MESSAGE) + time.sleep(1) + assert spinner.message == ALMOST_DONE_MESSAGE + assert spinner.running == False + + +def test_spinner_can_be_used_as_context_manager(): + """Tests that the spinner can be used as a context manager.""" + with Spinner() as spinner: + assert spinner.running == True + assert spinner.running == False