跳到主要内容

运行(span)数据格式

推荐阅读

在深入了解此内容之前,阅读以下内容可能会有所帮助

LangSmith 以一种易于导出和导入的简单格式存储和处理跟踪数据。

这些字段中有许多是可选的或不重要的,但为了完整性而包含在内。**加粗**的字段是最重要的。

字段名类型描述
idUUIDspan 的唯一标识符。
名称字符串与运行关联的名称。
输入对象提供给运行的输入映射或集合。
运行类型字符串运行类型,例如“llm”、“chain”、“tool”。
开始时间日期时间运行的开始时间。
结束时间日期时间运行的结束时间。
额外信息对象运行的任何额外信息。
错误字符串如果运行遇到错误,则为错误消息。
输出对象运行生成的输出映射或集合。
事件对象数组与运行关联的事件对象列表。这与流式执行的运行相关。
标签字符串数组与运行关联的标签。
跟踪 IDUUID运行所属跟踪的唯一标识符。这也是跟踪根运行的 id 字段。
点分顺序字符串排序字符串,层次结构。格式:run_start_timeZrun_uuid.child_run_start_timeZchild_run_uuid...
状态字符串运行执行的当前状态,例如“错误”、“待处理”、“成功”
子运行 IDUUID 数组所有子运行的 ID 列表。
直接子运行 IDUUID 数组此运行的直接子运行的 ID 列表。
父运行 IDUUID 数组所有父运行的 ID 列表。
反馈统计对象此运行的反馈统计汇总。
参考示例 IDUUID与运行关联的参考示例的 ID。通常仅在评估运行中存在。
总 token 数整数运行处理的 token 总数。
提示 token 数整数运行提示中的 token 数。
完成 token 数整数运行完成中的 token 数。
总成本字符串与处理运行相关的总成本。
提示成本字符串与运行的提示部分相关的成本。
完成成本字符串与运行完成相关的成本。
首个 token 时间日期时间生成第一个 token 的时间。
会话 ID字符串运行的会话标识符。
在数据集中布尔值指示运行是否包含在数据集中。
父运行 IDUUID父运行的唯一标识符。
执行顺序(已弃用)整数此运行在跟踪中执行的顺序。
序列化对象如果适用,执行运行的对象的序列化状态。
清单 ID(已弃用)UUID与 span 关联的清单的标识符。
清单 S3 IDUUID清单的 S3 标识符。
输入 S3 URL对象输入的 S3 URL。
输出 S3 URL对象输出的 S3 URL。
定价模型 IDUUID应用于运行的定价模型的标识符。
应用路径字符串此运行的应用(UI)路径。
上次排队时间日期时间span 上次排队的时间。
分享 token字符串用于共享访问运行数据的 token。

以下是上述格式的运行 JSON 表示示例

{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"inputs": {},
"run_type": "llm",
"start_time": "2024-04-29T00:49:12.090000",
"end_time": "2024-04-29T00:49:12.459000",
"extra": {},
"error": "string",
"execution_order": 1,
"serialized": {},
"outputs": {},
"parent_run_id": "f8faf8c1-9778-49a4-9004-628cdb0047e5",
"manifest_id": "82825e8e-31fc-47d5-83ce-cd926068341e",
"manifest_s3_id": "0454f93b-7eb6-4b9d-a203-f1261e686840",
"events": [{}],
"tags": ["foo"],
"inputs_s3_urls": {},
"outputs_s3_urls": {},
"trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
"dotted_order": "20240429T004912090000Z497f6eca-6276-4993-bfeb-53cbbbba6f08",
"status": "string",
"child_run_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
"direct_child_run_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
"parent_run_ids": ["f8faf8c1-9778-49a4-9004-628cdb0047e5"],
"feedback_stats": {
"correctness": {
"n": 1,
"avg": 1.0
}
},
"reference_example_id": "9fb06aaa-105f-4c87-845f-47d62ffd7ee6",
"total_tokens": 0,
"prompt_tokens": 0,
"completion_tokens": 0,
"total_cost": "string",
"prompt_cost": "string",
"completion_cost": "string",
"price_model_id": "0b5d9575-bec3-4256-b43a-05893b8b8440",
"first_token_time": null,
"session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
"app_path": "string",
"last_queued_at": null,
"in_dataset": true,
"share_token": "d0430ac3-04a1-4e32-a7ea-57776ad22c1c"
}

dotted_order 是什么?

运行的点分顺序是一个可排序的键,它完整地指定了其在跟踪层次结构中的位置。

以下是一个示例

import langsmith as ls


@ls.traceable
def grandchild():
p("grandchild")


@ls.traceable
def child():
grandchild()


@ls.traceable
def parent():
child()

如果您打印出每个阶段的 ID,可能会得到以下结果

parent
run_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7
trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7
parent_run_id=null
dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7
child
run_id=a8024e23-5b82-47fd-970e-f6a5ba3f5097
trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7
parent_run_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7
dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7.20240919T171648523407Za8024e23-5b82-47fd-970e-f6a5ba3f5097
grandchild
run_id=0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6
trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7
parent_run_id=a8024e23-5b82-47fd-970e-f6a5ba3f5097
dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7.20240919T171648523407Za8024e23-5b82-47fd-970e-f6a5ba3f5097.20240919T171648523563Z0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6

注意一些不变式

  • “id”等于点分顺序的最后 36 个字符(最后一个“Z”后面的后缀)。例如,在孙级运行中查看 0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6
  • “trace_id”等于点分顺序中的第一个 UUID(即 dotted_order.split('.')[0].split('Z')[1])。
  • 如果“parent_run_id”存在,它是点分顺序中的倒数第二个 UUID。例如,在孙级运行中查看 a8024e23-5b82-47fd-970e-f6a5ba3f5097
  • 如果将 dotted_order 按点分割,每个片段的格式为 (<run_start_time>Z<run_id>)

此页面有帮助吗?


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