mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-05-25 16:00:35 +00:00
77b0c43392
* refactor: support explicit model list providers * fix(web): preserve explicit model providers * fix(web): preserve legacy provider prefixes on model updates fix(models): normalize explicit provider-prefixed ids fix(api): preserve legacy model updates across providers fix(agent): preserve config identity for explicit provider refs * fix ci
1.9 KiB
1.9 KiB
🐛 疑难解答
返回 README
"model ... not found in model_list" 或 OpenRouter "free is not a valid model ID"
症状: 你看到以下任一错误:
Error creating provider: model "openrouter/free" not found in model_list- OpenRouter 返回 400:
"free is not a valid model ID"
原因: PicoClaw 现在按两步解析 provider 和 model:
- 如果设置了
provider,则会把model原样发送给该 provider。 - 如果未设置
provider,则会把model第一个/之前的字段当作 provider,并把第一个/之后的全部内容当作最终发送的模型 ID。
对于 OpenRouter 免费层路由,推荐显式设置 provider。
- 错误:
"model": "free"→ 不会选中 OpenRouter,free也不是可直接路由的 OpenRouter 模型配置。 - 正确:
"provider": "openrouter", "model": "free"→ OpenRouter 收到free。 - 也兼容:
"model": "openrouter/free"→ provider 解析为openrouter,最终模型 ID 解析为free。
修复方法: 在 ~/.picoclaw/config.json(或你的配置路径)中:
- agents.defaults.model_name 必须匹配
model_list中的某个model_name(例如"openrouter-free")。 - 该条目推荐显式设置 provider 为
openrouter,并在 model 中填写有效的 OpenRouter 模型 ID,例如:"free"– 自动免费层"google/gemini-2.0-flash-exp:free""meta-llama/llama-3.1-8b-instruct:free"
示例片段:
{
"agents": {
"defaults": {
"model_name": "openrouter-free"
}
},
"model_list": [
{
"model_name": "openrouter-free",
"provider": "openrouter",
"model": "free",
"api_keys": ["sk-or-v1-YOUR_OPENROUTER_KEY"],
"api_base": "https://openrouter.ai/api/v1"
}
]
}
在 OpenRouter Keys 获取你的密钥。