浏览代码

fix: change workflow trace id (#11585)

tags/0.14.0
Joe 10 个月前
父节点
当前提交
e565ecdaef
没有帐户链接到提交者的电子邮件
共有 2 个文件被更改,包括 17 次插入12 次删除
  1. 9
    6
      api/core/ops/langfuse_trace/langfuse_trace.py
  2. 8
    6
      api/core/ops/langsmith_trace/langsmith_trace.py

+ 9
- 6
api/core/ops/langfuse_trace/langfuse_trace.py 查看文件

self.generate_name_trace(trace_info) self.generate_name_trace(trace_info)


def workflow_trace(self, trace_info: WorkflowTraceInfo): def workflow_trace(self, trace_info: WorkflowTraceInfo):
trace_id = trace_info.workflow_app_log_id or trace_info.workflow_run_id
trace_id = trace_info.workflow_run_id
user_id = trace_info.metadata.get("user_id") user_id = trace_info.metadata.get("user_id")
metadata = trace_info.metadata
metadata["workflow_app_log_id"] = trace_info.workflow_app_log_id

if trace_info.message_id: if trace_info.message_id:
trace_id = trace_info.message_id trace_id = trace_info.message_id
name = TraceTaskName.MESSAGE_TRACE.value name = TraceTaskName.MESSAGE_TRACE.value
name=name, name=name,
input=trace_info.workflow_run_inputs, input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs, output=trace_info.workflow_run_outputs,
metadata=trace_info.metadata,
metadata=metadata,
session_id=trace_info.conversation_id, session_id=trace_info.conversation_id,
tags=["message", "workflow"], tags=["message", "workflow"],
created_at=trace_info.start_time, created_at=trace_info.start_time,
) )
self.add_trace(langfuse_trace_data=trace_data) self.add_trace(langfuse_trace_data=trace_data)
workflow_span_data = LangfuseSpan( workflow_span_data = LangfuseSpan(
id=(trace_info.workflow_app_log_id or trace_info.workflow_run_id),
id=trace_info.workflow_run_id,
name=TraceTaskName.WORKFLOW_TRACE.value, name=TraceTaskName.WORKFLOW_TRACE.value,
input=trace_info.workflow_run_inputs, input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs, output=trace_info.workflow_run_outputs,
trace_id=trace_id, trace_id=trace_id,
start_time=trace_info.start_time, start_time=trace_info.start_time,
end_time=trace_info.end_time, end_time=trace_info.end_time,
metadata=trace_info.metadata,
metadata=metadata,
level=LevelEnum.DEFAULT if trace_info.error == "" else LevelEnum.ERROR, level=LevelEnum.DEFAULT if trace_info.error == "" else LevelEnum.ERROR,
status_message=trace_info.error or "", status_message=trace_info.error or "",
) )
name=TraceTaskName.WORKFLOW_TRACE.value, name=TraceTaskName.WORKFLOW_TRACE.value,
input=trace_info.workflow_run_inputs, input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs, output=trace_info.workflow_run_outputs,
metadata=trace_info.metadata,
metadata=metadata,
session_id=trace_info.conversation_id, session_id=trace_info.conversation_id,
tags=["workflow"], tags=["workflow"],
) )
metadata=metadata, metadata=metadata,
level=(LevelEnum.DEFAULT if status == "succeeded" else LevelEnum.ERROR), level=(LevelEnum.DEFAULT if status == "succeeded" else LevelEnum.ERROR),
status_message=trace_info.error or "", status_message=trace_info.error or "",
parent_observation_id=(trace_info.workflow_app_log_id or trace_info.workflow_run_id),
parent_observation_id=trace_info.workflow_run_id,
) )
else: else:
span_data = LangfuseSpan( span_data = LangfuseSpan(

+ 8
- 6
api/core/ops/langsmith_trace/langsmith_trace.py 查看文件

self.generate_name_trace(trace_info) self.generate_name_trace(trace_info)


def workflow_trace(self, trace_info: WorkflowTraceInfo): def workflow_trace(self, trace_info: WorkflowTraceInfo):
trace_id = trace_info.message_id or trace_info.workflow_app_log_id or trace_info.workflow_run_id
trace_id = trace_info.message_id or trace_info.workflow_run_id
message_dotted_order = ( message_dotted_order = (
generate_dotted_order(trace_info.message_id, trace_info.start_time) if trace_info.message_id else None generate_dotted_order(trace_info.message_id, trace_info.start_time) if trace_info.message_id else None
) )
workflow_dotted_order = generate_dotted_order( workflow_dotted_order = generate_dotted_order(
trace_info.workflow_app_log_id or trace_info.workflow_run_id,
trace_info.workflow_run_id,
trace_info.workflow_data.created_at, trace_info.workflow_data.created_at,
message_dotted_order, message_dotted_order,
) )
metadata = trace_info.metadata
metadata["workflow_app_log_id"] = trace_info.workflow_app_log_id


if trace_info.message_id: if trace_info.message_id:
message_run = LangSmithRunModel( message_run = LangSmithRunModel(
start_time=trace_info.start_time, start_time=trace_info.start_time,
end_time=trace_info.end_time, end_time=trace_info.end_time,
extra={ extra={
"metadata": trace_info.metadata,
"metadata": metadata,
}, },
tags=["message", "workflow"], tags=["message", "workflow"],
error=trace_info.error, error=trace_info.error,
langsmith_run = LangSmithRunModel( langsmith_run = LangSmithRunModel(
file_list=trace_info.file_list, file_list=trace_info.file_list,
total_tokens=trace_info.total_tokens, total_tokens=trace_info.total_tokens,
id=trace_info.workflow_app_log_id or trace_info.workflow_run_id,
id=trace_info.workflow_run_id,
name=TraceTaskName.WORKFLOW_TRACE.value, name=TraceTaskName.WORKFLOW_TRACE.value,
inputs=trace_info.workflow_run_inputs, inputs=trace_info.workflow_run_inputs,
run_type=LangSmithRunType.tool, run_type=LangSmithRunType.tool,
end_time=trace_info.workflow_data.finished_at, end_time=trace_info.workflow_data.finished_at,
outputs=trace_info.workflow_run_outputs, outputs=trace_info.workflow_run_outputs,
extra={ extra={
"metadata": trace_info.metadata,
"metadata": metadata,
}, },
error=trace_info.error, error=trace_info.error,
tags=["workflow"], tags=["workflow"],
extra={ extra={
"metadata": metadata, "metadata": metadata,
}, },
parent_run_id=trace_info.workflow_app_log_id or trace_info.workflow_run_id,
parent_run_id=trace_info.workflow_run_id,
tags=["node_execution"], tags=["node_execution"],
id=node_execution_id, id=node_execution_id,
trace_id=trace_id, trace_id=trace_id,

正在加载...
取消
保存