From 95899bf60ef1beb75536a9dafff4399d9444317c Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Tue, 3 Oct 2023 21:56:00 -0700 Subject: [PATCH] add additional param mapping --- docs/my-website/docs/completion/input.md | 36 ++++++++++++---------- litellm/__init__.py | 1 + litellm/__pycache__/utils.cpython-311.pyc | Bin 139801 -> 139976 bytes litellm/tests/test_completion.py | 4 ++- litellm/utils.py | 30 +++++++++++++----- pyproject.toml | 2 +- 6 files changed, 47 insertions(+), 26 deletions(-) diff --git a/docs/my-website/docs/completion/input.md b/docs/my-website/docs/completion/input.md index 4a3264c248a..a2cdad5d1b4 100644 --- a/docs/my-website/docs/completion/input.md +++ b/docs/my-website/docs/completion/input.md @@ -62,20 +62,22 @@ E.g. If Anthropic supports top_k, then `completion(model="claude-2", .., top_k=3 This list is constantly being updated. -| Provider | functions | function_call | temperature | top_p | n | stream | stop | max_tokens | presence_penalty | frequency_penalty | logit_bias | user | -|---|---|---|---|---|---|---|---|---|---|---|---|---| -|Anthropic| | | ✅ | ✅ | | ✅ | ✅ | ✅ | | | -|OpenAI| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -|Replicate| | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅| | | -|Cohere| | | ✅ | ✅ | | ✅ | | ✅| | | ✅ | -|Huggingface| | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | -|Openrouter| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -|AI21| | | | | | | | | | | | -|VertexAI| | | ✅ | ✅ | | ✅ | | ✅ | | | | -|Bedrock| | | ✅ | ✅ | | ✅ | ✅ | ✅ | | | | -|Sagemaker| | | ✅ | | | ✅ | | ✅ | | | | -|TogetherAI| | | ✅ | ✅ | | ✅ | ✅ | ✅ | | ✅ | | -|AlephAlpha| | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | -|Palm| | | ✅ | ✅ | | ✅ | | | | | | -|NLP Cloud| | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | -|Petals| | | ✅ | ✅ | | | | ✅ | | | \ No newline at end of file +| Provider | temperature | top_p | n | stream | stop | max_tokens | presence_penalty | frequency_penalty | functions | function_call | +|---|---|---|---|---|---|---|---|---|---|---| +|Anthropic| ✅ | ✅ | | ✅ | ✅ | ✅ | | | | | +|OpenAI| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +|Replicate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | +|Cohere| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | +|Huggingface| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | +|Openrouter| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +|AI21| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | +|VertexAI| ✅ | ✅ | | ✅ | | ✅ | | | | | +|Bedrock| ✅ | ✅ | | ✅ | ✅ | ✅ | | | | | +|Sagemaker| ✅ | | | ✅ | | ✅ | | | | | +|TogetherAI| ✅ | ✅ | | ✅ | ✅ | ✅ | | | | | +|AlephAlpha| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | +|Palm| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | +|NLP Cloud| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | | | | +|Petals| ✅ | ✅ | | ✅ | ✅ | | | | | | + +By default, LiteLLM raises an exception if the param being passed in isn't supported. However, if you want to just drop the param, instead of raising an exception, just set `litellm.drop_params = True`. \ No newline at end of file diff --git a/litellm/__init__.py b/litellm/__init__.py index 9afa4aeeb41..efb48a7d95b 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -15,6 +15,7 @@ token: Optional[ ] = None # for hosted dashboard. Learn more - https://docs.litellm.ai/docs/debugging/hosted_debugging telemetry = True max_tokens = 256 # OpenAI Defaults +drop_params = False retry = True api_key: Optional[str] = None openai_key: Optional[str] = None diff --git a/litellm/__pycache__/utils.cpython-311.pyc b/litellm/__pycache__/utils.cpython-311.pyc index d4014abdd12483b3280c8cdcd73659011d542d09..51ba1a493238e436a81c5ac2edab1c5ba7cf2152 100644 GIT binary patch delta 5758 zcmai23s{v^y58Rp`{%Mj5!i}c1Qfvyf}x_QctKQPG_*9InNqe}_7+Xt(ApbKhXiL% zPFhpeU#`+rMDvoDBDBA$tTEGSD$}Ms&aS**^JIFSbI_VRT8`&?*GAMi&vOnwzI^NZ z)^}asTK`(S@P7D*hr_#VkB*MC@Xw6%$)2mvwRU@H9Tm0hTlYEj_@$wnJAR=Cp}4Qw z;p$+lwUPU~iA##CbVThV)ZHQ!Ug5rhP_UL}Mxya!BQjD)R zWZ3#+t~--0Wf``ONhJd?ZV2NLVZAR#UFoa24L6fvWdI&W5Y>qnaJ@EF8+h!cJix3rBPc2d9qgRJZVqQJphN z+(oL=gCZ=3b8|nVsadCBjX&Mg-FUq@(>|tiW~)0_%`9M>V+~hxe?l5@M)u~Oly4Mo zPA70vy9d`X4!*or_c-I}%@b|KN^?k;=6GoKx-<2g4VQ1^w-iu`@-V^pW6SWAV4L01 zf?b83Xq;^s5Uny-=pg&FK$|V~mTbI(5 zwgX!a=@f3P*p)bJG4Zad2i(Ou3O`eU?%w)E&T5a>BV7IkwO*fC0xs2wuF1ysT|cyK z+P#R{dh9(+k*zFm;a%rj-FD`cixk@tYDu1~by#kp(fVeB@gJ>)J)$}+6fxvv{@}-^ z9!t(W9+hYGeJ#tFy052k=1=j)jn{g%RlL?3mD!AlB;49uHJ-ZpPFGFcd{-cBuFL1~ zd%R)?Xt1=b3}?`d%HG2&d+xiPb+s$p70#4#{gA>DAb^9N)7l&0Vsy}5b!$SBY>*yCrml)!UV&KXx}hiJk=-TPZ+-m z7zr2#m;-nV@HXIpaq3h;!8=R_V*Rz%9{+rgaJm*a7uC8wH9oNibKV7D$sATO57sY% zaoNZ@eYe%Zb$PYzk<-(AP^fXdW2$})vY(C2OMPM@SSBI?JpeJrj7x{~c#tVZ%H?8K za9-{erY6K_##8tAwh0Tg0aM#HU+x!6-R0p>nnV#Y%1XbdWVyylRg@%uv{D82mL)pP zpb_$UonEG0vLuWKP^PR2qokNDc=-!roeql;Qif5wJr~?>!5s+dJ5bs3(=ckIv2sN? zji+tq`{DF_tYa|bD*h3mx&yXg`Vde<0mA?Z^3f#fr;h~PTkcJwjPlW-$1ns!JYKhW zhP51#Vl24h0IGr;VN03*8>lsaPXNW3vK&;ROiHE!c}ZZ50u%vuL9`q20-zn)?Ey6& z(h~VlGL3EA1+MCYa}cRKCPAKwVHRKjAQQYkm^=}bDw^``;99!x#h z{PL=UGRP_WWK)W@icNKxnm(ZO?(ujR2fe32HD1bLG$wsFD*Q8`8gKx~zr(<7 zp-!iz@+Y1~WwKy66q*lr|{4iKdjUP7Bei%kgWxjn56cmvu1(MFP1>|FkmTQ znS6H?J&>pNU?Ui+34*a;SOwRQf>JBC0@UwhSrKK#DE*aSJd8DNwx^*z4chO?>Pl*&E%JON4QGusCnZs{ zEOPSh-DEa9Nhf+nZl6Ol?YETF#!v;3GS)>iY>HOr+hp@07ZnigH@DBFl|+7-=cd6? z*i?Z~_kt?F*ez?^G&}(ZTfjEo@2_+E{4RgJPs9b|dCN_s=xKSy&E1fS?u^S(WeFZv z$R!?N2Vez6FQyzZ!QHxE-tVDgS|^uyXj|l7hyhQSS@Y=a-V|$o+ejTDbWMKwdwSJ+ zkVT2+>VKmzLgTSC4ox&bWehAvii1+DqJgu5wP$`HMz|LEJkEKwqBCYbX4M+J3#qMc zVYPFyNBH>L9tf**Ev>0_xdj%=hwoAvenbwEY=sj*k$G(uC2GBov%^4?&r>Ble&=FW zO}$41)0MeT(7;HD1;A-mJwbD|Xq1zEkAbmc^7AKY0@cZ0Ptke$?bsoqFU&}6h0Xc0W^^|q%Dav$7`cWJBHRj#7pwC zb!4~S763%KsK9r!V++O0==D?@_A=tBAbHP5vYQ-GHga3Pfig!c2kor1le4*H7Sxk$ zWv3o2r*iNexWP0*c|SA!pUMX|Q>lIu87)DDN0=oow1~#tD()RIvc;|#xH09Eecg5s%yBzO4anGaM597%_1#7I`tg)=zNquDP4zkP1J7|QaN6D2t=mc5i?46uql=<;a8XRI*nW|cK zH4pbo>>kR@RA!@sS^g7g-PS6sA({ajWaS>p)`M#*pWH*!_y{cXfl zfw(Y==V3wJ4jVDtA-{j03I;TTR=3eDpjsHd@56Sg*S&zBonytz;BS(X4)dpUy_|QL z(i)G!)OkQ9T&k@Q62epmcs~N7FuclCAgs3DUsvz<1v}1^>a|i z0l0+(qNn?7>&pF|uNH9wg4hs?v>u^xF*X=cUy`2?#9n#d5lZ9YEX{RvxDWKAM&sr$XM8uO6objbFmpNk9OgvbhyLA{Qzy6|nNGGE||5!>Y=Vqp^r& zKq|n2NU{MrfTOSis71%$&4p~b`Okd*bNUt0QF-pK^x^P!7V%Mc0i{+grRq9^ZE%P5 zX3K%-MYUB6oxc@08D zk+@<6-;?S*30_~vL%vH^wo^JeWK%nT3vyvPPrlPm-u~+HPyog-z{fm0(9QF3m8TBx zQm5Co$Rmc!d(P1m>ja)~)oeLOXZ6&sD-3@p=W`eVz4Ps{3=yxEEf?snUdx$wbieKX z68wD1?=MgmJtlixBzxi{c!dS^bqsz&OTjCX<1SLRwVdghX6;2PvC<^j*1?BUyPS22 zMpL<5cZt&Ms_WEYrmAy2nC@qnD3Rx1xI`KH-9dBlm#Nx1o#|S$=`ua5Q=zn9rMg6Q z@4f-GDuA-md17q3O2cTSJaLs@Gleqc8ug7F31fg4%<^mWc!)j)jCM0{og&EU=D~4! z{-3;{7vvW=*x`KUe6xR?7E9Urm|4fEIzmJxXeUFUdzH)Ubh+KmMSNp-ReKy^qFOeP z_M6Cgm;?Auo+j-gRmzVwZ9wFMU<0nm>zcMC%ZVyeuo>XO$78->1RGxY0sLaF57G7! z8<}R+p0mNV@^9&8c33rsZc}-TLIs>MBT6f!IkF~78<~!j1hP;uJEDTm0CnwK2JUa= z2T@vT+8of>{DE#&^+I^Oey6{7p@;vn;ew=E>d{(GB>Ge}Yq~iqTALd}=j6s1t-t-& zg--RkYVkMZ$rvq z52joh(^D(dABCt%R`k@ojjib1g8=-ULa1#y7y9^fL~#3BFdeUBkpSokm4}{LGt*ucDB2eIeIWDh-7xAvHuknl#FR_%vu=w2k7i7LQ6LrK}$Y#FTODonB Trduhg!}7oIK{Kw8ricCye0$aOY`hcKic~#%}-x&hf-+O`lbMD#CxyyI& z(Zi8z--(RfX0t_y@z14;ojp&k`cv%h*HL)$zICUm?fJ%7cft$}Leak}%$=yGtpG@69D(Zr)9j8>Suo7hRmkdtxjq!T+y(Q98y z=we@Dn-%5@cX!5LVQGwDt1htews9xxFTK=(QuMbrrs@B^$(F#5#;~K*dmN>)qb~Y4 zO?JItLsV>67`nT$i*%;+f$NioWq{Qf!TG>*3Pwx9g?ULhkCb|2B+DXslnL1i&3l7G zbPt6X$hl^5hzxS5EWX;%zI(RvXkjZ0TPgo+wV$nWLRRH$mCIJy`naa3HhK4Dkk5YX zqYLiy(L;@*M1;F%V^j^X*ItSfsW_2}(;FO)Ucp^80$Zv^m}ZLRNbDGI54F3CwGq0>dQKVT6OaEahn`e zpwq^7`g5CNDJc2#ra1Fp&b?h|zEZ72lx^?(Y=^R~y-l#ZObD5&f+aEin{_E3TOVY>gEz;NQ&1k;4_tlupCU{-V z5U{#xJ@wU2S8aW@D-coP@_GCouh<6p_U1Eh1<1Y=YOx`Sb7q~}Q|lAEps-s%cF<)$ zz~q(YfrWlcwy#w3 z5tGWwMwXYA77r_Fm2Yc4bToo22NCL!e)3p1bAZXb<{QVRnarOuIlK9nCv=UT)32WV z8-1p~b*hLi>Nij2n!jb?{AS1dHe36>ur{NyIA$h_`53>WkNL--vKEln0p9_h0UQP_ z1snr70mlK&41xG@<4ejXjGHvEWI}6}P5P;SI3}P9@g6|+AO<~XRjCF41OUwtM*#Z) zM**tWe`U&%C|(7_iEIsh^tt5pKV$q~fB}GhfN6lg0A2&Uu0MY+sqY(12IBp7RUUt} zM>t(IcP0w6C*A~L${c1f9p0~kaZL}L8*BcF$(NgR&p+IjO!~rW^9&_Rt<#L zcx(LPAgta490NphGes024$ww7wY+U<2ePw%yrq~u#a{0ap%mI^`trv+T16N<0?L}l zU+)%AvC?m*Qi_zXndvuVmqRR6NuA^t3zbunY_ZTpDw1Upw1alYmI%tC3~7%fdt4@> zs7xM)$4FTkNok3>;9f#%IiQfaaLC3;YNo-mM-)9s8w_6*t%-N^gk0rc1S%G=1?s&( z^#=3>bdY^IQ#VV0&`EMiXG$MA5cD91fXU-^i{G)8BU%gwcL+eWb_0AV*MA4K0&pBK z6e{yUb(HUQrmXxkthIGjPG3W1rN`$J4#-sNj=)j{&jwF*vL|?l0k1J=B2S+0 zLJy^khQcVo7{FLSDPTEN2g~uvluxC`f@C^tF;8N_X~UU8KM;K)r*xxOYLmzS9tCvvzkBcGO=thER~6X2ERUX*zsqhBw|H9x_^7^A8e z9SKjuwg^~we|fyKg3&v}w4E$1q`_&gpw(*ARDpT}$-l|K>qDJibL8(?jmqSuLMk#p z!br&5Y_1+2%z`k-v@q=mFuN+%W4CVA3Hc50HBoxF`V7~`gqg=nRG z#6^!J-ZfG?L^Wi!Jm{i{Rz<55aFmf+L4Aq#8IM%bZ;5>JGdJ~$!R`u#yK5@_;uUH4 zP+<~|zJRsb@2_|I{4RfkPqYi>^D7TMKr7@QJd{2p8F{`A{w)BZ64j%-r&|Jei2zK8 z=)jaCF1Ux+$*Aennbyk8>GX%_T@V8n86Qoj*E>?Qp)aJXCb}gTEuuZ<11yR+`Y)z4 z;R%>0hbEqc$zXVl76)Y7Qp!yaP6YD3Q$DejIwfOfFc`Aj+@0{hTZSaU-Y4X$OC^s5n0r-Ux|2$P_HuRC> z42H9l^4H60I91Dcm(y3==s&KYA@qT~vVw{%v#hM}q0C!JZ_r%h@=6+{(N^hLMLBd{ zPFh9P^px@DD(b1xS$TCeb+w;k$MY52BF(6fZ3f^akV0F9vuGC-o z>b%TuCwsg|d7}|J7%W134qBaX7eS%-Vk;>1DOiS#EWzsU$p`X0Wc-DE`9+!>u^E|_ z)9NNlG&r+t6gg@GWfrPP7g&8emvz5?xZZxR>n|V=)w^v2O|bk0UK>$wzLD2N-6>U- z+QNFFhPApE|AO%i>EB4dpu@)TjZ{I|O8a{V_%}>E&G3KOJ-V4DTTUU~Y!y#(Jgd>N znP$?^yZsGi2al@y*6_SQepa2@LMV}wYT8N<(OKi#Ryso?zT^f6qSQCU`NjqgD3Z zP9IUYjM>4}g&XsBP%l%WDpIwnb?NYGIk<~5GnMa{V1YlPqMt34CiG*ywC$#Bi%Red zIcPVH=iR<+H_bQEC28AB1F}#Z*P)ix-BqUAhB{kUnXKDOiM(eP@1@5n(>TAE7RK|? zb(oS;)NN7S0C8Is5|P!_Z~=zf(=6D`w+1m{0;K^ z!<52DcH+B~y5J;SeF>O~64mr-CZ?`{cO78G@Fr7%h`I)UeS_Z@To3<-&dVwVg*LaE%p zj3eZx0mjlJ^i;GZ0ZQ$q?KCCv*^_yiis+1Vo~D`wXW;B(z~2F?n!D*EbD{E539HDe zLX~<1ys8R0n=oMqBm*4CBpZ+eH~}w!Dr}aq+{lG@{uyN-&?ur4@^@$GXyFAG@mcmY zTCG-%>gz=I!HXb?JqK(v>ndkBg~wN4=kgGN8Y?ZZ#=42qq@{VRjfz8Y9iFFSFJuZ zO?U?hv7R}Vo_fr%)9ae)5&c$QqA})SEWc(vbcrrlQd%!3{L!oCECQC$192`wE|Cvi zrXC%hV%pK>o|{SNQnKbUABNA!1D7eWQwf5?gSdM^DFv@gUb#%!<`GPn8_EBqVP-0k z71!uxzTR0|Xb_E%BU>mnQ7t-kQmN+r5Uh573w2`swJnrx854B(b_-RRCoo-Q6kMlO z7AlnQ+@ktU>T3NH%qjuOOXy4}zfJvUv0QwcA1sCP_-*PM-5<^XD~+4C=~mD{`kvo85gXnoPl^fDpJ>hTXY7 zs5pS{j8Wm*K4K?7nY98nn&0(>sG9Ew!rpgauv@&u^yGPX)-3*V{C#FF%UGBGOInh|9YN>WKzOiW) zCi+~CZL4J@-o2cuRjwAeA)jfh<icu}OuZ`x^g zOA40UEon{AI$G6ScSjiuWkG^Al@1xp60{*i8|B{;wS9xSLHB3x*$nX1^Ae9F@inaT zK&jV|dM2qSQLcQey;fvd1knQdLwn7;U=J4V0YCttHf06uzr|2(Uc9q|kKiOw?E!cg zsW*l&o38{}-bq$k6}* diff --git a/litellm/tests/test_completion.py b/litellm/tests/test_completion.py index 685ac7b21f0..e00ea0311dc 100644 --- a/litellm/tests/test_completion.py +++ b/litellm/tests/test_completion.py @@ -323,7 +323,9 @@ def test_completion_cohere(): # commenting for now as the cohere endpoint is bei model="command-nightly", messages=messages, max_tokens=100, + n=1, logit_bias={40: 10}, + stop=["a"], logger_fn=logger_fn ) # Add any assertions here to check the response @@ -337,7 +339,7 @@ def test_completion_cohere(): # commenting for now as the cohere endpoint is bei except Exception as e: pytest.fail(f"Error occurred: {e}") -# test_completion_cohere() +test_completion_cohere() def test_completion_openai(): diff --git a/litellm/utils.py b/litellm/utils.py index 3843d428c26..9c70575f8f8 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -987,7 +987,7 @@ def get_optional_params( # use the openai defaults pass else: unsupported_params.append(k) - if unsupported_params: + if unsupported_params and not litellm.drop_params: raise ValueError("LiteLLM.Exception: Unsupported parameters passed: {}".format(', '.join(unsupported_params))) ## raise exception if provider doesn't support passed in param @@ -1009,7 +1009,7 @@ def get_optional_params( # use the openai defaults optional_params["max_tokens_to_sample"] = max_tokens elif custom_llm_provider == "cohere": ## check if unsupported param passed in - supported_params = ["stream", "temperature", "max_tokens", "logit_bias", "top_p"] + supported_params = ["stream", "temperature", "max_tokens", "logit_bias", "top_p", "frequency_penalty", "presence_penalty", "stop"] _check_valid_arg(supported_params=supported_params) # handle cohere params if stream: @@ -1018,10 +1018,18 @@ def get_optional_params( # use the openai defaults optional_params["temperature"] = temperature if max_tokens: optional_params["max_tokens"] = max_tokens + if n: + optional_params["num_generations"] = n if logit_bias != {}: optional_params["logit_bias"] = logit_bias if top_p: optional_params["p"] = top_p + if frequency_penalty: + optional_params["frequency_penalty"] = frequency_penalty + if presence_penalty: + optional_params["presence_penalty"] = presence_penalty + if stop: + optional_params["stop_sequences"] = stop elif custom_llm_provider == "replicate": ## check if unsupported param passed in supported_params = ["stream", "temperature", "max_tokens", "top_p", "stop", "seed"] @@ -1079,9 +1087,9 @@ def get_optional_params( # use the openai defaults if max_tokens: optional_params["max_tokens"] = max_tokens if frequency_penalty: - optional_params["frequency_penalty"] = frequency_penalty # TODO: Check if should be repetition penalty + optional_params["repetition_penalty"] = frequency_penalty # https://docs.together.ai/reference/inference if stop: - optional_params["stop"] = stop #TG AI expects a list, example ["\n\n\n\n","<|endoftext|>"] + optional_params["stop"] = stop elif custom_llm_provider == "ai21": ## check if unsupported param passed in supported_params = ["stream", "n", "temperature", "max_tokens", "top_p", "stop", "frequency_penalty", "presence_penalty"] @@ -1103,9 +1111,9 @@ def get_optional_params( # use the openai defaults optional_params["frequencyPenalty"] = {"scale": frequency_penalty} if presence_penalty: optional_params["presencePenalty"] = {"scale": presence_penalty} - elif custom_llm_provider == "palm": + elif custom_llm_provider == "palm": # https://developers.generativeai.google/tutorials/curl_quickstart ## check if unsupported param passed in - supported_params = ["temperature", "top_p", "stream"] + supported_params = ["temperature", "top_p", "stream", "n", "stop", "max_tokens"] _check_valid_arg(supported_params=supported_params) if temperature: @@ -1114,6 +1122,12 @@ def get_optional_params( # use the openai defaults optional_params["top_p"] = top_p if stream: optional_params["stream"] = stream + if n: + optional_params["candidate_count"] = n + if stop: + optional_params["stopSequences"] = stop + if max_tokens: + optional_params["maxOutputTokens"] = max_tokens elif ( custom_llm_provider == "vertex_ai" ): @@ -1241,7 +1255,7 @@ def get_optional_params( # use the openai defaults if stop: optional_params["stop_sequences"] = stop elif model in litellm.petals_models or custom_llm_provider == "petals": - supported_params = ["max_tokens", "temperature", "top_p"] + supported_params = ["max_tokens", "temperature", "top_p", "stream"] _check_valid_arg(supported_params=supported_params) # max_new_tokens=1,temperature=0.9, top_p=0.6 if max_tokens: @@ -1250,6 +1264,8 @@ def get_optional_params( # use the openai defaults optional_params["temperature"] = temperature if top_p: optional_params["top_p"] = top_p + if stream: + optional_params["stream"] = stream else: # assume passing in params for openai/azure openai supported_params = ["functions", "function_call", "temperature", "top_p", "n", "stream", "stop", "max_tokens", "presence_penalty", "frequency_penalty", "logit_bias", "user", "deployment_id"] _check_valid_arg(supported_params=supported_params) diff --git a/pyproject.toml b/pyproject.toml index 44deaba6ce1..25561468096 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "litellm" -version = "0.1.818" +version = "0.1.819" description = "Library to easily interface with LLM API providers" authors = ["BerriAI"] license = "MIT License"