Skip to content

Commit 7f822d9

Browse files
committed
Update optillm.py
1 parent 8438376 commit 7f822d9

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

optillm.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -346,12 +346,32 @@ def execute_single_approach(approach, system_prompt, initial_query, client, mode
346346
import inspect
347347
sig = inspect.signature(plugin_func)
348348

349-
if 'request_config' in sig.parameters:
350-
# Plugin supports request_config
351-
return plugin_func(system_prompt, initial_query, client, model, request_config=request_config)
349+
# Check if the plugin function is async
350+
is_async = inspect.iscoroutinefunction(plugin_func)
351+
352+
if is_async:
353+
# For async functions, we need to run them in an event loop
354+
import asyncio
355+
loop = asyncio.new_event_loop()
356+
asyncio.set_event_loop(loop)
357+
try:
358+
if 'request_config' in sig.parameters:
359+
# Plugin supports request_config
360+
result = loop.run_until_complete(plugin_func(system_prompt, initial_query, client, model, request_config=request_config))
361+
else:
362+
# Legacy plugin without request_config support
363+
result = loop.run_until_complete(plugin_func(system_prompt, initial_query, client, model))
364+
return result
365+
finally:
366+
loop.close()
352367
else:
353-
# Legacy plugin without request_config support
354-
return plugin_func(system_prompt, initial_query, client, model)
368+
# For synchronous functions, call directly
369+
if 'request_config' in sig.parameters:
370+
# Plugin supports request_config
371+
return plugin_func(system_prompt, initial_query, client, model, request_config=request_config)
372+
else:
373+
# Legacy plugin without request_config support
374+
return plugin_func(system_prompt, initial_query, client, model)
355375
else:
356376
raise ValueError(f"Unknown approach: {approach}")
357377

0 commit comments

Comments
 (0)