Spaces:
Build error
Build error
from __future__ import annotations | |
import os | |
import uuid | |
from pathlib import Path | |
import pytest | |
from forge.config.ai_profile import AIProfile | |
from forge.file_storage.local import ( | |
FileStorage, | |
FileStorageConfiguration, | |
LocalFileStorage, | |
) | |
from forge.llm.providers import MultiProvider | |
from forge.logging.config import configure_logging | |
from autogpt.agents.agent import Agent, AgentConfiguration, AgentSettings | |
from autogpt.app.config import AppConfig, ConfigBuilder | |
from autogpt.app.main import _configure_llm_provider | |
pytest_plugins = [ | |
"tests.integration.agent_factory", | |
] | |
def tmp_project_root(tmp_path: Path) -> Path: | |
return tmp_path | |
def app_data_dir(tmp_project_root: Path) -> Path: | |
dir = tmp_project_root / "data" | |
dir.mkdir(parents=True, exist_ok=True) | |
return dir | |
def storage(app_data_dir: Path) -> FileStorage: | |
storage = LocalFileStorage( | |
FileStorageConfiguration(root=app_data_dir, restrict_to_root=False) | |
) | |
storage.initialize() | |
return storage | |
def config( | |
tmp_project_root: Path, | |
app_data_dir: Path, | |
): | |
if not os.environ.get("OPENAI_API_KEY"): | |
os.environ["OPENAI_API_KEY"] = "sk-dummy" | |
config = ConfigBuilder.build_config_from_env(project_root=tmp_project_root) | |
config.app_data_dir = app_data_dir | |
config.noninteractive_mode = True | |
yield config | |
def setup_logger(): | |
configure_logging( | |
debug=True, | |
log_dir=Path(__file__).parent / "logs", | |
plain_console_output=True, | |
) | |
def llm_provider(config: AppConfig) -> MultiProvider: | |
return _configure_llm_provider(config) | |
def agent( | |
config: AppConfig, llm_provider: MultiProvider, storage: FileStorage | |
) -> Agent: | |
ai_profile = AIProfile( | |
ai_name="Base", | |
ai_role="A base AI", | |
ai_goals=[], | |
) | |
agent_settings = AgentSettings( | |
name=Agent.default_settings.name, | |
description=Agent.default_settings.description, | |
agent_id=f"AutoGPT-test-agent-{str(uuid.uuid4())[:8]}", | |
ai_profile=ai_profile, | |
config=AgentConfiguration( | |
fast_llm=config.fast_llm, | |
smart_llm=config.smart_llm, | |
allow_fs_access=not config.restrict_to_workspace, | |
use_functions_api=config.openai_functions, | |
), | |
history=Agent.default_settings.history.model_copy(deep=True), | |
) | |
agent = Agent( | |
settings=agent_settings, | |
llm_provider=llm_provider, | |
file_storage=storage, | |
app_config=config, | |
) | |
return agent | |