From dc130efac63604b1fb8664e64869fe58f22cf62e Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Tue, 5 Sep 2023 09:18:37 -0700 Subject: [PATCH] update streaming docs to show it working for async completion calls --- docs/my-website/docs/completion/stream.md | 11 ++++---- litellm/__pycache__/__init__.cpython-311.pyc | Bin 7908 -> 7908 bytes litellm/__pycache__/main.cpython-311.pyc | Bin 29129 -> 28982 bytes .../__pycache__/supabase.cpython-311.pyc | Bin 6760 -> 6760 bytes litellm/tests/test_streaming.py | 25 ++++++++++++++++-- 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/docs/my-website/docs/completion/stream.md b/docs/my-website/docs/completion/stream.md index da578f7dee8..6cb813ae934 100644 --- a/docs/my-website/docs/completion/stream.md +++ b/docs/my-website/docs/completion/stream.md @@ -34,9 +34,11 @@ print(response) ## Async Streaming We've implemented an `__anext__()` function in the streaming object returned. This enables async iteration over the streaming object. + ### Usage +Here's an example of using it with openai. But this ``` -from litellm import acompletion +from litellm import completion import asyncio def logger_fn(model_call_object: dict): @@ -46,11 +48,10 @@ def logger_fn(model_call_object: dict): user_message = "Hello, how are you?" messages = [{"content": user_message, "role": "user"}] -# # test on ai21 completion call -async def ai21_async_completion_call(): +async def completion_call(): try: response = completion( - model="j2-ultra", messages=messages, stream=True, logger_fn=logger_fn + model="gpt-3.5-turbo", messages=messages, stream=True, logger_fn=logger_fn ) print(f"response: {response}") complete_response = "" @@ -67,5 +68,5 @@ async def ai21_async_completion_call(): print(f"error occurred: {traceback.format_exc()}") pass -asyncio.run(ai21_async_completion_call()) +asyncio.run(completion_call()) ``` \ No newline at end of file diff --git a/litellm/__pycache__/__init__.cpython-311.pyc b/litellm/__pycache__/__init__.cpython-311.pyc index a95ce65c852fe2b43aaf76a12b70f58f1bfa0917..6c515ddae086113debfde5b6f66eaf2409c0e21f 100644 GIT binary patch delta 22 ccmaE2`^1)aIWI340}zD!eoxuGk@vbB08|tQhyVZp delta 22 ccmaE2`^1)aIWI340}$wje@k)L$a`H508o4e>;M1& diff --git a/litellm/__pycache__/main.cpython-311.pyc b/litellm/__pycache__/main.cpython-311.pyc index d7f053f664c2c135a849439ad735c7af7c343ae0..adb45149c93427b0a44a8cd3be029af9e0f8d8bf 100644 GIT binary patch delta 1363 zcmY+DdrVtZ9LLY^URuhd0)He7~x1aCt@jbtD zdvESn*Wt`BpnXrPjV63O-Lp&Emb7;8X8H?U1wbgF;4{0-T;qL(ev8WjL?RyZ&>mqI zizb`|LQe7D!{sXCUY#$+Z*&>`sjgIink&t3by@xCuJrJ{MBXcQ6^G|U4VB>0ykre; zBpoBJQoI5d*o(X11S?icx!T8R2CtXVOimm6BxhndHSzcfn#1`d&E>3Mm!x*kME1GI zJRwhjrAKVYnosfxnIj>P^1-FT9}l~d6OMK8lB9xpP7R=Y)jc#wFrs)&iJ7cTyE* z6t}=64iwkJVf>)j1k>#6Vj8VdjQriA-EP4-`&o!(&sI)GKofpb^9Ou^%e5x;72a1? z@#k7w_IEtol=_3pk0OW*1qVE#L66ew_Vx~YCX@{NUZKP`|I{2jvc9yY4)>l9LF%E;l3zy^+$AEc8yPvsCE4tOkwH-NM!c zp)32U8hKE}BS&mQez??B<_I6U(pnx}-=>#WT5EOnZSnF-TfBBzjdG7M*ei<7iIu zGEX+6oc=x!rQX1Ra#lDPHq%V~ry|@II45vH;37`alK49!ye&{5@Fy-G^U>^X(d2chk&2D;UAcJxDW=wxDaKJmzJK_!vDsf`JNnjg~4Ogi0`OZbW zINWWpE0;w1fY>6BO^hkGMEV=reC65M+@)lR{IWof@I>?nM23 fAbN*9!l!_!6L;F-krHp?=%`*DE_Gwp=!gFSLDYhq delta 1536 zcmY+Edu&rx9LLY^-nQ$ycI(=$TQ}OZ8+&xD8&KG~F$Np$mN^)SBH(3V8NFq6^u=v? zcY`P(5~9Z69~eRc2?U9f89hW1Uo6omf-ps8EP)saJ_uk*7(x9*&nXh|r1$gvJ>+FMa1h^lBdT~~Prz(ki< zmjdiUrDlK~_&dgO+UODij$%vg5K2Y*lGLJ<^W=u(BD;9@JX*uPl<$Ze!C=Ol)mH6E z<#-lLXW{kQ-P*)@ffpt48(on~xhf}d+-NawBFcGr=%Oorfcj8XF6*l3ku7#SE zU*0Tl!MLSR>^!oHZ<_c`|VrdhJ?immZmTjPYKbi(SKD05%4&zNvDFk_;mBArL< zP4|eFH!$q&oib7Tvwy&j9u+y(ZEt7tmFP2Yy_jF!+e|KcA>%abmbQwQ#5qfw#7j+T zZnswP#CSz#E7vQIPAAvvf}e1`A$AmSy;&Gbg!L5<;Eo@-%nnUwc&U!c7E1LjO-`y*?DvK)#I zDj)KSQ#@E4iwC3q1EK!l<79s%CI`a_h4Pv^93OF<aEJy%JHVD1m=lOa*MHAGVY(}DCae*KrFshQFH$k3SlL8 zQXdXS67`S2`^m8E<(H`Nds6se6@E-*5AWb(l_