From 123de534756f601414e734022302f340aa9f8d32 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Thu, 3 Aug 2023 14:06:32 -0700 Subject: [PATCH] fixed acompletion import bug --- build/lib/litellm/__init__.py | 12 +++++++-- build/lib/litellm/main.py | 27 ++++++++++++++++--- build/lib/litellm/timeout.py | 13 +++++---- dist/litellm-0.1.226-py3-none-any.whl | Bin 11935 -> 0 bytes dist/litellm-0.1.226.tar.gz | Bin 11458 -> 0 bytes dist/litellm-0.1.229-py3-none-any.whl | Bin 0 -> 12406 bytes dist/litellm-0.1.229.tar.gz | Bin 0 -> 11899 bytes dist/litellm-0.1.2291-py3-none-any.whl | Bin 0 -> 12414 bytes dist/litellm-0.1.2291.tar.gz | Bin 0 -> 11894 bytes litellm.egg-info/PKG-INFO | 2 +- litellm.egg-info/requires.txt | 1 + litellm/__init__.py | 1 - litellm/__pycache__/__init__.cpython-311.pyc | Bin 1080 -> 0 bytes litellm/__pycache__/main.cpython-311.pyc | Bin 12875 -> 0 bytes litellm/__pycache__/timeout.cpython-311.pyc | Bin 5167 -> 0 bytes litellm/__pycache__/utils.cpython-311.pyc | Bin 18717 -> 0 bytes litellm/main.py | 19 +++++++------ setup.py | 2 +- 18 files changed, 53 insertions(+), 24 deletions(-) delete mode 100644 dist/litellm-0.1.226-py3-none-any.whl delete mode 100644 dist/litellm-0.1.226.tar.gz create mode 100644 dist/litellm-0.1.229-py3-none-any.whl create mode 100644 dist/litellm-0.1.229.tar.gz create mode 100644 dist/litellm-0.1.2291-py3-none-any.whl create mode 100644 dist/litellm-0.1.2291.tar.gz delete mode 100644 litellm/__pycache__/__init__.cpython-311.pyc delete mode 100644 litellm/__pycache__/main.cpython-311.pyc delete mode 100644 litellm/__pycache__/timeout.cpython-311.pyc delete mode 100644 litellm/__pycache__/utils.cpython-311.pyc diff --git a/build/lib/litellm/__init__.py b/build/lib/litellm/__init__.py index b0c53be1c..191a8ed26 100644 --- a/build/lib/litellm/__init__.py +++ b/build/lib/litellm/__init__.py @@ -3,13 +3,22 @@ failure_callback = [] set_verbose=False telemetry=True max_tokens = 256 # OpenAI Defaults +retry = True # control tenacity retries. ####### PROXY PARAMS ################### configurable params if you use proxy models like Helicone api_base = None headers = None ####### COMPLETION MODELS ################### open_ai_chat_completion_models = [ + "gpt-4", + "gpt-4-0613", + "gpt-4-32k", + "gpt-4-32k-0613", + ################# + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-3.5-turbo-0613", + "gpt-3.5-turbo-16k-0613", 'gpt-3.5-turbo', - 'gpt-4', 'gpt-3.5-turbo-16k-0613', 'gpt-3.5-turbo-16k' ] @@ -32,7 +41,6 @@ model_list = open_ai_chat_completion_models + open_ai_text_completion_models + c open_ai_embedding_models = [ 'text-embedding-ada-002' ] - from .timeout import timeout from .utils import client, logging, exception_type # Import all the symbols from main.py from .main import * # Import all the symbols from main.py diff --git a/build/lib/litellm/main.py b/build/lib/litellm/main.py index 898f40ae4..f35af8013 100644 --- a/build/lib/litellm/main.py +++ b/build/lib/litellm/main.py @@ -2,11 +2,18 @@ import os, openai, cohere, replicate, sys from typing import Any from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPT import traceback +from functools import partial import dotenv 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, + wait_random_exponential, +) # for exponential backoff ####### ENVIRONMENT VARIABLES ################### dotenv.load_dotenv() # Loading env variables using dotenv @@ -24,6 +31,7 @@ def get_optional_params( frequency_penalty = 0, logit_bias = {}, user = "", + deployment_id = None ): optional_params = {} if functions != []: @@ -50,27 +58,39 @@ def get_optional_params( optional_params["logit_bias"] = logit_bias if user != "": optional_params["user"] = user + if deployment_id != None: + optional_params["deployment_id"] = user return optional_params ####### COMPLETION ENDPOINTS ################ ############################################# +async def acompletion(*args, **kwargs): + loop = asyncio.get_event_loop() + + # Use a partial function to pass your keyword arguments + func = partial(completion, *args, **kwargs) + + # Call the synchronous function using run_in_executor + return await loop.run_in_executor(None, func) + @client +@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(2), reraise=True, retry_error_callback=lambda retry_state: setattr(retry_state.outcome, 'retry_variable', litellm.retry)) # retry call, turn this off by setting `litellm.retry = False` @timeout(60) ## set timeouts, in case calls hang (e.g. Azure) - default is 60s, override with `force_timeout` def completion( model, messages, # required params # Optional OpenAI params: see https://platform.openai.com/docs/api-reference/chat/create functions=[], function_call="", # optional params temperature=1, top_p=1, n=1, stream=False, stop=None, max_tokens=float('inf'), - presence_penalty=0, frequency_penalty=0, logit_bias={}, user="", + presence_penalty=0, frequency_penalty=0, logit_bias={}, user="", deployment_id=None, # 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 optional_params = get_optional_params( functions=functions, function_call=function_call, temperature=temperature, top_p=top_p, n=n, stream=stream, stop=stop, max_tokens=max_tokens, - presence_penalty=presence_penalty, frequency_penalty=frequency_penalty, logit_bias=logit_bias, user=user + presence_penalty=presence_penalty, frequency_penalty=frequency_penalty, logit_bias=logit_bias, user=user, deployment_id=deployment_id ) if azure == True: # azure configs @@ -247,7 +267,6 @@ def completion( ## Map to OpenAI Exception raise exception_type(model=model, original_exception=e) - ### EMBEDDING ENDPOINTS #################### @client @timeout(60) ## set timeouts, in case calls hang (e.g. Azure) - default is 60s, override with `force_timeout` diff --git a/build/lib/litellm/timeout.py b/build/lib/litellm/timeout.py index 8cbe650ed..37bbbffc1 100644 --- a/build/lib/litellm/timeout.py +++ b/build/lib/litellm/timeout.py @@ -37,26 +37,29 @@ def timeout( thread = _LoopWrapper() thread.start() future = asyncio.run_coroutine_threadsafe(async_func(), thread.loop) + local_timeout_duration = timeout_duration + if "force_timeout" in kwargs: + local_timeout_duration = kwargs["force_timeout"] try: - local_timeout_duration = timeout_duration - if "force_timeout" in kwargs: - local_timeout_duration = kwargs["force_timeout"] result = future.result(timeout=local_timeout_duration) except futures.TimeoutError: thread.stop_loop() - raise exception_to_raise() + raise exception_to_raise(f"A timeout error occurred. The function call took longer than {local_timeout_duration} second(s).") thread.stop_loop() return result @wraps(func) async def async_wrapper(*args, **kwargs): + local_timeout_duration = timeout_duration + if "force_timeout" in kwargs: + local_timeout_duration = kwargs["force_timeout"] try: value = await asyncio.wait_for( func(*args, **kwargs), timeout=timeout_duration ) return value except asyncio.TimeoutError: - raise exception_to_raise() + raise exception_to_raise(f"A timeout error occurred. The function call took longer than {local_timeout_duration} second(s).") if iscoroutinefunction(func): return async_wrapper diff --git a/dist/litellm-0.1.226-py3-none-any.whl b/dist/litellm-0.1.226-py3-none-any.whl deleted file mode 100644 index 8910c20fb6edf757ce48df48c25593b7a30715a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11935 zcmaKy1yEdDv$k=!;O_1W5;S;l8yteWyF>8c?gV!WZowrugS)#!@ZkKMd+&FX|J1o> zrglx$uIguc@3q#ux>vWN3?vjL7#J8FSeF;1x*mfD>^L|W*ft~>7{=ROYYS%+Yik=8 zJv|Fs3uiq&W_yn$X94ZboxIEH=|&+%p)+Fr7tJS!YeL3tJP2XmWU+o zezsEkVaC&*c7QT?_D98!8OR17#d3gj;R3Rov|50dmybW}J`NJOFxuTGQ-&oxCjre=m?cYGntLhi6p zTW;;!cC7m{YueH5)f6@O_kaK8==Y$I4V25g8`^9EdbwR!uc7G*B z{wFdaD$S!iD_*o<7w_bBU((@ujTPy8_l(Ut4w3%A?&i&pJ=mDGZaM_U9O;Z)02Yne zZh@J+&7MVI`1~$YZuKxNaYJ-nhNuNU>_>iU&J_v@r70(UpW0$(ZvYTSw`n!_crI^b z7rVSF;@Qu=4j?8L7JjNVtiDi*1Z zAyF5FOv0ZrYAXa z)}dMK#pd32)_6bL*v;!2TLgU;AY@?7yQhlnLYc{hv(veLE|;hK6wk4^g}sl;#Yu<~ zl96WivEY#0>=QY)XXq|vZ+!?l7fr@B8jXiE24gOrt+-kLBE-;ghUt80x>E1ST&x52 ze#R~bofl(n$Oms;;^^&!>7k1uO;qF<>pCMIssZ@#JwrGWsQ{_kuSu(PNtALprn-+C zrgA`Oz@jK!YX=OcSE#p)Bs1NJp(5cN*+RB>tinkc*MG!+eWA85dV z%Oqkf`aZ|}>HfeO@FBY2?BMGB+WgKH(?^UCq%csCpAF!Tl51^^aGik5n#Jy6Z|Tn1 zDo=!~#|$@3Sxbw@YoP|1YPn_f^X$2kwGcsN6FHx=I|>Y5A4D$#WH428&@%O|={edN zb71{*WoifE2hi1!W*}vZJu*^aG#4@BG1~n0*X`*;^V$0NP1C3t&zm%AS;QDv16@YW zWYR&pXX$4d7{awdKZZd-4@B8VH7WU*_MpmTQyh)>;k$4{s;jd#w3Gn**5p-iMa$&^ z9)DT0wd6KMFTg}E0pwU<086uCOKWi%T3ras%nt%+i?wi8IW~xA5Uc|%L!n2cR`M@v zDvOA3DY+V>=Cgq9+8ZMPC>u}L=rO6SNE?+^?tQpLU!qq9-iRY#ye5dB##8AgF9|qI zrlodoPRaFzvU662skT2yek^v3gWROU@V(o1C10MiR-n^2cg3S{CSECmfh3BMi2hhd zt>&Pn3|uzD&)3AIL*Cyn#BVMC;KUpN!|Lq@;K9%41g}=6sd#q&%sIGvKMUdf3-m#M z7X@96ck~OCID4YLaBMiG{~j({oy^0$562U#*bipUC@}5|KvF2ewW(fVJwXpoCi->K zFi%Sc8_LIe2o}y!YU{XSF{as^;{Z9SB~e64l)H4lP@)1xF`l#sjn+VF6n`51=FPZM zLcd`sP~m8wz8#A~O%M-`PlDDX>*87>l_Bc>H758>JP+YB!dnb zXg8!J!X2SiYfCw*76VLQlX?OsX8ow7y3GQq75fXuK8E@Q3Ux1s03#feZ@S}G_3y?N zik0~JdBWFG1V47$I`P`G=6Z8|V!w5Aet73sW5dnOh2+B2Kv(&_-Lg~Sl~xRrH=6qA zI!V;Jb^w!SD}J{~gb~LGnY%OxJ6S>JGa9{CmNV);YDj+E={c91{5j_Bk422q88SzE zR}-w(OHseZUI@cSn4OkgxVu=S8EUmn=@?~gDwn1JguvM@CkUC++ICM>M3v6vZyGi} z-xDP&jAwbdD)MqaO`35~l$M1jDh8|BW=fahPHPlKH;)?Bm|_Obb{k775Xt$ExOZ*Q zw0;dtP8${iLSzAe)HIX0x~#7Sxm#AP?Y=fx6kjvW;d{0nmVEV`B`;53Cu`_<9Z?7< zXOEO7UUBj@f30Y3@%ybX<}!!OLzeVs_|M4mY3uM)_m4)76B;lvKfwKB2|)RQQ$&Hq!Q|D(>qHE0gH?yI29UW|2Q0^ijBu9{IBEs6@*T=@glnv`wewC z_DF@{Pkqf9LN*lamkrN5{n7HuZC!%%l>AT@*KWw>=g!hL(%nz^x*E@r1^&f9p0|bI z*VI7RI3FhWM=Bx@vY>D3HNW)H&9JJ)PbU1OuM=? zwl)6(smp~TYxYr1!U(&t#VDKi%~ZD5duixexmev-?dn@_hJQe^kRiScgH|gPc}{Kp zj>qtkhowr$#=$Z@2~q4Qqn3M61=Ym(V2e}g!cqFROiZ&8zzRH{ zwxDWV9wiTTeF~lj_)~p&5kIlNB(vn1l))Wj?|BU2O>Nm#@eOF=w0p#W;fpKXwwV$) zA)3ZlK4sw{fHX2OFHx9|YeGUFX(3m!{@LQ^P{v80bM+k2!CPgXP!eJtN^tf4XT|4^ zgV_LcAN~@dr4u4lK^A4wN;`UtjBxT8M_J*xac-UXP^W&fq5-7UjYN5$Ag*_1;)!Xu zoGr?jI0v^7)7sJZ1aRRiox*6?q0JFwii+zmtnvnN+)S?=Qywczo$Ll4uUhb7n(u;U z*v3@9TU3?gg@>E|EPHh+JvyGlRu? z9M06g8m{(~(P+oGUg_kv^g0_UBXK^xzE+pEv70+i5IHnE<>{s;;?Zs`D+grz4grgP zSTb!G_rFJw0}Be?(UDjYAbG0w-OMq3zHr!dUH7$rLXzkjx4*v#j6AZqq~uyNWezZ<%cv+Zf*xh<<{$MY2+hHM-E;xdEA*l zG9rW16Pu9ni!^X&qO?hKH=)cejfS?AQd8*jv{X;4=DAp!&-|1ALEQa&L~bLw0CqY! zwpZfQui0nJ589!(kG^* zTYRt3zr(o5LR{$oS>9ec2vOw zu*RqmKP6jk-3Sy<8I^7Y|7xfly`^MaScBMdF?>+Z@&RwU)nR{Vn9S&|U3?L6VeJ)) zIAjhp1DrKyqGDZA_Ec4ESP+(X)dttO7q0i8Dmvgh@T3q}>3N@j0duY%2uTq1zDIgD zR+eIImf6sr?e13`T|f{U#yL!U#5#rjTAA`f7MrlkwV#}1D?H~GE$nz=tb|N7aJ-Fu zyG5EUN`RZ2t}}#2^tBns%c>s!Y~{N{F2^}cR)B)8GM~w)hL3{HWwP-UrN|iJyHUg? zfh4>ozYM%O&v+0xopcVNTnYg@e1&Y$(7bJ|8nKg4ip#ioutPAn9|h0R+^qe&Kea0r zBsbnObFL6$KjWYqu)FxNl{UZx(am06OVQJL$%x)1toz^$J*#SbVQ9i@pfb%FiG$1_ zj&hvm-KP)0neR$C(@`%jq`XFhbnRWQ32?@b?~=|$oZvqzLC2{c?yJ*3ge!8?)! z8wFyUaECH7EpEC>-dwMItK|$xy|O z<<5<3)tb53qD;JwN9P#qP|&n^aCw@;r%Gxo6W+=4hQmUqln}x86emX8T(s-%&EN&z zlU8_GoUMwIi1s9Rj)&WB7=HEG%q`(;S@R_cYJzpzf`PW!yH>*nno{x=vaE3=Hj$1?b{zVeRy`{Q3y2oR+yRTYaIWeOVW2>zz(h zJmoVTFsbImY6NPh)1t?Ffs~YFMUqLR-38C+K#h_NkX)0oG{<^QE6A! zwvjrhOC@KZkmTBoO|eHv0^LH0OwyfiJGLQJHU-3$q% ze;c)UM+UMtVLL3$PmDg1#n5lpvzT#he{K(FFc!=WFS&PllW1o zk>B(XvckEIx$46cy275_oZnhW&)wx}>ttW6{3Z$cPsM^dKvYnM?u)davb`*AZgy`8 z=?EiCvK2}@>9M#5p#z{0?hC!pOT?4+J?~JS7r**ohghBqw0%sqvnsX#`U^Dgq%Q$= zMvq+I3v2e(OG+^@8{jBE$n!@@Of!x(Y*a$qyAsGmR~_$Fqo!#0y_IfChX#i%Qs5|t zy5U;xhE(CGWi56t-URTt=j$$#21F}oT_5@0nUK-67W8XiW$H6}PcI&F9{)}RX|cI1 zQpjWYI9BIq(q7Bmx-uV~2X`?GG<`cxcH59-I+h{7ED1bux}`k_MU1A@9NA#&AROTt zrgM-(Jjhf)F)-k1GEZCj0rgd%qAFMyjw_TQVm`?g4T|jn_6V;M_j_?n^)mTo*k1Yq z$>FadIb9&ct=bWj46@)PJ}j9i0}#sIQVqTj3xX|9@I9Q4yhS9oiriWeeszA1`zNVy z%JQOu%ivtd9*9WUr(lp)eGM>Lu}2pu`ud+S(1_tls|VS){9LIIHcA3B-kH1FtZ(dm zXvR)9D-|r(zoYIgzc9CVWk(vT{MZfJecTKNWEz%YKMD)tcr+SLW?8S-pDp%*?sqON zIna(fNM1TzW@)t*&t2D>b~Y}(x$(H>j>UjY8B=Pr*+U7=k{`Cn=D3K*P!a~*u^gkX zLn!Gzz~iK+oFQ|T9x4LKNT+5KhMlg4$MINroODAn#KQ${YoK8l)6@?6& zH`52Q_DW5VrJ#2k|KbfQM18Q)aP{N zrTXKH7G;B_XldckhsRPA*xLBI!#bOH#)&JX?N{%3cB5N1zx4emeqkI*(YMlvo=-rk z#VOw#qUz(IgI|!|y@cI<2lJVTIGd0#-o#x2o&gT|o&o{)lnE}k)^4ERJ+4ibCupz> z5g&3j2b*1=o84sWHy=k#CFdEDZH2wf4048J61)`{;g z1|B(eJ&JeEF=*+4A^;>d|1ERje6IpcI3%p3ZKH`P+}%M(q#vS*_xPyPVsh$e23clT z+g7=Q1M|2B#QBglm=U=CV+qz}{4wxU;y(=gDop{go75aGavY&6Tl^Cf#P>-Vr28jQ zgW^cBRtfyMFWlc6YeQ^Le~`z-n#M*5GN0Q~yd$lOlJUYeL^8Pnt4f%xs_U)8Q#1pW z23LRB(xULBfzC8TW8_Z%a7QC)@A+*=W&vG{`8f^pa^|8N&m0~XR|Ol6Y<+rwGpO&O zR3)z%vN2F zn{Ghj>ECn+jIB2G9h{Pd)U@?ne^h zBN)kY$P=5qc@7F}hPf=i<)_0^x$BDdUr1rZElJ!mF$nhf&^tF&?r;xj9}78tqTvTI zs*bo#?jcqn7lr9-Fri&=Y-wa;z1E0N4BOTj3c5seF64gra?KWVM5CChUronZy?!f|tW zTD-xXEQ2G6OH&w6oUwOIDtJFqa$eSNOv)VdY+w*dmDOF`Vd%J&-OkKZ$EA{nOSlZS z>^fHJ%dxial!&;9k-lmJqB+S1(c;vl0+QpfI)3u$BI~G{UIqWcj<>hFrx5EF5oX;w zj>}IOp}6zyQ@iV>ly9p~Zoj%+F?92{yb{Y@7e;9;rr_`V5^8zbDl1BD7HGigU-9EY zk(!`iF%k<~l1L~fQ~f2ZE=nl7u)^Lb>$VB)+yUUq??UX+C5p5Hwfd|XAB<*uD$%-o z--_U>Gt;n#hxBb&7suTw-nCvzxn@>#sc12;rwlPf8n$xh)a|%gLs|&o!(IT+CeB}7+)rgzwngy&VVpkKEhNJuetPYjl zw~lp1yo%R~+_L0T^xfO`r6fCd+mV{VGm8)<+-&5v<%W0Ko*5uEVDJVD#Q1mUTTkv( zBs<2BD(c^+yn=VXswvjr3r4^gcV*Ot0H_v9l7=WD^ZHT4Zi)L;SAZ62V@Os!RFUKbiTJ*7cW?%| zWJxR!OdFM64cYE5llQCH^?(6v*Ws@7kB zB?jMau?(rme&(qb^^vItuJ*9_h{#wJys5MUJSpKt{y9lz)pD9j7aIyi%_;Z{0V8$1 zQ{IWsEnl^Ey6C7I-`GUE)xfgIv)q{q`fg6=Q$6KuYNchb*al4~i4cQj`bO$`STqDS zpO>RpS(c~)E%B(#I&E5&hFL0nbeZ0RodiQavpP5oC=baPZ1onyF#YJbf&iHbT5v0}6 zO6ZyEQ~+0Ml2qQ>YA8{u&8vP`;k`&vl*|tDPVM7!gkxZF>qrd*=f}XyTKW+Vilim4 zivAoI#;>P{a{&2S8hfqwg{I!eXl}5gMiTtkVOCCBN2{u_lPRaKtpMCcLj$U!D!P2F z*+vjn%|1MNHcik|^kB`@7V>0%hGGQq`#vjB6K`gfxZ6CCi>JJ*?t0yHzjJoj_uH(G z+Sf8ETE(Pa~+D z<75OBVnKa&3TIk1nT+qstv|l6SUh*s`;_lKD{@ihF9JSOJ;PLqnuw2~YehZX<>NyZ z`9LqjBQ9{%#N^#MvheFhylSlZ^J(S9n2QnCp%zdYMoW6CrgLS$Mg1qx-%9Q$&}kt` zc)OZloNukT3`4b?SYR5vf<6%*RxBd*tk&8M*R#duM>FgK&vwhkP9vG+>W_w}&De|x zorqs+t|Jbd;vHpH6b&Pu4YsWAUuYp%?S=yY;6}O;hKoN7S4r-=56{dL;Hw?%v+(} zUjR(5#N+t4uwn9e8gqkXhk+bUZnVUWBRn{GJgxX)dFS-w#QGRDuiqZ%!WOi-li66jg>xv zrV)rDh!L7I3+soE%WGaZeaujN;o67cwVH3w6*EO};EjGd$7uczCvz%39}ZYxo4A~MS#qvaD;3=FIvJX;CT z!ID2-)#*DIMM!r(?#{Iz9^EG{DD)d@gR@qnqK?q8^og!g#OTwtQ340C-UdxWhYB<_ zH1z8pm`D04;xTBalcnOGs%Qct8LVFf=PWGR31iJKPW{@ZZil8OMK8g|W zY)KPS+i=Zi^@1KWLhWOm4<*#ki}a(@NNSB#Nx9>*OK!24bRlzD>S^FXYEX|1X22mS$~$87GS>hz z2Qb&iy^-f#iPwwi-skNE#FVC6S0IE3d~vSc+V~!8FrRnyG}8t*@VME35xq$2bp zUDD9(A|A*v#*DGB2Iu^FaWlht+{eg{cC4_;q+ekSbhCOo+dE+OdU-MT`uw0^_M!AJ z$@^IV1h`Int0c1_v)~%EnBbap8}};@d3W3|)q>-lvD`@t2=AT^? zZ{#C3im=zsN?{p~=7h+`XIC`J_E+H-Wm3WKx>U04*Pt%wlVDAXxK4C9!(D%{&U{#C z@m?NSOZdgC{~cks+wYuAr2GIMn2UPZ3_GcC@DLNv2p(rqqIIgo$| z$=OVyCYsezZ2Kr%3}77>qEZ$NejOvL9AWexFxCUMWkq|LVGd1h-4qivhKcCYn!aR% z%(cR9V^VMdlH&?I^NB!Rt3pH?{*sVo@KdsFc++!etuf%6Z;SB4oK}KPw+7w~AUCD9 zKVEm7UH@43WPV$!`pmg!sH8NzB9zOeE7m(H(9j{|ODs`7T%mv?rAeKhzUyG^)L`GG z;dgF5=H&eXT)wEZGDn{~!|x|2w=3b0sGzw(uU^0QTCjmn3vsw<0(_a!u6OqM+hDxC z1t(utr$}7hRgZX*4*NU3YiKIanNSjER(a= zhO`*WqENVDDr$kA9h1Q9)F53wQN)@#*M*0OUZO&wU_Du2vqc9Jj+@C6pGFjv06)ai zuSYaTj&yN<@umKYwoR#Vh8L<|;?pr@DRwN|K#**xbz$Y{EHqJVL-cFgx<3PHl{L%f z952`oe}e=(uY3!I`WpY+?-}iaH+!?CI0di7u_7DSwI1;6r9p}1M>15y7^oiz){6EG z?E6O#QO8MutEBX|WlM@DsxdRFRlnx4DRoOB3QezuP)nJyST+{)H{sTm5$E31^j3ZK z{X^8m-wsMi`Xw(NA;7@s-h_?pw?;CtGP5xQ09?$*7EaDg7Ph8#EV5Ff;_}MkIzSn_ zx57oou{s)0gWn|bs?Ga8HGG55!fNTe2Mf{_-8B$WniIZ)Q&P(|LSUkloj7SCmV-8C zMf$ihtM{PgZM4l?ub};^@pXNRwx%vBqlOC_f&dqc1+c&i(^nXYb@|C_c)~We4U`Gw zZ-VJid4aB;fpr();I<^%e2a&0OwP1D_5c(~j1@9nZ9Dts5H6_sMeO?=x7A(aqJ@uB zd<&CM?xBJH;!YBb#Ab18^%Qj&ia*<-)d^tT!ZzeW*Ia+Z`DM0TOeKW;x;0n0trR-v z@z9s_girPJrnYx%7nqnItr<&sHt&rUvJ3O{4bwnU$xu&KjAj`VW!)Z(?auqjb6ni& z@uec$BKM*rPblelL;jVz#-E7!vxpSCk!J|QS1jK&W?*nXsx9GaQl5+L5fc@{I^Ohx z<*&1*w7L}(zVD%GcGw4C`{U(n+6LwW?{4=xSZDff8h!gNC`rhP*BU7@GP7@9V(x<; ztia_OrnD=e24O5!+lOV1t2dB4aNw;Ab=3)wxpUo1-4wt1rSRR6jWB{=)T!lJ{Q1FQj}KuLH$$#a)_zHB~@Mwr2tYqQ>v3@s2nQkp$RQ3 z>t)~bs4Lp3=x{>pvKKI!dbKIaNg4)CGCB}hBt28U@`otI+%wWwYt*n%2XoeN$6XetSZGeRW^f=4PT`4 z0NIihCF#eoI3c1|MvwmSSWJvFfwU6yJ+>C-lhZrG++RiSNP=SFvnbR>^~3KzJpFk2 z+k~AJ73A)Fo2Zg+U2^3AI$`C+RfNTaRfKI~yDfWJ(Zqf}gg=9S?GGVzc3Q?nlBR{f z26`?GYS)v>99d>=bXIvCcJFYt`KK8~7jWkpUI_zvXb^Q;*=aHcMT`q^X|C)98d@8V zZ}$KS7{i9$7piLD>HgJ@pZpTyz4K|B>tO89;GQ4B#4n=;I0vrlzA$2ENd-N2bKfS? zbJ`KkOTTX;lurrdnI0b%Y4F%B!*F91!9KBrFg(sOdBZq|Ov@w<8j`IA z($dk(?IK9YHUVi%IOaej<1({yqvbnWf5u3EIVKH^7eIJ(2=48o`B%rB?d-8YB;9J}8Y!hJSQ-vN!JM(l36vL6PxO&$Li~{*%HL8f zbFaNbc)i>nqGw?@{f*B_k_$k{S(g!TFv`0iT-(dre%%W2MBGM(IwSH$0x$?+F_UW5 z>W!{^I_@8XQS!~=4P#D_-zhl7xeBdp}g|jWwM+b;k4yEoY^>Hoxgn492PT0 zmf>@fuW5P4Mn&O0BHuEtOY?9M^?2tq$Y}mOP*H8!%E^!_NX3`YEIa%a#Vs^(PAU2AuZl0!)<7Tti7Q) zY_@T5;;_y^KF-*AM^eFq-pc@Gv`6)*fw*nBsHUZvbgh;;hs5G`ThClRqBA9#Un>wV zbKVmwE|2giTIw#4gEb zoNhtHo)tUc#(78uEvvB`hT%68iz)F6iw^q@DjEmtx1>t-o8Q;t1ypO=IS1OG-ztOP z5SWnvcaQDcy!x+Cf&X7W|Il&!C*Yr&H2>Qi4D1c?Hdp@x_@9=|KaKyXHQ=}L0OD`s z-;Dx)+W%8!^S8a^Tb}cuKmSji^H1x4N{N13%f0Eyf2{wn1nE!OKV?L}X&L_)?T`HE zPuf3)BEM-4l>h77{~eh89ryQ*;x~@`O_~1ZQU3w=pKassyuWMiZypWpzw!P{f&UKs zyH5Uwb^R;s|5MGsL;tRp|AE%~qtgAGhySgeiZakJe_0^DeQDnG*6^(b84T?I0nz-g A0RR91 diff --git a/dist/litellm-0.1.226.tar.gz b/dist/litellm-0.1.226.tar.gz deleted file mode 100644 index 336259f3f374f6a17241518d5274eecff860cff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11458 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 literal 0 HcmV?d00001 diff --git a/dist/litellm-0.1.229.tar.gz b/dist/litellm-0.1.229.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a157ac869ef56e27eb9b395a7138b7264e705eda GIT binary patch literal 11899 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 AsQ>@~ literal 0 HcmV?d00001 diff --git a/dist/litellm-0.1.2291.tar.gz b/dist/litellm-0.1.2291.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a286f7bf9cf3ad389f0b476c10909cb40f25e29 GIT binary patch literal 11894 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 literal 0 HcmV?d00001 diff --git a/litellm.egg-info/PKG-INFO b/litellm.egg-info/PKG-INFO index 901efa24c..f01915a43 100644 --- a/litellm.egg-info/PKG-INFO +++ b/litellm.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: litellm -Version: 0.1.226 +Version: 0.1.2291 Summary: Library to easily interface with LLM API providers Author: BerriAI License-File: LICENSE diff --git a/litellm.egg-info/requires.txt b/litellm.egg-info/requires.txt index 4efb352ed..b59e88b89 100644 --- a/litellm.egg-info/requires.txt +++ b/litellm.egg-info/requires.txt @@ -5,3 +5,4 @@ anthropic replicate python-dotenv openai[datalib] +tenacity diff --git a/litellm/__init__.py b/litellm/__init__.py index 06749d8c0..191a8ed26 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -41,7 +41,6 @@ model_list = open_ai_chat_completion_models + open_ai_text_completion_models + c open_ai_embedding_models = [ 'text-embedding-ada-002' ] - from .timeout import timeout from .utils import client, logging, exception_type # Import all the symbols from main.py from .main import * # Import all the symbols from main.py diff --git a/litellm/__pycache__/__init__.cpython-311.pyc b/litellm/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 8a3e54fa12e48e7791007d11698a9b9314a230c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmZ`%y>HV%6hGT><2Z5Z^ovTg6=Dm*O`AX$5EEjmSSX8yWL`T>HLdsvj z%FcpV`74lE+|BX=5>vNGT~H>TO;Q>OPVav2>vzxh-uaVZ=m=Kz*EjN|g3!;xSuS~D zT)zk71M-kvY>6OSCX%fX*{*9vtgXpBrn|{-7N(k%*U-wPh^jmhz->^5zn87#Cik!i>Kr63MyZPem3P}jP zY}XUj8wu-CqL<1#IyvqowLf;RJ4~84W|^8Bh2J}TY>9Ey59h5F*E&8KCL61vqTqaI zH3qb@TBJZDky-#u4<)9c7s4X=oCPkkj*fcCx*PgF4u};nZy@+2(Oizlgj(IiTv#lK z1rCIDoa~gxso$rBu)wo0!BC`o1&yM%lvf4wX*d>bC0}znqk+h)JoG%E=1qFx(ve_c z;E2hH0$X~}-pZ2aig90_ zp(Ui~V0M7iJ2OSTFBguE)E#hI^3(uZF*12;rYc*IGr?~@Ob<^ljnl91E{!*-6J8qO oRG(=`-G?)KK-vXI+E3BmZOKqK{l8>rGhIrC?xw2}9YBx20c90W2><{9 diff --git a/litellm/__pycache__/main.cpython-311.pyc b/litellm/__pycache__/main.cpython-311.pyc deleted file mode 100644 index 81ac3560182bc1fa0e133b26833556a3fa73438a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12875 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 diff --git a/litellm/__pycache__/timeout.cpython-311.pyc b/litellm/__pycache__/timeout.cpython-311.pyc deleted file mode 100644 index c7211e4a7ef94e6b8043acab4eb8dff1663a7f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5167 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 diff --git a/litellm/main.py b/litellm/main.py index ee68d00aa..f35af8013 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -64,6 +64,15 @@ def get_optional_params( ####### COMPLETION ENDPOINTS ################ ############################################# +async def acompletion(*args, **kwargs): + loop = asyncio.get_event_loop() + + # Use a partial function to pass your keyword arguments + func = partial(completion, *args, **kwargs) + + # Call the synchronous function using run_in_executor + return await loop.run_in_executor(None, func) + @client @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(2), reraise=True, retry_error_callback=lambda retry_state: setattr(retry_state.outcome, 'retry_variable', litellm.retry)) # retry call, turn this off by setting `litellm.retry = False` @timeout(60) ## set timeouts, in case calls hang (e.g. Azure) - default is 60s, override with `force_timeout` @@ -258,16 +267,6 @@ def completion( ## Map to OpenAI Exception raise exception_type(model=model, original_exception=e) - -async def acompletion(*args, **kwargs): - loop = asyncio.get_event_loop() - - # Use a partial function to pass your keyword arguments - func = partial(completion, *args, **kwargs) - - # Call the synchronous function using run_in_executor - return await loop.run_in_executor(None, func) - ### EMBEDDING ENDPOINTS #################### @client @timeout(60) ## set timeouts, in case calls hang (e.g. Azure) - default is 60s, override with `force_timeout` diff --git a/setup.py b/setup.py index 47c8d82db..76ccfddbf 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='litellm', - version='0.1.228', + version='0.1.2291', description='Library to easily interface with LLM API providers', author='BerriAI', packages=[