| @@ -139,7 +139,7 @@ class AliyunDataTrace(BaseTraceInstance): | |||
| start_time=convert_datetime_to_nanoseconds(trace_info.start_time), | |||
| end_time=convert_datetime_to_nanoseconds(trace_info.end_time), | |||
| attributes={ | |||
| GEN_AI_SESSION_ID: trace_info.metadata.get("conversation_id", ""), | |||
| GEN_AI_SESSION_ID: trace_info.metadata.get("conversation_id") or "", | |||
| GEN_AI_USER_ID: str(user_id), | |||
| GEN_AI_SPAN_KIND: GenAISpanKind.CHAIN.value, | |||
| GEN_AI_FRAMEWORK: "dify", | |||
| @@ -161,12 +161,12 @@ class AliyunDataTrace(BaseTraceInstance): | |||
| start_time=convert_datetime_to_nanoseconds(trace_info.start_time), | |||
| end_time=convert_datetime_to_nanoseconds(trace_info.end_time), | |||
| attributes={ | |||
| GEN_AI_SESSION_ID: trace_info.metadata.get("conversation_id", ""), | |||
| GEN_AI_SESSION_ID: trace_info.metadata.get("conversation_id") or "", | |||
| GEN_AI_USER_ID: str(user_id), | |||
| GEN_AI_SPAN_KIND: GenAISpanKind.LLM.value, | |||
| GEN_AI_FRAMEWORK: "dify", | |||
| GEN_AI_MODEL_NAME: trace_info.metadata.get("ls_model_name", ""), | |||
| GEN_AI_SYSTEM: trace_info.metadata.get("ls_provider", ""), | |||
| GEN_AI_MODEL_NAME: trace_info.metadata.get("ls_model_name") or "", | |||
| GEN_AI_SYSTEM: trace_info.metadata.get("ls_provider") or "", | |||
| GEN_AI_USAGE_INPUT_TOKENS: str(trace_info.message_tokens), | |||
| GEN_AI_USAGE_OUTPUT_TOKENS: str(trace_info.answer_tokens), | |||
| GEN_AI_USAGE_TOTAL_TOKENS: str(trace_info.total_tokens), | |||
| @@ -386,14 +386,14 @@ class AliyunDataTrace(BaseTraceInstance): | |||
| GEN_AI_SESSION_ID: trace_info.metadata.get("conversation_id") or "", | |||
| GEN_AI_SPAN_KIND: GenAISpanKind.LLM.value, | |||
| GEN_AI_FRAMEWORK: "dify", | |||
| GEN_AI_MODEL_NAME: process_data.get("model_name", ""), | |||
| GEN_AI_SYSTEM: process_data.get("model_provider", ""), | |||
| GEN_AI_MODEL_NAME: process_data.get("model_name") or "", | |||
| GEN_AI_SYSTEM: process_data.get("model_provider") or "", | |||
| GEN_AI_USAGE_INPUT_TOKENS: str(usage_data.get("prompt_tokens", 0)), | |||
| GEN_AI_USAGE_OUTPUT_TOKENS: str(usage_data.get("completion_tokens", 0)), | |||
| GEN_AI_USAGE_TOTAL_TOKENS: str(usage_data.get("total_tokens", 0)), | |||
| GEN_AI_PROMPT: json.dumps(process_data.get("prompts", []), ensure_ascii=False), | |||
| GEN_AI_COMPLETION: str(outputs.get("text", "")), | |||
| GEN_AI_RESPONSE_FINISH_REASON: outputs.get("finish_reason", ""), | |||
| GEN_AI_RESPONSE_FINISH_REASON: outputs.get("finish_reason") or "", | |||
| INPUT_VALUE: json.dumps(process_data.get("prompts", []), ensure_ascii=False), | |||
| OUTPUT_VALUE: str(outputs.get("text", "")), | |||
| }, | |||
| @@ -421,7 +421,7 @@ class AliyunDataTrace(BaseTraceInstance): | |||
| GEN_AI_USER_ID: str(user_id), | |||
| GEN_AI_SPAN_KIND: GenAISpanKind.CHAIN.value, | |||
| GEN_AI_FRAMEWORK: "dify", | |||
| INPUT_VALUE: trace_info.workflow_run_inputs.get("sys.query", ""), | |||
| INPUT_VALUE: trace_info.workflow_run_inputs.get("sys.query") or "", | |||
| OUTPUT_VALUE: json.dumps(trace_info.workflow_run_outputs, ensure_ascii=False), | |||
| }, | |||
| status=status, | |||
| @@ -461,8 +461,8 @@ class AliyunDataTrace(BaseTraceInstance): | |||
| attributes={ | |||
| GEN_AI_SPAN_KIND: GenAISpanKind.LLM.value, | |||
| GEN_AI_FRAMEWORK: "dify", | |||
| GEN_AI_MODEL_NAME: trace_info.metadata.get("ls_model_name", ""), | |||
| GEN_AI_SYSTEM: trace_info.metadata.get("ls_provider", ""), | |||
| GEN_AI_MODEL_NAME: trace_info.metadata.get("ls_model_name") or "", | |||
| GEN_AI_SYSTEM: trace_info.metadata.get("ls_provider") or "", | |||
| GEN_AI_PROMPT: json.dumps(trace_info.inputs, ensure_ascii=False), | |||
| GEN_AI_COMPLETION: json.dumps(trace_info.suggested_question, ensure_ascii=False), | |||
| INPUT_VALUE: json.dumps(trace_info.inputs, ensure_ascii=False), | |||