@@ -2159,27 +2159,35 @@ def _openai_stream(self, prompt, temperature=0.2, tools=None, output_json=None,
21592159
21602160 def execute (self , task , context = None ):
21612161 """Execute a task synchronously - backward compatibility method"""
2162- if hasattr (task , 'description' ):
2163- prompt = task .description
2164- elif isinstance (task , str ):
2165- prompt = task
2166- else :
2167- prompt = str (task )
2168- return self .chat (prompt )
2162+ try :
2163+ if hasattr (task , 'description' ):
2164+ prompt = task .description
2165+ elif isinstance (task , str ):
2166+ prompt = task
2167+ else :
2168+ prompt = str (task )
2169+ return self .chat (prompt )
2170+ finally :
2171+ # Ensure proper cleanup of telemetry system to prevent hanging
2172+ self ._cleanup_telemetry ()
21692173
21702174 async def aexecute (self , task , context = None ):
21712175 """Execute a task asynchronously - backward compatibility method"""
2172- if hasattr (task , 'description' ):
2173- prompt = task .description
2174- elif isinstance (task , str ):
2175- prompt = task
2176- else :
2177- prompt = str (task )
2178- # Extract task info if available
2179- task_name = getattr (task , 'name' , None )
2180- task_description = getattr (task , 'description' , None )
2181- task_id = getattr (task , 'id' , None )
2182- return await self .achat (prompt , task_name = task_name , task_description = task_description , task_id = task_id )
2176+ try :
2177+ if hasattr (task , 'description' ):
2178+ prompt = task .description
2179+ elif isinstance (task , str ):
2180+ prompt = task
2181+ else :
2182+ prompt = str (task )
2183+ # Extract task info if available
2184+ task_name = getattr (task , 'name' , None )
2185+ task_description = getattr (task , 'description' , None )
2186+ task_id = getattr (task , 'id' , None )
2187+ return await self .achat (prompt , task_name = task_name , task_description = task_description , task_id = task_id )
2188+ finally :
2189+ # Ensure proper cleanup of telemetry system to prevent hanging
2190+ self ._cleanup_telemetry ()
21832191
21842192 async def execute_tool_async (self , function_name : str , arguments : Dict [str , Any ]) -> Any :
21852193 """Async version of execute_tool"""
0 commit comments