이 내용을 살펴보기 전에 다음을 읽어보시면 도움이 될 수 있습니다:
LangSmith는 trace 데이터를 내보내기 및 가져오기가 쉬운 간단한 형식으로 저장하고 처리합니다. 이러한 필드 중 많은 부분은 선택 사항이거나 알아야 할 중요한 사항이 아니지만 완전성을 위해 포함되었습니다. 굵게 표시된 필드가 가장 중요한 필드입니다.
Field NameTypeDescription
idUUIDspan의 고유 식별자입니다.
namestringrun과 연결된 이름입니다.
inputsobjectrun에 제공된 입력의 map 또는 set입니다.
run_typestringrun의 유형입니다. 예: “llm”, “chain”, “tool”.
start_timedatetimerun의 시작 시간입니다.
end_timedatetimerun의 종료 시간입니다.
extraobjectrun의 추가 정보입니다.
errorstringrun에서 오류가 발생한 경우 오류 메시지입니다.
outputsobjectrun에서 생성된 출력의 map 또는 set입니다.
eventsarray of objectsrun과 연결된 event 객체의 목록입니다. 이는 streaming으로 실행된 run과 관련이 있습니다.
tagsarray of stringsrun과 연결된 tag 또는 label입니다.
trace_idUUIDrun이 속한 trace의 고유 식별자입니다. 이는 trace의 root run의 id 필드이기도 합니다
dotted_orderstring계층적 정렬 문자열입니다. 형식: run_start_timeZrun_uuid.child_run_start_timeZchild_run_uuid
statusstringrun 실행의 현재 상태입니다. 예: “error”, “pending”, “success”
child_run_idsarray of UUIDs모든 child run의 ID 목록입니다.
direct_child_run_idsarray of UUIDs이 run의 직접 자식의 ID 목록입니다.
parent_run_idsarray of UUIDs모든 parent run의 ID 목록입니다.
feedback_statsobject이 run에 대한 피드백 통계의 집계입니다
reference_example_idUUIDrun과 연결된 참조 예제의 ID입니다. 이는 일반적으로 평가 run에만 존재합니다.
total_tokensintegerrun에서 처리된 총 token 수입니다.
prompt_tokensintegerrun의 prompt에 있는 token 수입니다.
completion_tokensintegerrun의 completion에 있는 token 수입니다.
total_coststringrun 처리와 관련된 총 비용입니다.
prompt_coststringrun의 prompt 부분과 관련된 비용입니다.
completion_coststringrun의 completion과 관련된 비용입니다.
first_token_timedatetimemodel 출력의 첫 번째 token이 생성된 시간입니다. run_type="llm"이고 streaming이 활성화된 run에만 적용됩니다.
session_idstringrun의 session 식별자이며, tracing project ID라고도 합니다.
in_datasetbooleanrun이 dataset에 포함되어 있는지 여부를 나타냅니다.
parent_run_idUUIDparent run의 고유 식별자입니다.
execution_order (deprecated)integertrace 내에서 이 run이 실행된 순서입니다.
serializedobject해당하는 경우 run을 실행하는 객체의 직렬화된 상태입니다.
manifest_id (deprecated)UUIDspan과 연결된 manifest의 식별자입니다.
manifest_s3_idUUIDmanifest의 S3 식별자입니다.
inputs_s3_urlsobject입력의 S3 URL입니다.
outputs_s3_urlsobject출력의 S3 URL입니다.
price_model_idUUIDrun에 적용된 가격 모델의 식별자입니다.
app_pathstring이 run의 애플리케이션(UI) 경로입니다.
last_queued_atdatetimespan이 마지막으로 대기열에 추가된 시간입니다.
share_tokenstringrun의 데이터에 대한 공유 액세스를 위한 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” 뒤의 접미사)와 같습니다. 예를 들어 grandchild의 0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6를 참조하세요.
  • “trace_id”는 dotted order의 첫 번째 UUID와 같습니다(즉, dotted_order.split('.')[0].split('Z')[1])
  • “parent_run_id”가 존재하는 경우, dotted order의 끝에서 두 번째 UUID입니다. 예를 들어 grandchild의 a8024e23-5b82-47fd-970e-f6a5ba3f5097를 참조하세요.
  • dotted_order를 점으로 분할하면 각 세그먼트는 (<run_start_time>Z<run_id>) 형식으로 지정됩니다

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I