25
25
LangSmithRunType ,
26
26
LangSmithRunUpdateModel ,
27
27
)
28
- from core .ops .utils import filter_none_values
28
+ from core .ops .utils import filter_none_values , generate_dotted_order
29
29
from extensions .ext_database import db
30
30
from models .model import EndUser , MessageFile
31
31
from models .workflow import WorkflowNodeExecution
@@ -62,6 +62,16 @@ def trace(self, trace_info: BaseTraceInfo):
62
62
self .generate_name_trace (trace_info )
63
63
64
64
def workflow_trace (self , trace_info : WorkflowTraceInfo ):
65
+ trace_id = trace_info .message_id or trace_info .workflow_app_log_id or trace_info .workflow_run_id
66
+ message_dotted_order = (
67
+ generate_dotted_order (trace_info .message_id , trace_info .start_time ) if trace_info .message_id else None
68
+ )
69
+ workflow_dotted_order = generate_dotted_order (
70
+ trace_info .workflow_app_log_id or trace_info .workflow_run_id ,
71
+ trace_info .workflow_data .created_at ,
72
+ message_dotted_order ,
73
+ )
74
+
65
75
if trace_info .message_id :
66
76
message_run = LangSmithRunModel (
67
77
id = trace_info .message_id ,
@@ -76,6 +86,8 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
76
86
},
77
87
tags = ["message" , "workflow" ],
78
88
error = trace_info .error ,
89
+ trace_id = trace_id ,
90
+ dotted_order = message_dotted_order ,
79
91
)
80
92
self .add_run (message_run )
81
93
@@ -95,6 +107,8 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
95
107
error = trace_info .error ,
96
108
tags = ["workflow" ],
97
109
parent_run_id = trace_info .message_id or None ,
110
+ trace_id = trace_id ,
111
+ dotted_order = workflow_dotted_order ,
98
112
)
99
113
100
114
self .add_run (langsmith_run )
@@ -177,6 +191,7 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
177
191
else :
178
192
run_type = LangSmithRunType .tool
179
193
194
+ node_dotted_order = generate_dotted_order (node_execution_id , created_at , workflow_dotted_order )
180
195
langsmith_run = LangSmithRunModel (
181
196
total_tokens = node_total_tokens ,
182
197
name = node_type ,
@@ -191,6 +206,9 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
191
206
},
192
207
parent_run_id = trace_info .workflow_app_log_id or trace_info .workflow_run_id ,
193
208
tags = ["node_execution" ],
209
+ id = node_execution_id ,
210
+ trace_id = trace_id ,
211
+ dotted_order = node_dotted_order ,
194
212
)
195
213
196
214
self .add_run (langsmith_run )
0 commit comments