@@ -270,6 +270,24 @@ def token_counter(self) -> BaseTokenCounter:
270270 self ._token_counter = OpenAITokenCounter (self .model_type )
271271 return self ._token_counter
272272
273+ def _log_and_trace (self ) -> None :
274+ r"""Update Langfuse trace with session metadata and log it."""
275+ agent_session_id = get_current_agent_session_id () or "no-session-id"
276+ model_type_str = str (self .model_type )
277+ metadata = {
278+ "source" : "camel" ,
279+ "agent_id" : agent_session_id ,
280+ "agent_type" : "camel_chat_agent" ,
281+ "model_type" : model_type_str ,
282+ }
283+ metadata = {k : str (v ) for k , v in metadata .items ()}
284+ update_langfuse_trace (
285+ session_id = agent_session_id ,
286+ metadata = metadata ,
287+ tags = ["CAMEL-AI" , model_type_str ],
288+ )
289+ logger .info (f"metadata: { metadata } " )
290+
273291 @observe ()
274292 def _run (
275293 self ,
@@ -299,26 +317,7 @@ def _run(
299317 or `ChatCompletionStreamManager[BaseModel]` for
300318 structured output streaming.
301319 """
302-
303- # Update Langfuse trace with current agent session and metadata
304- agent_session_id = get_current_agent_session_id ()
305- model_type_str = str (self .model_type )
306- if not agent_session_id :
307- agent_session_id = "no-session-id"
308- metadata = {
309- "source" : "camel" ,
310- "agent_id" : agent_session_id ,
311- "agent_type" : "camel_chat_agent" ,
312- "model_type" : model_type_str ,
313- }
314- metadata = {k : str (v ) for k , v in metadata .items ()}
315- if agent_session_id :
316- update_langfuse_trace (
317- session_id = agent_session_id ,
318- metadata = metadata ,
319- tags = ["CAMEL-AI" , model_type_str ],
320- )
321- logger .info (f"metadata: { metadata } " )
320+ self ._log_and_trace ()
322321
323322 messages = self ._adapt_messages_for_o1_models (messages )
324323 response_format = response_format or self .model_config_dict .get (
@@ -371,25 +370,7 @@ async def _arun(
371370 `AsyncChatCompletionStreamManager[BaseModel]` for
372371 structured output streaming.
373372 """
374-
375- # Update Langfuse trace with current agent session and metadata
376- agent_session_id = get_current_agent_session_id ()
377- model_type_str = str (self .model_type )
378- if not agent_session_id :
379- agent_session_id = "no-session-id"
380- metadata = {
381- "source" : "camel" ,
382- "agent_id" : agent_session_id ,
383- "agent_type" : "camel_chat_agent" ,
384- "model_type" : model_type_str ,
385- }
386- metadata = {k : str (v ) for k , v in metadata .items ()}
387- update_langfuse_trace (
388- session_id = agent_session_id ,
389- metadata = metadata ,
390- tags = ["CAMEL-AI" , model_type_str ],
391- )
392- logger .info (f"metadata: { metadata } " )
373+ self ._log_and_trace ()
393374
394375 messages = self ._adapt_messages_for_o1_models (messages )
395376 response_format = response_format or self .model_config_dict .get (
0 commit comments