1414from datetime import datetime
1515from typing import Any , Dict , List , Literal , Optional
1616
17+ from langfuse ._utils .serializer import EventSerializer
1718from langfuse .model import PromptClient
19+ from langfuse .types import MapValue , SpanLevel
1820
19- from ..serializer import EventSerializer
20- from ..types import MapValue , SpanLevel
2121
22-
23- class LangfuseSpanAttributes :
22+ class LangfuseOtelSpanAttributes :
2423 # Langfuse-Trace attributes
2524 TRACE_NAME = "langfuse.trace.name"
2625 TRACE_USER_ID = "user.id"
@@ -71,15 +70,15 @@ def create_trace_attributes(
7170 public : Optional [bool ] = None ,
7271):
7372 attributes = {
74- LangfuseSpanAttributes .TRACE_NAME : name ,
75- LangfuseSpanAttributes .TRACE_USER_ID : user_id ,
76- LangfuseSpanAttributes .TRACE_SESSION_ID : session_id ,
77- LangfuseSpanAttributes .VERSION : version ,
78- LangfuseSpanAttributes .RELEASE : release ,
79- LangfuseSpanAttributes .TRACE_INPUT : _serialize (input ),
80- LangfuseSpanAttributes .TRACE_OUTPUT : _serialize (output ),
81- LangfuseSpanAttributes .TRACE_TAGS : tags ,
82- LangfuseSpanAttributes .TRACE_PUBLIC : public ,
73+ LangfuseOtelSpanAttributes .TRACE_NAME : name ,
74+ LangfuseOtelSpanAttributes .TRACE_USER_ID : user_id ,
75+ LangfuseOtelSpanAttributes .TRACE_SESSION_ID : session_id ,
76+ LangfuseOtelSpanAttributes .VERSION : version ,
77+ LangfuseOtelSpanAttributes .RELEASE : release ,
78+ LangfuseOtelSpanAttributes .TRACE_INPUT : _serialize (input ),
79+ LangfuseOtelSpanAttributes .TRACE_OUTPUT : _serialize (output ),
80+ LangfuseOtelSpanAttributes .TRACE_TAGS : tags ,
81+ LangfuseOtelSpanAttributes .TRACE_PUBLIC : public ,
8382 ** _flatten_and_serialize_metadata (metadata , "trace" ),
8483 }
8584
@@ -96,12 +95,12 @@ def create_span_attributes(
9695 version : Optional [str ] = None ,
9796):
9897 attributes = {
99- LangfuseSpanAttributes .OBSERVATION_TYPE : "span" ,
100- LangfuseSpanAttributes .OBSERVATION_LEVEL : level ,
101- LangfuseSpanAttributes .OBSERVATION_STATUS_MESSAGE : status_message ,
102- LangfuseSpanAttributes .VERSION : version ,
103- LangfuseSpanAttributes .OBSERVATION_INPUT : _serialize (input ),
104- LangfuseSpanAttributes .OBSERVATION_OUTPUT : _serialize (output ),
98+ LangfuseOtelSpanAttributes .OBSERVATION_TYPE : "span" ,
99+ LangfuseOtelSpanAttributes .OBSERVATION_LEVEL : level ,
100+ LangfuseOtelSpanAttributes .OBSERVATION_STATUS_MESSAGE : status_message ,
101+ LangfuseOtelSpanAttributes .VERSION : version ,
102+ LangfuseOtelSpanAttributes .OBSERVATION_INPUT : _serialize (input ),
103+ LangfuseOtelSpanAttributes .OBSERVATION_OUTPUT : _serialize (output ),
105104 ** _flatten_and_serialize_metadata (metadata , "observation" ),
106105 }
107106
@@ -125,25 +124,25 @@ def create_generation_attributes(
125124 prompt : Optional [PromptClient ] = None ,
126125):
127126 attributes = {
128- LangfuseSpanAttributes .OBSERVATION_TYPE : "generation" ,
129- LangfuseSpanAttributes .OBSERVATION_LEVEL : level ,
130- LangfuseSpanAttributes .OBSERVATION_STATUS_MESSAGE : status_message ,
131- LangfuseSpanAttributes .VERSION : version ,
132- LangfuseSpanAttributes .OBSERVATION_INPUT : _serialize (input ),
133- LangfuseSpanAttributes .OBSERVATION_OUTPUT : _serialize (output ),
134- LangfuseSpanAttributes .OBSERVATION_MODEL : model ,
135- LangfuseSpanAttributes .OBSERVATION_PROMPT_NAME : prompt .name
127+ LangfuseOtelSpanAttributes .OBSERVATION_TYPE : "generation" ,
128+ LangfuseOtelSpanAttributes .OBSERVATION_LEVEL : level ,
129+ LangfuseOtelSpanAttributes .OBSERVATION_STATUS_MESSAGE : status_message ,
130+ LangfuseOtelSpanAttributes .VERSION : version ,
131+ LangfuseOtelSpanAttributes .OBSERVATION_INPUT : _serialize (input ),
132+ LangfuseOtelSpanAttributes .OBSERVATION_OUTPUT : _serialize (output ),
133+ LangfuseOtelSpanAttributes .OBSERVATION_MODEL : model ,
134+ LangfuseOtelSpanAttributes .OBSERVATION_PROMPT_NAME : prompt .name
136135 if prompt and not prompt .is_fallback
137136 else None ,
138- LangfuseSpanAttributes .OBSERVATION_PROMPT_VERSION : prompt .version
137+ LangfuseOtelSpanAttributes .OBSERVATION_PROMPT_VERSION : prompt .version
139138 if prompt and not prompt .is_fallback
140139 else None ,
141- LangfuseSpanAttributes .OBSERVATION_USAGE_DETAILS : _serialize (usage_details ),
142- LangfuseSpanAttributes .OBSERVATION_COST_DETAILS : _serialize (cost_details ),
143- LangfuseSpanAttributes .OBSERVATION_COMPLETION_START_TIME : _serialize (
140+ LangfuseOtelSpanAttributes .OBSERVATION_USAGE_DETAILS : _serialize (usage_details ),
141+ LangfuseOtelSpanAttributes .OBSERVATION_COST_DETAILS : _serialize (cost_details ),
142+ LangfuseOtelSpanAttributes .OBSERVATION_COMPLETION_START_TIME : _serialize (
144143 completion_start_time
145144 ),
146- LangfuseSpanAttributes .OBSERVATION_MODEL_PARAMETERS : _serialize (
145+ LangfuseOtelSpanAttributes .OBSERVATION_MODEL_PARAMETERS : _serialize (
147146 model_parameters
148147 ),
149148 ** _flatten_and_serialize_metadata (metadata , "observation" ),
@@ -160,9 +159,9 @@ def _flatten_and_serialize_metadata(
160159 metadata : Any , type : Literal ["observation" , "trace" ]
161160):
162161 prefix = (
163- LangfuseSpanAttributes .OBSERVATION_METADATA
162+ LangfuseOtelSpanAttributes .OBSERVATION_METADATA
164163 if type == "observation"
165- else LangfuseSpanAttributes .TRACE_METADATA
164+ else LangfuseOtelSpanAttributes .TRACE_METADATA
166165 )
167166
168167 metadata_attributes = {}
0 commit comments