Skip to main content

计算基于令牌的跟踪成本

推荐阅读

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

LangSmith 允许您根据 LLM 调用使用的令牌数量来跟踪追踪(traces)的成本。 这些成本会汇总到追踪级别和项目级别。

为了使 LangSmith 能够准确计算基于令牌的开销,您需要为追踪中的每次 LLM 调用提供令牌计数,并在运行元数据中发送 ls_providerls_model_name

  • 如果您正在使用 LangSmith Python 或 TS/JS SDK,请仔细阅读本指南
  • 如果您正在使用 LangChain Python 或 TS/JS,ls_providerls_model_name 以及 token 计数会自动发送至 LangSmith
注意

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

  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 设置中配置模型价格映射。 为此,请导航至 模型价格映射。 在此处,您可以为每个模型和提供商组合设置每 token 的成本。此信息限定于特定工作区。

OpenAI 模型的多个默认条目已存在于模型定价映射中,您可以根据需要克隆并修改它们。

要创建模型定价地图中的新条目,请点击右上角的Add new model按钮。

在此,您可以指定以下字段:

  • Model Name: 模型的名称,也将用于命名模型定价映射中的条目。
  • Prompt Cost: 该模型每个输入 token 的成本。此数字乘以提示中的 token 数量以计算提示成本。
  • Completion Cost: 模型每个输出 token 的成本。该数字乘以完成中的 token 数量以计算完成成本。
  • Model Activation Date: 定价适用的起始日期。
  • Match Pattern: 用于匹配模型名称和提供者的正则表达式模式。此模式用于在运行元数据中匹配 ls_model_name 的值。
  • Provider: 模型的提供方。此字段用于与运行元数据中的 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 调用的 token 数量。 此信息与我们之前设置的模型定价地图条目相匹配。

生成的跟踪将包含基于LLM调用中提供的令牌计数和模型定价映射条目的基于令牌的开销。


此页面有帮助吗?


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