跳到主要内容

计算基于令牌的跟踪成本

推荐阅读

在深入阅读本文档之前,阅读以下内容可能会有所帮助

LangSmith 允许您根据 LLM 调用中使用的令牌数量来跟踪跟踪的成本。成本汇总到跟踪级别和项目级别。

为了让 LangSmith 准确计算基于令牌的成本,您需要提供跟踪中每次 LLM 调用的令牌计数,并在运行元数据中发送 ls_providerls_model_name

  • 如果您正在使用 LangSmith Python 或 TS/JS SDK,您应该仔细阅读本指南
  • 如果您正在使用 LangChain Python 或 TS/JS,ls_providerls_model_name 以及令牌计数将自动发送到 LangSmith
注意

如果 ls_model_nameextra.metadata 中不存在,则可能会使用 extra.invocation_metadata 中的其他字段来估计令牌计数和计算成本。以下字段按优先级顺序使用

  1. metadata.ls_model_name
  2. invocation_params.model
  3. invocation_params.model_name
  4. invocation_params.model_id (仅用于成本计算)
  5. invocation_params.model_path (仅用于成本计算)
  6. invocation_params.endpoint_name (仅用于成本计算)

一旦您将正确的信息发送到 LangSmith,您必须在 LangSmith 设置中设置模型定价地图。为此,请导航到模型定价地图。在这里,您可以设置每种模型和提供商组合的每个令牌成本。此信息的作用域限定为工作区。

模型定价地图中已经存在几个 OpenAI 模型的默认条目,您可以根据需要克隆和修改它们。

要在模型定价地图中创建新条目,请单击右上角的 添加新模型 按钮。

在这里,您可以指定以下字段

  • 模型名称:模型的名称,也将用于命名模型定价地图中的条目。
  • Prompt 成本:模型的每个输入令牌的成本。此数字乘以 prompt 中的令牌数量以计算 prompt 成本。
  • Completion 成本:模型的每个输出令牌的成本。此数字乘以 completion 中的令牌数量以计算 completion 成本。
  • 模型激活日期:定价适用的日期。
  • 匹配模式:用于匹配模型名称和提供商的正则表达式模式。这用于匹配运行元数据中 ls_model_name 的值。
  • 提供商:模型的提供商。这用于匹配运行元数据中 ls_provider 的值。

设置模型定价地图后,LangSmith 将根据 LLM 调用中提供的令牌计数自动计算和汇总跟踪的基于令牌的成本。

要查看上面示例的实际效果,您可以执行以下代码片段

from langsmith import traceable

inputs = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "I'd like to book a table for two."},
]

output = {
"choices": [
{
"message": {
"role": "assistant",
"content": "Sure, what time would you like to book the table for?"
}
}
],
"usage_metadata": {
"input_tokens": 27,
"output_tokens": 13,
"total_tokens": 40,
},
}

@traceable(
run_type="llm",
metadata={"ls_provider": "my_provider", "ls_model_name": "my_model"}
)
def chat_model(messages: list):
return output

chat_model(inputs)

在上面的代码片段中,我们在运行元数据中发送了 ls_providerls_model_name,以及 LLM 调用的令牌计数。此信息与我们之前设置的模型定价地图条目相匹配。

生成的跟踪将包含基于令牌的成本,这些成本基于 LLM 调用中提供的令牌计数和模型定价地图条目。


此页面对您有帮助吗?


您可以留下详细的反馈 在 GitHub 上.