title: 记录 LLM 调用 sidebarTitle: 记录 LLM 调用
本指南说明在使用自定义模型或自定义输入/输出格式时,如何把 LLM 调用记录到 LangSmith。为了充分利用 LangSmith 的 LLM 跟踪能力,你应按照指定格式之一记录追踪数据。 LangSmith 为 LLM 跟踪提供以下优势:
- 消息列表的丰富结构化渲染
- 每次 LLM 调用、每次跟踪以及跨时间跟踪的令牌和成本跟踪
消息格式
记录自定义模型或自定义输入/输出格式时,需要遵循 LangChain、OpenAI completions 或 Anthropic messages 其中之一。详情可参考 OpenAI Chat Completions 或 Anthropic Messages 文档。LangChain 格式如下:示例
将自定义 I/O 格式转换为 LangSmith 兼容格式
若使用自定义输入或输出格式,可以在@traceable(Python)或 traceable(TS)中通过 process_inputs/processInputs 与 process_outputs/processOutputs 转换为 LangSmith 兼容格式。
这些函数可在写入 LangSmith 前获取原始输入输出并返回新的字典。下面是示例模板:
在跟踪中标识自定义模型
使用自定义模型时,建议在metadata 中提供以下字段,便于查看和筛选:
ls_provider:模型提供商,例如 “openai”、“anthropic” 等ls_model_name:模型名称,例如 “gpt-4o-mini”、“claude-3-opus-20240229” 等


chat_model,可以将增量输出汇总为非流式格式,目前仅 Python 支持。
若
extra.metadata 中缺少 ls_model_name,LangSmith 会按以下优先级使用其他字段估算 Token:metadata.ls_model_nameinputs.modelinputs.model_name
metadata 字段的更多用法参见 添加元数据与标签。
提供 Token 与成本信息
当提供 Token 统计数据时,LangSmith 会根据 模型定价表 自动计算成本。更多计算方式参考成本指南。 许多模型会在响应中包含 Token 统计。可通过以下两种方式提供给 LangSmith:- 在跟踪函数内提取使用情况,并写入运行的
usage_metadata; - 在函数输出中直接返回
usage_metadata。
设置运行元数据
可以在被跟踪函数内部修改当前运行的元数据,无需改变返回值。需
langsmith>=0.3.43(Python)或 langsmith>=0.3.30(JS/TS)。设置运行输出
也可以在函数返回值中添加usage_metadata,手动指定 Token 与成本。
首 Token 延迟
使用traceable 或 SDK 包装器时,LangSmith 会为流式 LLM 运行自动填充首 Token 延迟。
若直接使用 RunTree API,则需显式添加 new_token 事件才能记录该信息。
示例如下: