33from langchain_core .messages import AIMessage , HumanMessage
44from langchain_core .runnables import RunnableConfig
55import os
6- import base64
76import logging
87from langgraph .prebuilt import create_react_agent
98from langfuse import get_client , Langfuse
@@ -84,6 +83,14 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
8483 request .agent_type ,
8584 )
8685
86+ # Use trace_id from request if provided, otherwise create one
87+ langfuse = None
88+ predefined_trace_id = getattr (request , 'trace_id' , None )
89+ if self ._langfuse_config .get ("enabled" ):
90+ langfuse = get_client ()
91+ if not predefined_trace_id :
92+ predefined_trace_id = Langfuse .create_trace_id (seed = request .session_id )
93+
8794 # Check input guardrails if enabled
8895 if self ._guardrail_service and request .messages :
8996 last_user_message = None
@@ -128,8 +135,6 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
128135 os .environ ["LANGFUSE_PUBLIC_KEY" ] = self ._langfuse_config .get ("public_key" )
129136 os .environ ["LANGFUSE_HOST" ] = self ._langfuse_config .get ("host" )
130137
131- langfuse = get_client ()
132- predefined_trace_id = Langfuse .create_trace_id (seed = request .session_id )
133138 trace_id = predefined_trace_id
134139
135140 langfuse_handler = CallbackHandler ()
@@ -145,7 +150,7 @@ async def process_request(self, request: AgentRequest) -> AgentResponse:
145150
146151 config = RunnableConfig (
147152 configurable = {
148- "thread_id" : f"{ request .user_id } _ { request . session_id } " ,
153+ "thread_id" : f"{ request .session_id } " ,
149154 "user_id" : request .user_id ,
150155 },
151156 callbacks = [langfuse_handler ],
0 commit comments