ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""包装层 LLM 环境解析:为 GAIA 经验学习示例提供带 OpenRouter 兜底的配置。
|
||||
|
||||
本文件位于 gaia-experience 包装层,**不修改** 上游 AWorld fork。它把散落在各处的
|
||||
`os.getenv("LLM_API_KEY"/"LLM_BASE_URL"/"LLM_MODEL_NAME")` 读取集中起来,并加入统一兜底:
|
||||
|
||||
- 有 LLM_API_KEY / OPENAI_API_KEY -> 直连(沿用 LLM_BASE_URL,可为空即 OpenAI 官方)
|
||||
- 否则有 OPENROUTER_API_KEY -> 走 OpenRouter(https://openrouter.ai/api/v1),
|
||||
并把模型名映射到 OpenRouter 命名:
|
||||
gpt-* -> openai/gpt-*
|
||||
claude-* -> anthropic/claude-opus-4.8
|
||||
含 "/" -> 原样透传
|
||||
其它 -> openai/gpt-5.6-luna
|
||||
|
||||
默认模型 gpt-5.6-luna。
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
DEFAULT_MODEL = "gpt-5.6-luna"
|
||||
OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1"
|
||||
|
||||
|
||||
def to_openrouter_model(model: str) -> str:
|
||||
if not model:
|
||||
return "openai/gpt-5.6-luna"
|
||||
if "/" in model:
|
||||
return model
|
||||
if model.startswith("gpt-"):
|
||||
return "openai/" + model
|
||||
if model.startswith("claude-"):
|
||||
return "anthropic/claude-opus-4.8"
|
||||
return "openai/gpt-5.6-luna"
|
||||
|
||||
|
||||
def resolve_llm(default_model: str = DEFAULT_MODEL, model_override: str = None) -> dict:
|
||||
"""返回 AgentConfig 需要的 provider/model/base_url/api_key 四元组(含 OpenRouter 兜底)。
|
||||
|
||||
model_override: 若显式给了模型名(如 config.yaml 或 CLI),优先用它。
|
||||
"""
|
||||
provider = os.getenv("LLM_PROVIDER", "openai")
|
||||
model = model_override or os.getenv("LLM_MODEL_NAME", default_model)
|
||||
base_url = os.getenv("LLM_BASE_URL")
|
||||
api_key = os.getenv("LLM_API_KEY") or os.getenv("OPENAI_API_KEY")
|
||||
|
||||
if not api_key and os.getenv("OPENROUTER_API_KEY"):
|
||||
api_key = os.getenv("OPENROUTER_API_KEY")
|
||||
base_url = base_url or OPENROUTER_BASE_URL
|
||||
model = to_openrouter_model(model)
|
||||
|
||||
return {
|
||||
"llm_provider": provider,
|
||||
"llm_model_name": model,
|
||||
"llm_base_url": base_url,
|
||||
"llm_api_key": api_key,
|
||||
}
|
||||
Reference in New Issue
Block a user