diff --git a/main.py b/main.py index bdab7c2..1f9a43b 100644 --- a/main.py +++ b/main.py @@ -19,6 +19,9 @@ from web_tools import get_page_content, web_search load_dotenv() +BROJS_INFERENCE_URL = "https://platform.brojs.ru/jrnl-bh/api/inference/v1" +DEFAULT_MODEL = "openai/gpt-oss-20b:free" + SYSTEM_PROMPT = """\ Ты исследовательский deep-агент (стиль deep agents from scratch). @@ -37,6 +40,36 @@ SYSTEM_PROMPT = """\ """ +def _api_key() -> str: + return ( + os.getenv("OPENAI_API_KEY") + or os.getenv("JOURNAL_MCP_PAT") + or os.getenv("JOURNAL_TOKEN") + or "" + ) + + +def _base_url() -> str: + if os.getenv("OPENAI_BASE_URL"): + return os.environ["OPENAI_BASE_URL"] + if os.getenv("OPENAI_API_KEY"): + return os.getenv("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1") + return BROJS_INFERENCE_URL + + +def _model() -> str: + return os.getenv("OPENAI_MODEL") or os.getenv("OPENROUTER_MODEL") or DEFAULT_MODEL + + +def build_llm() -> ChatOpenAI: + return ChatOpenAI( + model=_model(), + base_url=_base_url(), + api_key=_api_key(), + temperature=0.2, + ) + + def build_agent(): WORKSPACE_DIR.mkdir(parents=True, exist_ok=True) backend = LocalShellBackend( @@ -44,12 +77,7 @@ def build_agent(): virtual_mode=True, inherit_env=True, ) - llm = ChatOpenAI( - model=os.getenv("OPENAI_MODEL", "openai/gpt-oss-20b:free"), - base_url=os.getenv("OPENAI_BASE_URL", "https://openrouter.ai/api/v1"), - api_key=os.getenv("OPENAI_API_KEY", "fake"), - temperature=0.2, - ) + llm = build_llm() return create_deep_agent( model=llm, tools=[web_search, get_page_content, export_virtual_files],