跳到主要内容

Run (span) 数据格式

推荐阅读

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

LangSmith 以简单的格式存储和处理 trace 数据,这种格式易于导出和导入。

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

字段名称类型描述
idUUIDspan 的唯一标识符。
namestring与 run 关联的名称。
inputsobject提供给 run 的输入映射或集合。
run_typestringRun 的类型,例如 “llm”、“chain”、“tool”。
start_timedatetimeRun 的开始时间。
end_timedatetimeRun 的结束时间。
extraobject任何额外的 run 信息。
errorstring如果 run 遇到错误,则显示错误消息。
outputsobjectrun 生成的输出映射或集合。
events对象数组与 run 关联的事件对象列表。这与使用流式处理执行的 run 相关。
tags字符串数组与 run 关联的标签或标签。
trace_idUUIDRun 所属 trace 的唯一标识符。 这也是 trace 的根 run 的 id 字段
dotted_orderstring排序字符串,分层结构。格式:run_start_timeZrun_uuid.child_run_start_timeZchild_run_uuid...
statusstringRun 执行的当前状态,例如 “error”、“pending”、“success”
child_run_idsUUID 数组所有子 run 的 ID 列表。
direct_child_run_idsUUID 数组此 run 的直接子 run 的 ID 列表。
parent_run_idsUUID 数组所有父 run 的 ID 列表。
feedback_statsobject此 run 的反馈统计信息的聚合
reference_example_idUUID与 run 关联的参考示例的 ID。 这通常仅在评估 run 中存在。
total_tokensintegerrun 处理的总 token 数。
prompt_tokensintegerrun 的 prompt 中的 token 数。
completion_tokensintegerrun 的 completion 中的 token 数。
total_coststring与处理 run 相关的总成本。
prompt_coststring与 run 的 prompt 部分相关的成本。
completion_coststring与 run 的 completion 相关的成本。
first_token_timedatetime生成第一个 token 的时间。
session_idstringrun 的会话标识符。
in_datasetboolean指示 run 是否包含在数据集中。
parent_run_idUUID父 run 的唯一标识符。
execution_order (已弃用)integer此 run 在 trace 中执行的顺序。
serializedobject如果适用,执行 run 的对象的序列化状态。
manifest_id (已弃用)UUID与 span 关联的 manifest 的标识符。
manifest_s3_idUUIDmanifest 的 S3 标识符。
inputs_s3_urlsobject输入的 S3 URL。
outputs_s3_urlsobject输出的 S3 URL。
price_model_idUUID应用于 run 的定价模型的标识符。
app_pathstring此 run 的应用程序 (UI) 路径。
last_queued_atdatetimespan 最后一次排队的时间。
share_tokenstring用于共享对 run 数据的访问的 Token。

这是一个以上述格式表示的 run 的 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

Run 的 dotted order 是一个可排序的键,它完全指定了其在 tracing 层次结构中的位置。

以下面的示例为例

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” 等于 dotted order 的最后 36 个字符(最后一个 “Z” 之后的后缀)。例如,请参阅孙子 run 中的 0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6
  • “trace_id” 等于 dotted order 中的第一个 UUID(即,dotted_order.split('.')[0].split('Z')[1]
  • 如果 “parent_run_id” 存在,则它是 dotted order 中的倒数第二个 UUID。 例如,请参阅孙子 run 中的 a8024e23-5b82-47fd-970e-f6a5ba3f5097
  • 如果按点分割 dotted_order,则每个段的格式为 (<run_start_time>Z<run_id>)

此页是否对您有帮助?


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