deepinfra/litellm
forked from BerriAI/litellm
Captured source
source ↗deepinfra/litellm
Description: Call all LLM APIs using the OpenAI format. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs)
License: MIT
Stars: 0
Forks: 0
Open issues: 0
Created: 2023-10-18T16:41:28Z
Pushed: 2024-01-08T16:54:36Z
Default branch: main
Fork: yes
Parent repository: BerriAI/litellm
Archived: no
README:
🚅 LiteLLM
Call all LLM APIs using the OpenAI format [Anthropic, Huggingface, Cohere, TogetherAI, Azure, OpenAI, etc.]
Schedule Demo · Feature Request
Docs 100+ Supported Models Demo Video
LiteLLM manages
- Translating inputs to the provider's completion and embedding endpoints
- Guarantees consistent output, text responses will always be available at
['choices'][0]['message']['content'] - Exception mapping - common exceptions across providers are mapped to the OpenAI exception types.
10/05/2023: LiteLLM is adopting Semantic Versioning for all commits. Learn more 10/16/2023: Self-hosted OpenAI-proxy server Learn more
Usage
pip install litellm
from litellm import completion
import os
## set ENV variables
os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["COHERE_API_KEY"] = "your-cohere-key"
messages = [{ "content": "Hello, how are you?","role": "user"}]
# openai call
response = completion(model="gpt-3.5-turbo", messages=messages)
# cohere call
response = completion(model="command-nightly", messages=messages)
print(response)Streaming (Docs)
liteLLM supports streaming the model response back, pass stream=True to get a streaming iterator in response. Streaming is supported for OpenAI, Azure, Anthropic, Huggingface models
response = completion(model="gpt-3.5-turbo", messages=messages, stream=True)
for chunk in response:
print(chunk['choices'][0]['delta'])
# claude 2
result = completion('claude-2', messages, stream=True)
for chunk in result:
print(chunk['choices'][0]['delta'])OpenAI Proxy Server (Docs)
Create an OpenAI API compatible server to call any non-openai model (e.g. Huggingface, TogetherAI, Ollama, etc.)
This works for async + streaming as well.
litellm --model #INFO: litellm proxy running on http://0.0.0.0:8000
Running your model locally or on a custom endpoint ? Set the --api-base parameter see how
Self-host server (Docs)
1. Clone the repo
git clone https://github.com/BerriAI/litellm.git
2. Modify template_secrets.toml
[keys] OPENAI_API_KEY="sk-..." [general] default_model = "gpt-3.5-turbo"
3. Deploy
docker build -t litellm . && docker run -p 8000:8000 litellm
Supported Provider (Docs)
| Provider | Completion | Streaming | Async Completion | Async Streaming | | ------------- | ------------- | ------------- | ------------- | ------------- | | openai | ✅ | ✅ | ✅ | ✅ | | cohere | ✅ | ✅ | ✅ | ✅ | | anthropic | ✅ | ✅ | ✅ | ✅ | | replicate | ✅ | ✅ | ✅ | ✅ | | huggingface | ✅ | ✅ | ✅ | ✅ | | together_ai | ✅ | ✅ | ✅ | ✅ | | openrouter | ✅ | ✅ | ✅ | ✅ | | vertex_ai | ✅ | ✅ | ✅ | ✅ | | palm | ✅ | ✅ | ✅ | ✅ | | ai21 | ✅ | ✅ | ✅ | ✅ | | baseten | ✅ | ✅ | ✅ | ✅ | | azure | ✅ | ✅ | ✅ | ✅ | | sagemaker | ✅ | ✅ | ✅ | ✅ | | bedrock | ✅ | ✅ | ✅ | ✅ | | vllm | ✅ | ✅ | ✅ | ✅ | | nlp_cloud | ✅ | ✅ | ✅ | ✅ | | aleph alpha | ✅ | ✅ | ✅ | ✅ | | petals | ✅ | ✅ | ✅ | ✅ | | ollama | ✅ | ✅ | ✅ | ✅ | | deepinfra | ✅ | ✅ | ✅ | ✅ |
Logging Observability - Log LLM Input/Output (Docs)
LiteLLM exposes pre defined callbacks to send data to LLMonitor, Langfuse, Helicone, Promptlayer, Traceloop, Slack
from litellm import completion
## set env variables for logging tools
os.environ["PROMPTLAYER_API_KEY"] = "your-promptlayer-key"
os.environ["LLMONITOR_APP_ID"] = "your-llmonitor-app-id"
os.environ["OPENAI_API_KEY"]
# set callbacks
litellm.success_callback = ["promptlayer", "llmonitor"] # log input/output to promptlayer, llmonitor, supabase
#openai call
response = completion(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hi 👋 - i'm openai"}])Contributing
To contribute: Clone the repo locally -> Make a change -> Submit a PR with the change.
Here's how to modify the repo locally: Step 1: Clone the repo
git clone https://github.com/BerriAI/litellm.git
Step 2: Navigate into the project, and install dependencies:
cd litellm poetry install
Step 3: Test your change:
cd litellm/tests # pwd: Documents/litellm/litellm/tests pytest .
Step 4: Submit a PR with your changes! 🚀
- push your fork to your GitHub repo
- submit a PR from there
Support / talk with founders
- Schedule Demo 👋
- [Community Discord…
Excerpt shown — open the source for the full document.