4
4
from datetime import datetime , timedelta
5
5
from typing import Optional
6
6
7
- from langfuse import Langfuse
7
+ from langfuse import Langfuse # type: ignore
8
8
9
9
from core .ops .base_trace_instance import BaseTraceInstance
10
10
from core .ops .entities .config_entity import LangfuseConfig
@@ -82,8 +82,6 @@ def workflow_trace(self, trace_info: WorkflowTraceInfo):
82
82
metadata = metadata ,
83
83
session_id = trace_info .conversation_id ,
84
84
tags = ["message" , "workflow" ],
85
- created_at = trace_info .start_time ,
86
- updated_at = trace_info .end_time ,
87
85
)
88
86
self .add_trace (langfuse_trace_data = trace_data )
89
87
workflow_span_data = LangfuseSpan (
@@ -242,11 +240,13 @@ def message_trace(self, trace_info: MessageTraceInfo, **kwargs):
242
240
file_list = trace_info .file_list
243
241
metadata = trace_info .metadata
244
242
message_data = trace_info .message_data
243
+ if message_data is None :
244
+ return
245
245
message_id = message_data .id
246
246
247
247
user_id = message_data .from_account_id
248
248
if message_data .from_end_user_id :
249
- end_user_data : EndUser = (
249
+ end_user_data : Optional [ EndUser ] = (
250
250
db .session .query (EndUser ).filter (EndUser .id == message_data .from_end_user_id ).first ()
251
251
)
252
252
if end_user_data is not None :
@@ -303,6 +303,8 @@ def message_trace(self, trace_info: MessageTraceInfo, **kwargs):
303
303
self .add_generation (langfuse_generation_data )
304
304
305
305
def moderation_trace (self , trace_info : ModerationTraceInfo ):
306
+ if trace_info .message_data is None :
307
+ return
306
308
span_data = LangfuseSpan (
307
309
name = TraceTaskName .MODERATION_TRACE .value ,
308
310
input = trace_info .inputs ,
@@ -322,9 +324,11 @@ def moderation_trace(self, trace_info: ModerationTraceInfo):
322
324
323
325
def suggested_question_trace (self , trace_info : SuggestedQuestionTraceInfo ):
324
326
message_data = trace_info .message_data
327
+ if message_data is None :
328
+ return
325
329
generation_usage = GenerationUsage (
326
330
total = len (str (trace_info .suggested_question )),
327
- input = len (trace_info .inputs ),
331
+ input = len (trace_info .inputs ) if trace_info . inputs else 0 ,
328
332
output = len (trace_info .suggested_question ),
329
333
unit = UnitEnum .CHARACTERS ,
330
334
)
@@ -345,6 +349,8 @@ def suggested_question_trace(self, trace_info: SuggestedQuestionTraceInfo):
345
349
self .add_generation (langfuse_generation_data = generation_data )
346
350
347
351
def dataset_retrieval_trace (self , trace_info : DatasetRetrievalTraceInfo ):
352
+ if trace_info .message_data is None :
353
+ return
348
354
dataset_retrieval_span_data = LangfuseSpan (
349
355
name = TraceTaskName .DATASET_RETRIEVAL_TRACE .value ,
350
356
input = trace_info .inputs ,
0 commit comments