Skip to content

Commit

Permalink
fix: change workflow trace id (#11585)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhouhaoJiang authored Dec 12, 2024
1 parent f96fdc2 commit e565ecd
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
15 changes: 9 additions & 6 deletions api/core/ops/langfuse_trace/langfuse_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,11 @@ def trace(self, trace_info: BaseTraceInfo):
self.generate_name_trace(trace_info)

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")
metadata = trace_info.metadata
metadata["workflow_app_log_id"] = trace_info.workflow_app_log_id

if trace_info.message_id:
trace_id = trace_info.message_id
name = TraceTaskName.MESSAGE_TRACE.value
Expand All @@ -76,22 +79,22 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
name=name,
input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs,
metadata=trace_info.metadata,
metadata=metadata,
session_id=trace_info.conversation_id,
tags=["message", "workflow"],
created_at=trace_info.start_time,
updated_at=trace_info.end_time,
)
self.add_trace(langfuse_trace_data=trace_data)
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,
input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs,
trace_id=trace_id,
start_time=trace_info.start_time,
end_time=trace_info.end_time,
metadata=trace_info.metadata,
metadata=metadata,
level=LevelEnum.DEFAULT if trace_info.error == "" else LevelEnum.ERROR,
status_message=trace_info.error or "",
)
Expand All @@ -103,7 +106,7 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
name=TraceTaskName.WORKFLOW_TRACE.value,
input=trace_info.workflow_run_inputs,
output=trace_info.workflow_run_outputs,
metadata=trace_info.metadata,
metadata=metadata,
session_id=trace_info.conversation_id,
tags=["workflow"],
)
Expand Down Expand Up @@ -192,7 +195,7 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
metadata=metadata,
level=(LevelEnum.DEFAULT if status == "succeeded" else LevelEnum.ERROR),
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:
span_data = LangfuseSpan(
Expand Down
14 changes: 8 additions & 6 deletions api/core/ops/langsmith_trace/langsmith_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,17 @@ def trace(self, trace_info: BaseTraceInfo):
self.generate_name_trace(trace_info)

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 = (
generate_dotted_order(trace_info.message_id, trace_info.start_time) if trace_info.message_id else None
)
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,
message_dotted_order,
)
metadata = trace_info.metadata
metadata["workflow_app_log_id"] = trace_info.workflow_app_log_id

if trace_info.message_id:
message_run = LangSmithRunModel(
Expand All @@ -82,7 +84,7 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
start_time=trace_info.start_time,
end_time=trace_info.end_time,
extra={
"metadata": trace_info.metadata,
"metadata": metadata,
},
tags=["message", "workflow"],
error=trace_info.error,
Expand All @@ -94,15 +96,15 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
langsmith_run = LangSmithRunModel(
file_list=trace_info.file_list,
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,
inputs=trace_info.workflow_run_inputs,
run_type=LangSmithRunType.tool,
start_time=trace_info.workflow_data.created_at,
end_time=trace_info.workflow_data.finished_at,
outputs=trace_info.workflow_run_outputs,
extra={
"metadata": trace_info.metadata,
"metadata": metadata,
},
error=trace_info.error,
tags=["workflow"],
Expand Down Expand Up @@ -204,7 +206,7 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
extra={
"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"],
id=node_execution_id,
trace_id=trace_id,
Expand Down

0 comments on commit e565ecd

Please sign in to comment.