|  | @@ -25,7 +25,7 @@ from core.ops.langsmith_trace.entities.langsmith_trace_entity import (
 | 
	
		
			
				|  |  |      LangSmithRunType,
 | 
	
		
			
				|  |  |      LangSmithRunUpdateModel,
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  | -from core.ops.utils import filter_none_values
 | 
	
		
			
				|  |  | +from core.ops.utils import filter_none_values, generate_dotted_order
 | 
	
		
			
				|  |  |  from extensions.ext_database import db
 | 
	
		
			
				|  |  |  from models.model import EndUser, MessageFile
 | 
	
		
			
				|  |  |  from models.workflow import WorkflowNodeExecution
 | 
	
	
		
			
				|  | @@ -62,6 +62,16 @@ class LangSmithDataTrace(BaseTraceInstance):
 | 
	
		
			
				|  |  |              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
 | 
	
		
			
				|  |  | +        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_data.created_at,
 | 
	
		
			
				|  |  | +            message_dotted_order,
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if trace_info.message_id:
 | 
	
		
			
				|  |  |              message_run = LangSmithRunModel(
 | 
	
		
			
				|  |  |                  id=trace_info.message_id,
 | 
	
	
		
			
				|  | @@ -76,6 +86,8 @@ class LangSmithDataTrace(BaseTraceInstance):
 | 
	
		
			
				|  |  |                  },
 | 
	
		
			
				|  |  |                  tags=["message", "workflow"],
 | 
	
		
			
				|  |  |                  error=trace_info.error,
 | 
	
		
			
				|  |  | +                trace_id=trace_id,
 | 
	
		
			
				|  |  | +                dotted_order=message_dotted_order,
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |              self.add_run(message_run)
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -95,6 +107,8 @@ class LangSmithDataTrace(BaseTraceInstance):
 | 
	
		
			
				|  |  |              error=trace_info.error,
 | 
	
		
			
				|  |  |              tags=["workflow"],
 | 
	
		
			
				|  |  |              parent_run_id=trace_info.message_id or None,
 | 
	
		
			
				|  |  | +            trace_id=trace_id,
 | 
	
		
			
				|  |  | +            dotted_order=workflow_dotted_order,
 | 
	
		
			
				|  |  |          )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          self.add_run(langsmith_run)
 | 
	
	
		
			
				|  | @@ -177,6 +191,7 @@ class LangSmithDataTrace(BaseTraceInstance):
 | 
	
		
			
				|  |  |              else:
 | 
	
		
			
				|  |  |                  run_type = LangSmithRunType.tool
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            node_dotted_order = generate_dotted_order(node_execution_id, created_at, workflow_dotted_order)
 | 
	
		
			
				|  |  |              langsmith_run = LangSmithRunModel(
 | 
	
		
			
				|  |  |                  total_tokens=node_total_tokens,
 | 
	
		
			
				|  |  |                  name=node_type,
 | 
	
	
		
			
				|  | @@ -191,6 +206,9 @@ class LangSmithDataTrace(BaseTraceInstance):
 | 
	
		
			
				|  |  |                  },
 | 
	
		
			
				|  |  |                  parent_run_id=trace_info.workflow_app_log_id or trace_info.workflow_run_id,
 | 
	
		
			
				|  |  |                  tags=["node_execution"],
 | 
	
		
			
				|  |  | +                id=node_execution_id,
 | 
	
		
			
				|  |  | +                trace_id=trace_id,
 | 
	
		
			
				|  |  | +                dotted_order=node_dotted_order,
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              self.add_run(langsmith_run)
 |