models-config
Models Config Skill
功能
编辑和管理 ~/.pi/agent/models.json 配置文件,支持多种 API 协议的测试和验证,以及从 https://models.dev/api.json 自动获取模型价格信息。
配置结构
{
"providers": {
"provider-name": {
"baseUrl": "https://api.example.com",
"apiKey": "sk-xxx",
"api": "anthropic-messages|openai-completions|openai-responses",
"authHeader": true
}
}
}
使用方法
基本操作
# 编辑配置文件
bat ~/.pi/agent/models.json
# 验证 JSON 格式
python3 -m json.tool ~/.pi/agent/models.json
协议类型
| API 类型 | 用途 | 端点格式 |
|---|---|---|
anthropic-messages |
Claude 消息 API | /v1/messages |
openai-completions |
OpenAI Completions API | /v1/chat/completions |
openai-responses |
OpenAI Responses API | /v1/responses |
测试方法
1. Anthropic Messages API
export ANTHROPIC_BASE_URL=https://api.xairouter.com
export ANTHROPIC_AUTH_TOKEN=sk-XvsJhNdiXcDYA3e5hzD1AJP5ploMAaFuMTUxp3bHRfCiZRNt
curl $ANTHROPIC_BASE_URL/v1/messages \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
2. OpenAI Completions API (Chat)
export OPENAI_BASE_URL=http://127.0.0.1:8317/v1
export OPENAI_API_KEY=proxypal-local
curl $OPENAI_BASE_URL/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "glm-4.7",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
3. OpenAI Responses API
export OPENAI_BASE_URL=http://127.0.0.1:8317/v1
export OPENAI_API_KEY=proxypal-local
curl $OPENAI_BASE_URL/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "glm-4.7",
"input": "Hello"
}'
4. 简化测试脚本
#!/usr/bin/env bash
# test-model.sh
PROVIDER=$1
BASE_URL=$2
API_KEY=$3
MODEL=$4
echo "Testing $PROVIDER with model $MODEL..."
case "$PROVIDER" in
anthropic)
curl -s "$BASE_URL/v1/messages" \
-H "x-api-key: $API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d "{\"model\":\"$MODEL\",\"max_tokens\":256,\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}" \
| jq .
;;
openai-chat)
curl -s "$BASE_URL/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "content-type: application/json" \
-d "{\"model\":\"$MODEL\",\"max_tokens\":256,\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}" \
| jq .
;;
openai-responses)
curl -s "$BASE_URL/responses" \
-H "Authorization: Bearer $API_KEY" \
-H "content-type: application/json" \
-d "{\"model\":\"$MODEL\",\"input\":\"Hi\"}" \
| jq .
;;
esac
使用示例:
# 测试 Anthropic
bash test-model.sh anthropic \
https://api.xairouter.com \
sk-XvsJhNdiXcDYA3e5hzD1AJP5ploMAaFuMTUxp3bHRfCiZRNt \
claude-sonnet-4-5
# 测试 OpenAI Chat
bash test-model.sh openai-chat \
http://127.0.0.1:8317/v1 \
proxypal-local \
glm-4.7
常见配置
本地服务 (ProxyPal)
{
"proxypal": {
"baseUrl": "http://127.0.0.1:8317/v1",
"apiKey": "proxypal-local",
"api": "openai-completions",
"authHeader": true
}
}
Cloud 服务 (xAIRouter)
{
"xairouter": {
"baseUrl": "https://api.xairouter.com",
"apiKey": "sk-xxx",
"api": "anthropic-messages",
"authHeader": true
}
}
Ngrok 隧道
{
"ngrok": {
"baseUrl": "https://xxx.ngrok-free.dev/v1",
"apiKey": "proxypal-local",
"api": "openai-responses",
"authHeader": true
}
}
价格更新功能
从 https://models.dev/api.json 获取模型价格并更新到配置文件。
使用方法
# 更新所有模型价格
bun ~/.pi/agent/skills/models-config/update-prices.ts
工作原理
- 从 https://models.dev/api.json 获取最新价格数据
- 读取
~/.pi/agent/models.json配置文件 - 按 model ID 智能匹配价格信息
- 更新 cost 字段(input/output/cacheRead/cacheWrite)
- 显示更新摘要
匹配规则
优先级(从高到低):
- 精确匹配:model ID 完全相同
- 标准化匹配:去除前缀、版本号后相同
anthropic/claude-sonnet-4-5→claude-sonnet-4-5claude-sonnet-4-5-20250929→claude-sonnet-4-5
- 模糊匹配:基于 Levenshtein 距离的相似度匹配(≥70%)
- 自动匹配最佳相似度的模型
- 显示匹配相似度百分比
支持的别名映射:
| 你的模型 ID | 匹配到 |
|---|---|
opus4.5 |
claude-opus-4-5 |
claude-sonnet-4-5-20250929 |
claude-sonnet-4-5 |
claude-haiku-4-5-20251001 |
claude-haiku-4-5 |
z-ai/glm4.7 |
glm-4.7 |
minimaxai/minimax-m2.1 |
minimax-m2.1 |
模糊匹配示例
即使你的供应商不在 models.dev 中,只要模型名称相似,也会自动匹配:
bun ~/.pi/agent/skills/models-config/update-prices.ts
# 输出示例:
✓ Updated: claude-sonnet-4-5
Old: {"input":0,"output":0,"cacheRead":0,"cacheWrite":0}
New: {"input":2.6,"output":13,"cacheRead":0.26,"cacheWrite":3.2}
✓ Updated: glm-4.7
Fuzzy matched "glm-4.7" -> "zai-glm-4.7" (85.7% similarity)
Old: {"input":0,"output":0,"cacheRead":0,"cacheWrite":0}
New: {"input":0,"output":0,"cacheRead":0,"cacheWrite":0}
=== Summary ===
Updated: 15 models
Not found: 3 models
Models without price data:
- custom-model-x
- experimental-beta
注意事项
-
baseUrl 格式:
anthropic-messages: 不需要/v1后缀openai-*: 通常需要/v1后缀
-
认证方式:
- Anthropic:
x-api-keyheader - OpenAI:
Authorization: Bearerheader
- Anthropic:
-
测试前检查:
- 确认服务端口已启动(如
curl http://127.0.0.1:8317) - 检查 API Key 有效性
- 验证网络连通性
- 确认服务端口已启动(如
-
价格更新:
- 模糊匹配阈值:70% 相似度
- 匹配成功会显示相似度百分比
- 未匹配的模型会在摘要中列出
- 价格单位:美元/百万 tokens ($/1M tokens)
More from dwsy/agent
tavily-search-free
Web search, online search, real-time search, internet search, Google alternative, Bing alternative, DuckDuckGo alternative, search the web, lookup online, find information, research,查询,搜索,搜索结果,网页搜索,联网搜索,实时搜索,网络查询,资料查找,信息检索,最新资讯,新闻搜索, Tavily Search API for optimized, real-time web search results for RAG. A pre-configured, cost-effective search tool.
90office-combo
Microsoft Office 全功能支持。当 Claude 需要:(1)处理 Excel 表格(.xlsx)- 公式、格式、数据分析,(2)创建/编辑 PPT 演示文稿(.pptx),(3)处理 PDF 文档(.pdf)- 提取、合并、表单填写,(4)处理 Word 文档(.docx)- 编辑、修订跟踪、注释时使用。
55skill-management
技能全生命周期管理系统,使用 LLM 智能分析技能类型、评估质量、审计安全。支持 GitHub、skills.sh marketplace 和 Skills CLI (npx skills) 三数据源搜索。当用户需要:(1)发现和评估新技能,(2)审计现有技能安全性,(3)改造技能适配本地环境,(4)测试技能融合效果,(5)收集技能使用反馈时使用。
34project-planner
Comprehensive project planning and documentation generator for software projects. Creates structured requirements documents, system design documents, and task breakdown plans with implementation tracking. Use when starting a new project, defining specifications, creating technical designs, or breaking down complex systems into implementable tasks. Supports user story format, acceptance criteria, component design, API specifications, and hierarchical task decomposition with requirement traceability.
30jina-reader
URL 内容提取 + 网络搜索。读取网页转 Markdown/HTML/Text/JSON,搜索最新网络信息。触发词:read url, scrape, extract content, web search, 网页内容, 搜索
27system-design
Use when designing, architecting, or planning a new system from requirements or ideas - transforms concepts into navigable design catalog using EventStorming methodology, Mermaid diagrams, and progressive elaboration through 5 phases (Requirements, Big Picture, Processes, Data/Flows, Integration)
26