This commit is contained in:
Krish Dholakia 2025-04-24 00:54:35 -07:00 committed by GitHub
commit eafcfad35b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -24,6 +24,7 @@ from copy import deepcopy
from functools import partial from functools import partial
from typing import ( from typing import (
Any, Any,
Awaitable,
Callable, Callable,
Coroutine, Coroutine,
Dict, Dict,
@ -461,19 +462,23 @@ async def acompletion(
try: try:
# Use a partial function to pass your keyword arguments # Use a partial function to pass your keyword arguments
func = partial(completion, **completion_kwargs, **kwargs) # func = partial(completion, **completion_kwargs, **kwargs)
# Add the context to the function # # Add the context to the function
ctx = contextvars.copy_context() # ctx = contextvars.copy_context()
func_with_context = partial(ctx.run, func) # func_with_context = partial(ctx.run, func)
init_response = await loop.run_in_executor(None, func_with_context) init_response = await cast(
Awaitable[Union[dict, ModelResponse, CustomStreamWrapper]],
completion(**completion_kwargs, **kwargs),
)
if isinstance(init_response, dict) or isinstance( if isinstance(init_response, dict) or isinstance(
init_response, ModelResponse init_response, ModelResponse
): ## CACHING SCENARIO ): ## CACHING SCENARIO
if isinstance(init_response, dict): if isinstance(init_response, dict):
response = ModelResponse(**init_response) response = ModelResponse(**init_response)
response = init_response else:
response = init_response
elif asyncio.iscoroutine(init_response): elif asyncio.iscoroutine(init_response):
response = await init_response response = await init_response
else: else: