跳到主要内容
LangSmith 允许您跟踪基于 LLM 运行的令牌成本。成本将汇总到跟踪和项目级别。 有两种方式可以跟踪成本:
  1. 根据令牌计数和模型价格推导
  2. 直接作为运行数据的一部分指定
在大多数情况下,将令牌计数包含在运行数据中并在 LangSmith 中指定模型定价更容易。LangSmith 假定成本与令牌计数呈线性关系,并按令牌类型进行细分。对于少数具有非线性定价的模型(例如,输入令牌超过 X 时,每个令牌的价格会变化),我们建议在客户端计算成本并将其作为运行数据的一部分发送。

发送令牌计数

为了让 LangSmith 准确地推导 LLM 运行的成本,您需要提供令牌计数
  • 如果您将 LangSmith Python 或 TS/JS SDK 与 OpenAI 或 Anthropic 模型一起使用,内置包装器将自动将令牌计数、模型提供商和模型名称数据发送到 LangSmith。
  • 如果您将 LangSmith SDK 与其他模型提供商一起使用,您应该仔细阅读本指南
  • 如果您使用 LangChain Python 或 TS/JS,令牌计数、模型提供商和模型名称将自动发送到 LangSmith,适用于大多数聊天模型集成。如果缺少令牌计数的聊天模型集成,并且底层 API 在模型响应中包含令牌计数,请在 LangChain 存储库中提交 GitHub 问题。
必须明确提供令牌计数才能进行准确的成本跟踪。有关如何包含令牌计数的详细信息,请参阅提供令牌和成本信息的指南。

指定模型名称

LangSmith 从运行元数据中的 ls_model_name 字段读取 LLM 模型名称。SDK 内置包装器和任何 LangChain 集成都会自动为您处理此元数据的指定。

设置模型价格

要根据令牌计数和模型名称计算成本,我们需要知道您所使用模型的每个令牌价格。LangSmith 为此提供了一个模型定价表。该表包含大多数 OpenAI、Anthropic 和 Gemini 模型的定价信息。您可以添加其他模型的价格,或覆盖默认模型的定价。 您可以指定提示(输入)和补全(输出)令牌的价格。如果需要,您可以提供更详细的价格细分。例如,某些模型提供商对多模态或缓存令牌有不同的定价。 将鼠标悬停在提示/补全价格旁边的 ... 上,可以查看按令牌类型划分的价格细分。例如,您可以查看 audioimage 提示令牌是否与默认文本提示令牌有不同的价格。 要创建模型定价映射中的新条目,请单击右上角的 Add new model 按钮。 New price map entry interface 在此处,您可以指定以下字段:
  • 模型名称:模型的人类可读名称。
  • 匹配模式:一个用于匹配模型名称的正则表达式模式。这用于匹配运行元数据中 ls_model_name 的值。
  • 提示(输入)价格:模型每百万输入令牌的成本。此数字乘以提示中的令牌数量,以计算提示成本。
  • 补全(输出)价格:模型每百万输出令牌的成本。此数字乘以补全中的令牌数量,以计算补全成本。
  • 提示(输入)价格细分(可选):每种不同类型的提示令牌的价格细分,例如 cache_readvideoaudio 等。
  • 补全(输出)价格细分(可选):每种不同类型的补全令牌的价格细分,例如 reasoningimage 等。
  • 模型激活日期(可选):定价适用的日期。只有在此日期之后的运行才会应用此模型价格。
  • 提供商(可选):模型的提供商。如果指定,这将与运行元数据中的 ls_provider 进行匹配。
设置模型定价映射后,LangSmith 将根据 LLM 调用中提供的令牌计数自动计算和聚合基于令牌的跟踪成本。
请注意,模型定价映射的更新不会反映在已记录跟踪的成本中。我们目前不支持回填模型定价更改。
对于指定定价细分,以下是 LangChain 聊天模型集成和 LangSmith SDK 包装器使用的详细令牌计数类型
# Standardized
cache_read
cache_creation
reasoning
audio
image
video
# Anthropic-only
ephemeral_1h_input_tokens
ephemeral_5m_input_tokens

成本公式

运行成本是根据从最具体到最不具体的令牌类型贪婪计算的。假设我们设置了每百万提示令牌 2 美元的价格,其中详细价格为每百万 cache_read 提示令牌 1 美元,每百万补全令牌 3 美元。如果上传以下使用元数据
{
  "input_tokens": 20,
  "input_token_details": {"cache_read": 5},
  "output_tokens": 10,
  "output_token_details": {},
  "total_tokens": 30,
}
那么我们将按如下方式计算令牌成本
# A.K.A. prompt_cost
# Notice that we compute the cache_read cost and then for any
# remaining input_tokens we apply the default input price.
input_cost = 5 * 1e-6 + (20 - 5) * 2e-6  # 3.5e-5
# A.K.A. completion_cost
output_cost = 10 * 3e-6  # 3e-5
total_cost = input_cost + output_cost  # 6.5e-5

直接发送成本

如果您正在跟踪返回令牌成本信息的 LLM 调用,正在跟踪具有非基于令牌的定价方案的 API,或者在运行时拥有有关成本的准确信息,则可以改为在跟踪时填充 usage_metadata 字典,而不是依赖 LangSmith 的内置成本计算。 请参阅本指南,了解如何手动为运行提供成本信息。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.