GitHub Pages 现已支持价格展示与搜索功能!访问 https://oaklight.github.io/onehub_prices/ 体验直观的价格对比和搜索 🔍
本项目管理多个 AI 供应商的价格信息,支持自动获取和手动维护多种来源的价格数据。包含以下价格表:
- oneapi_prices.json: 适用于 one-hub 的完整价格表,包含所有供应商
- onehub_only_prices.json: 仅包含供应商 id <= 1000 的核心供应商价格表
- siliconflow_prices.json: 来自 siliconflow 官方的原始价格数据
- openrouter_prices.json: 来自 openrouter 官方的原始价格数据
所有价格数据每 6 小时自动更新,确保信息及时准确。为了保持整洁,目前的 JSON 格式的价格和 ownedby 更新结果均已迁移至 prices 分支。请关注价格表最末尾的更新时间提示图标。
项目维护者:Oaklight
重要提示:
- 价格表与供应商 JSON 结果均已迁移至prices 分支,使用前请注意更新 url 路径
- 使用任何价格表前,请务必检查ownedby.json (jsDelivr CDN,jsDelivr Mirror) 以确保供应商 ID 与本项目版本一致
- 如需使用除了 onehub 默认定义的供应商之外的价格,请确保你的
模型归属页面与 ownedby.json 中的定义一致
根据不同的使用场景选择相应的价格表:
-
完整价格表 (oneapi_prices.json)
- 包含所有供应商的价格信息
- 适用于需要完整价格数据的场景
- 地址:
-
核心供应商价格表 (onehub_only_prices.json)
- 仅包含供应商 id <= 1000 的核心供应商
- 适用于只需要核心供应商价格的场景
- 地址:
-
Siliconflow 原始价格表 (siliconflow_prices.json)
- 来自 Siliconflow 官方的原始价格数据
- 适用于需要原始价格数据的场景
- 地址:
-
OpenRouter 原始价格表 (openrouter_prices.json)
- 来自 OpenRouter 官方的原始价格数据
- 适用于需要原始价格数据的场景
- 地址:
核对模型归属:
- 进入
运营 -> 模型归属 - 对比
ownedby.json文件,手工增删查改模型归属信息
更新模型价格:
- 进入
运营 -> 模型价格 -> 更新价格 - 根据需求选择上述价格表地址填入
- 点击
获取数据 - 按需选择
覆盖数据或仅添加新增
sync_pricing.py 是一个用于同步价格数据的脚本。可选择 json 文件或 url 地址作为数据源。
-
确保已安装依赖项:
pip install -r requirements.txt
-
运行脚本以同步 ownedby 数据:
python src/sync_ownedby.py [--source_json SOURCE_JSON] [--source_url SOURCE_URL] [--manual_json MANUAL_JSON] [--manual_url MANUAL_URL]
示例:
python src/sync_ownedby.py --source_json=ownedby.json --manual_url=https://cdn.jsdmirror.com/gh/Oaklight/onehub_prices@master/ownedby_manual.json
如果未指定
--json_file或--json_url参数,脚本将默认加载./ownedby.json。 -
检查生成的 ownedby 表文件是否更新成功。
-
运行脚本以同步价格数据:
python src/sync_pricing.py [--json_file JSON_FILE] [--json_url JSON_URL]
示例:
python src/sync_pricing.py --json_url=https://cdn.jsdmirror.com/gh/Oaklight/onehub_prices@prices/oneapi_prices.json
如果未指定
--json_file或--json_url参数,脚本将默认加载./oneapi_prices.json。 -
检查生成的价格表文件是否更新成功。
- 请确保网络连接正常,以便脚本能够访问外部 API。
- 如果需要手动调整价格数据,请编辑
manual_prices/目录中的 YAML 文件。 sync_pricing.py脚本支持通过以下环境变量进行配置,并支持以下参数:--json_file: 指定 JSON 文件路径--json_url: 指定 JSON 数据的 URL- 优先使用 url,其次使用文件
ONEHUB_URL: API 基础 URLONEHUB_ADMIN_TOKEN: 管理员认证令牌SYNC_PRICE_OVERWRITE: 是否覆盖现有价格(默认为True)
例如
export ONEHUB_URL="https://onehub.your.link" # 仅基础url,不要附带api subpath
export ONEHUB_ADMIN_TOKEN="your_admin_token" # 网页管理后台获得
export SYNC_PRICE_OVERWRITE=True # 是否覆盖现有价格
python src/sync_pricing.py [--json_file=./oneapi_prices.json] [--json_url=https://cdn.jsdmirror.com/gh/Oaklight/onehub_prices@prices/oneapi_prices.json]如果需要添加或更新供应商的手工定价文件,请遵循以下规范:
详细的 YAML 文件编写规范请查看:Manual Pricing 编写规则文档
核心要求:
- ✅ 主模型名称不应包含
latest、时间戳、preview、exp等后缀 - ✅ 模型名称不应包含空格
- ✅ 所有模型必须能在官方定价页面中找到,不能臆造
- ✅ 必须添加官方定价页面链接
- ✅ 价格单位格式正确(如
2.5 usd / M)
manual_prices/- 手动维护的供应商价格 YAML 文件docs/manual_pricing_rules.md- 完整的编写规则文档src/- 价格处理和同步脚本
近期主要更新包括:
- 增添 CDN 链接:
- 添加 jsdelivr 链接
- 添加 jsdmirror 链接
- 自动刷新间隔调整为每 6 小时:github action 的运行时间从原来的每天一次改为每 6 小时一次。
- 新增供应商支持:添加了 Coreshub, Pollinations.AI, OpenRouter, Moonshot 等新供应商的价格支持
- 脚本改进:
- 新增
get_ownedby.py用于获取供应商归属信息 - 改进
get_siliconflow_prices.py的模型排序逻辑 - 优化
merge_prices.py生成onehub_only_prices.json - 新增
sync_pricing.py用于同步价格数据,支持通过 JSON 文件或 URL 数据源 - 新增
sync_ownedby.py用于同步 ownedby 数据,支持通过 JSON 文件或 URL 数据源
- 新增
- 价格表维护:
- 新增多个供应商的手动价格配置
- 优化价格合并逻辑,确保数据一致性
- 自动化流程:
- 每日自动更新价格数据
- 自动生成核心供应商价格表
- 自动验证数据完整性