pydantic/genai-prices

Calculate prices for calling LLM inference APIs.

📊 GenAI Prices – 是什么

GenAI Prices 是一个小型但实用的开源库,让开发者可以查询调用某个大语言模型(LLM)推理接口的 应有成本。它提供:

  • 数据 – 数十家提供商(OpenAI、Anthropic、Azure、Bedrock、Gemini 等)数百个模型的版本化 JSON 注册表。数据包含历史价格、分层定价、非高峰时段折扣,甚至按 token 类型的计费。
  • 逻辑 – 代码可将用户提供的提供商 ID 和模型 ID 映射到正确的条目,处理模型重命名或提供商特定定价方案等细节。
  • 客户端 – 为 PythonJavaScript/TypeScriptGo 提供即用型包,每个都暴露一个极简 API(get_price(...))和一个命令行工具(genai-prices),用于快速查询。
  • 可扩展性 – 鼓励贡献新提供商或价格更新,目前已从 Helicone、LiteLLM 和 OpenRouter 等来源获取数据。

该项目是 Pydantic Stack 的一部分,旨在为开发者提供类型安全、生产就绪的 AI 代理基础。


🔧 核心功能(如 README 所列)

功能 含义
高级匹配逻辑 尽力将用户指定的提供商/模型精确映射到正确的价格条目,即使 ID 略有差异。
历史与变动价格 存储旧价格(如 o1),以便查看成本随时间演变。
变动的日定价 支持按一天中不同时段变化价格的提供商(如 Deepseek 的非高峰时段定价)。
Gemini 的分层定价 处理超大上下文窗口的单独计费。
价格差异检测 工具可将注册表与其它公开来源进行对比。
多语言包 Python、JS/TS 和 Go 的库及 CLI。
未来 API 与 Web UI 计划中,但尚未发布。

📦 如何使用

Python

pip install genai-prices

在代码中使用:

from genai_prices import get_price
price = get_price(provider="openai", model="gpt-4o", tokens=1000)
print(price)  # → {'input': 0.005, 'output': 0.015, 'currency': 'USD'}

配套的 CLI(genai-prices)也支持从终端进行相同操作。

JavaScript/TypeScript

npm i @pydantic/genai-prices
import { getPrice } from '@pydantic/genai-prices'
const price = getPrice({ provider: 'anthropic', model: 'claude-3-opus', tokens: 500 })
console.log(price)

也提供 genai-prices 命令。

Go

go get github.com/pydantic/genai-prices/go
price, _ := genaiprices.GetPrice("openrouter", "meta-llama/Meta-Llama-3.1-70B-Instruct", 2000)
fmt.Println(price)

📂 数据文件

  • v2(当前) – prices/new_data/v2/data.json(完整版)和 data_slim.json(移除免费模型,更小)。提供模式定义。
  • v1 – 为向后兼容而保留的冻结旧文件。

您可以直接下载这些 JSON 文件并嵌入到自己的工具中,以避免依赖该库。


🤝 贡献与社区

  • 通过拉取请求提交价格更新(参见 prices/README.md)。
  • 基准测试价格查询性能(参见 benchmarks/README.md)。
  • 如果您运营模型托管服务,建议公开一个包含您定价的 JSON 或 API 端点,以便项目可以摄入数据。
  • 加入 Pydantic Slack(README 中的徽章链接)参与讨论。

⚠️ 准确性免责声明

作者强调,这些数字仅为 参考。提供商很少发布机器可读的价格表,因此数据来自公开文档、社区贡献和其他开源价格列表。请始终与您的实际提供商账单核对。


📚 适用场景

GenAI Prices 为开发 LLM 驱动的应用、成本监控仪表板或预算工具 的开发者填补了关键空白。通过提供一个统一、类型安全的定价信息源,覆盖碎片化的 LLM 生态系统,它有助于避免意外账单,并使成本意识的提示设计更简单。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目