From 8496bc0c0db201bc4df9480826a9644e64620fd7 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Thu, 3 Aug 2023 11:54:56 -0700 Subject: [PATCH] adding an async completion function --- litellm/__pycache__/main.cpython-311.pyc | Bin 12259 -> 12603 bytes litellm/__pycache__/utils.cpython-311.pyc | Bin 18717 -> 18717 bytes litellm/main.py | 9 ++++++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/litellm/__pycache__/main.cpython-311.pyc b/litellm/__pycache__/main.cpython-311.pyc index 114fba278281536c8e16b113fb94a8a9cdd2fe18..e6d09b6c95b164bb9ff01ade4680d64a21ff1388 100644 GIT binary patch delta 582 zcmYjLO=uHQ5T1F-Zrr35qxSMjQt3UA{*dot2N{A$06G8azUZ{rnD>hBzXDMev1@_0L`OBwkX^1McLO=5}%Y*Pf4}Y0~x#{H-kN8cuikF`B5pn2vXTO zFT=Z(6?mH7+qtoIN$L_)?2UudE<7wE*#%6AYuWSi9g_JCv7J34J41O_Oyowr4~Wuu qXxU> zk`wP~GD=P6V3b#uPUQm%i2<=h3VRCo8lGiL3=FG*7y^Le;*-4?y@9HyF@`hCr1DKJ zU=*Ls%f!Jf+`>5d0;4>)NDD)hTnb|_gQn_4+!Sm+7l8GC8qLzGn~%07O+m+W-In diff --git a/litellm/__pycache__/utils.cpython-311.pyc b/litellm/__pycache__/utils.cpython-311.pyc index 15aa08235568d057e8c3511cedd6681c99492c4e..8de0072fece54edb81619bd89d3781ac662668b1 100644 GIT binary patch delta 21 bcmbO`iE-{EMy}<&yj%=GF!8}gE@4jqL%#*S delta 21 bcmbO`iE-{EMy}<&yj%=G@bJV&E@4jqMJEOJ diff --git a/litellm/main.py b/litellm/main.py index c414fd5fc38..01075761be3 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -7,6 +7,7 @@ import traceback import litellm from litellm import client, logging, exception_type, timeout, success_callback, failure_callback import random +import asyncio from tenacity import ( retry, stop_after_attempt, @@ -69,7 +70,7 @@ def completion( temperature=1, top_p=1, n=1, stream=False, stop=None, max_tokens=float('inf'), presence_penalty=0, frequency_penalty=0, logit_bias={}, user="", # Optional liteLLM function params - *, api_key=None, force_timeout=60, azure=False, logger_fn=None, verbose=False + *, return_async=False, api_key=None, force_timeout=60, azure=False, logger_fn=None, verbose=False ): try: # check if user passed in any of the OpenAI optional params @@ -254,6 +255,12 @@ def completion( raise exception_type(model=model, original_exception=e) +async def acompletion(*args, **kwargs): + loop = asyncio.get_event_loop() + + # Call the synchronous function using run_in_executor() + return loop.run_in_executor(None, completion, *args, **kwargs) + ### EMBEDDING ENDPOINTS #################### @client @timeout(60) ## set timeouts, in case calls hang (e.g. Azure) - default is 60s, override with `force_timeout`