@@ -47,9 +47,11 @@ def __init__(self, include_prompts=True, tiktoken_encoding_name=None):
4747 def setup_once ():
4848 # type: () -> None
4949 Completions .create = _wrap_chat_completion_create (Completions .create )
50- AsyncCompletions .create = _wrap_chat_completion_create (AsyncCompletions .create )
50+ AsyncCompletions .create = _wrap_async_chat_completion_create (
51+ AsyncCompletions .create
52+ )
5153 Embeddings .create = _wrap_embeddings_create (Embeddings .create )
52- AsyncEmbeddings .create = _wrap_embeddings_create (AsyncEmbeddings .create )
54+ AsyncEmbeddings .create = _wrap_async_embeddings_create (AsyncEmbeddings .create )
5355
5456 def count_tokens (self , s ):
5557 # type: (OpenAIIntegration, str) -> int
@@ -212,8 +214,17 @@ def _wrap_chat_completion_create(f):
212214 def _execute_sync (f , * args , ** kwargs ):
213215 # type: (Any, *Any, **Any) -> Any
214216 gen = _new_chat_completion_common (f , * args , ** kwargs )
215- f , args , kwargs = next (gen )
216- return gen .send (f (* args , ** kwargs ))
217+
218+ try :
219+ f , args , kwargs = next (gen )
220+ except StopIteration as e :
221+ return e .value
222+
223+ try :
224+ result = f (* args , ** kwargs )
225+ return gen .send (result )
226+ except StopIteration as e :
227+ return e .value
217228
218229 @wraps (f )
219230 @ensure_integration_enabled (OpenAIIntegration , f )
@@ -230,8 +241,17 @@ def _wrap_async_chat_completion_create(f):
230241 async def _execute_async (f , * args , ** kwargs ):
231242 # type: (Any, *Any, **Any) -> Any
232243 gen = _new_chat_completion_common (f , * args , ** kwargs )
233- f , args , kwargs = next (gen )
234- return gen .send (await f (* args , ** kwargs ))
244+
245+ try :
246+ f , args , kwargs = next (gen )
247+ except StopIteration as e :
248+ return await e .value
249+
250+ try :
251+ result = await f (* args , ** kwargs )
252+ return gen .send (result )
253+ except StopIteration as e :
254+ return e .value
235255
236256 @wraps (f )
237257 @ensure_integration_enabled (OpenAIIntegration , f )
@@ -295,8 +315,17 @@ def _wrap_embeddings_create(f):
295315 def _execute_sync (f , * args , ** kwargs ):
296316 # type: (Any, *Any, **Any) -> Any
297317 gen = _new_embeddings_create_common (f , * args , ** kwargs )
298- f , args , kwargs = next (gen )
299- return gen .send (f (* args , ** kwargs ))
318+
319+ try :
320+ f , args , kwargs = next (gen )
321+ except StopIteration as e :
322+ return e .value
323+
324+ try :
325+ result = f (* args , ** kwargs )
326+ return gen .send (result )
327+ except StopIteration as e :
328+ return e .value
300329
301330 @wraps (f )
302331 @ensure_integration_enabled (OpenAIIntegration , f )
@@ -312,8 +341,17 @@ def _wrap_async_embeddings_create(f):
312341 async def _execute_async (f , * args , ** kwargs ):
313342 # type: (Any, *Any, **Any) -> Any
314343 gen = _new_embeddings_create_common (f , * args , ** kwargs )
315- f , args , kwargs = next (gen )
316- return gen .send (await f (* args , ** kwargs ))
344+
345+ try :
346+ f , args , kwargs = next (gen )
347+ except StopIteration as e :
348+ return await e .value
349+
350+ try :
351+ result = await f (* args , ** kwargs )
352+ return gen .send (result )
353+ except StopIteration as e :
354+ return e .value
317355
318356 @wraps (f )
319357 @ensure_integration_enabled (OpenAIIntegration , f )
0 commit comments