From 5b6b9a9fab619a4f1495ea591c86a2bd30e57dba Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Wed, 13 Sep 2023 13:44:46 -0700 Subject: [PATCH] huggingface conversational task support --- litellm/__pycache__/main.cpython-311.pyc | Bin 32824 -> 32927 bytes litellm/__pycache__/utils.cpython-311.pyc | Bin 101068 -> 101105 bytes litellm/llms/huggingface_restapi.py | 103 ++++++++++++++-------- litellm/main.py | 5 +- litellm/tests/test_completion.py | 3 +- litellm/utils.py | 2 + pyproject.toml | 2 +- 7 files changed, 75 insertions(+), 40 deletions(-) diff --git a/litellm/__pycache__/main.cpython-311.pyc b/litellm/__pycache__/main.cpython-311.pyc index d4386ac9ceb4fc5dc2a7fbe5c9601b5ab284f08c..45a2b185e8a9a7aa124e40cad18f7630f161435d 100644 GIT binary patch delta 7469 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 X49UEfY0}R+66vZ0d9LfxPx=1=eX-QK delta 7349 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 delta 4666 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