forked from FOLLGAD/godmode
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Convertido para formato Unix e copiado para novo branch
- Loading branch information
1 parent
de37eee
commit 252ee46
Showing
4 changed files
with
179 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
[run] | ||
[run] | ||
relative_files = true |
160 changes: 80 additions & 80 deletions
160
tests/integration/challenges/memory/test_memory_challenge_a.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,80 +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 # real level beaten 30 and maybe more, but we can't record it, the cassette is too big | ||
MAX_LEVEL = 3 | ||
|
||
|
||
@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, 180) | ||
# 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" | ||
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 # real level beaten 30 and maybe more, but we can't record it, the cassette is too big | ||
MAX_LEVEL = 3 | ||
|
||
|
||
@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, 180) | ||
# 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" |
160 changes: 80 additions & 80 deletions
160
tests/integration/challenges/memory/test_memory_challenge_b.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,80 +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 generate_noise, get_level_to_run | ||
from tests.utils import requires_api_key | ||
|
||
LEVEL_CURRENTLY_BEATEN = None | ||
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, 60) | ||
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" | ||
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 = None | ||
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, 60) | ||
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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
import pytest | ||
|
||
from autogpt.agent import Agent | ||
from autogpt.commands.file_operations import read_file | ||
from tests.integration.agent_utils import run_interaction_loop | ||
from tests.utils import requires_api_key | ||
|
||
|
||
@requires_api_key("OPENAI_API_KEY") | ||
@pytest.mark.vcr | ||
def test_browse_website(browser_agent: Agent) -> None: | ||
file_path = browser_agent.workspace.get_path("browse_website.txt") | ||
try: | ||
run_interaction_loop(browser_agent, 120) | ||
# catch system exit exceptions | ||
except SystemExit: # the agent returns an exception when it shuts down | ||
content = read_file(file_path) | ||
assert "£25.89" in content, f"Expected £25.89, got {content}" | ||
import pytest | ||
|
||
from autogpt.agent import Agent | ||
from autogpt.commands.file_operations import read_file | ||
from tests.integration.agent_utils import run_interaction_loop | ||
from tests.utils import requires_api_key | ||
|
||
|
||
@requires_api_key("OPENAI_API_KEY") | ||
@pytest.mark.vcr | ||
def test_browse_website(browser_agent: Agent) -> None: | ||
file_path = browser_agent.workspace.get_path("browse_website.txt") | ||
try: | ||
run_interaction_loop(browser_agent, 120) | ||
# catch system exit exceptions | ||
except SystemExit: # the agent returns an exception when it shuts down | ||
content = read_file(file_path) | ||
assert "£25.89" in content, f"Expected £25.89, got {content}" |