Appelez toutes les API LLM en utilisant le format OpenAI [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq etc.]
LiteLLM gère :
completion
, embedding
et image_generation
du fournisseur['choices'][0]['message']['content']
Accéder à la documentation du proxy LiteLLM (passerelle LLM)
Accédez aux fournisseurs LLM pris en charge
? Version stable : utilisez des images Docker avec la balise -stable
. Ceux-ci ont subi des tests de charge de 12 heures avant d'être publiés.
Prise en charge de plus de fournisseurs. Il manque un fournisseur ou une plateforme LLM, faites une demande de fonctionnalité.
Important
LiteLLM v1.0.0 nécessite désormais openai>=1.0.0
. Guide de migration ici
LiteLLM v1.40.14+ nécessite désormais pydantic>=2.0.0
. Aucune modification requise.
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 )
Appelez n’importe quel modèle pris en charge par un fournisseur, avec model=
. Il peut y avoir des détails spécifiques au fournisseur ici, alors reportez-vous aux documents du fournisseur pour plus d'informations
from litellm import acompletion
import asyncio
async def test_get_response ():
user_message = "Hello, how are you?"
messages = [{ "content" : user_message , "role" : "user" }]
response = await acompletion ( model = "gpt-3.5-turbo" , messages = messages )
return response
response = asyncio . run ( test_get_response ())
print ( response )
liteLLM prend en charge la diffusion en continu de la réponse du modèle, passez stream=True
pour obtenir un itérateur de diffusion en continu en réponse.
Le streaming est pris en charge pour tous les modèles (Bedrock, Huggingface, TogetherAI, Azure, OpenAI, etc.)
from litellm import completion
response = completion ( model = "gpt-3.5-turbo" , messages = messages , stream = True )
for part in response :
print ( part . choices [ 0 ]. delta . content or "" )
# claude 2
response = completion ( 'claude-2' , messages , stream = True )
for part in response :
print ( part . choices [ 0 ]. delta . content or "" )
LiteLLM expose des rappels prédéfinis pour envoyer des données à Lunary, Langfuse, DynamoDB, s3 Buckets, Helicone, Promptlayer, Traceloop, Athina, Slack
from litellm import completion
## set env variables for logging tools
os . environ [ "LUNARY_PUBLIC_KEY" ] = "your-lunary-public-key"
os . environ [ "HELICONE_API_KEY" ] = "your-helicone-auth-key"
os . environ [ "LANGFUSE_PUBLIC_KEY" ] = ""
os . environ [ "LANGFUSE_SECRET_KEY" ] = ""
os . environ [ "ATHINA_API_KEY" ] = "your-athina-api-key"
os . environ [ "OPENAI_API_KEY" ]
# set callbacks
litellm . success_callback = [ "lunary" , "langfuse" , "athina" , "helicone" ] # log input/output to lunary, langfuse, supabase, athina, helicone etc
#openai call
response = completion ( model = "gpt-3.5-turbo" , messages = [{ "role" : "user" , "content" : "Hi ? - i'm openai" }])
Suivez les dépenses et l'équilibre de charge sur plusieurs projets
Proxy hébergé (aperçu)
Le proxy fournit :
pip install ' litellm[proxy] '
$ litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000
Important
Utilisez le proxy LiteLLM avec Langchain (Python, JS), OpenAI SDK (Python, JS), Anthropic SDK, Mistral SDK, LlamaIndex, Instructor, Curl
import openai # openai v1.0.0+
client = openai . OpenAI ( api_key = "anything" , base_url = "http://0.0.0.0:4000" ) # set proxy to base_url
# request sent to model set on litellm proxy, `litellm --model`
response = client . chat . completions . create ( model = "gpt-3.5-turbo" , messages = [
{
"role" : "user" ,
"content" : "this is a test request, write a short poem"
}
])
print ( response )
Connectez le proxy à une base de données Postgres pour créer des clés proxy
# Get the code
git clone https://github.com/BerriAI/litellm
# Go to folder
cd litellm
# Add the master key - you can change this after setup
echo ' LITELLM_MASTER_KEY="sk-1234" ' > .env
# Add the litellm salt key - you cannot change this after adding a model
# It is used to encrypt / decrypt your LLM API Key credentials
# We recommned - https://1password.com/password-generator/
# password generator to get a random hash for litellm salt key
echo ' LITELLM_SALT_KEY="sk-1234" ' > .env
source .env
# Start
docker-compose up
UI sur /ui
sur votre serveur proxy
Définir des budgets et des limites de taux sur plusieurs projets POST /key/generate
curl ' http://0.0.0.0:4000/key/generate '
--header ' Authorization: Bearer sk-1234 '
--header ' Content-Type: application/json '
--data-raw ' {"models": ["gpt-3.5-turbo", "gpt-4", "claude-2"], "duration": "20m","metadata": {"user": "[email protected]", "team": "core-infra"}} '
{
" key " : " sk-kdEXbIqZRwEeEiHwdg7sFA " , # Bearer token
" expires " : " 2023-11-19T01:38:25.838000+00:00 " # datetime object
}
Fournisseur | Achèvement | Streaming | Achèvement asynchrone | Streaming asynchrone | Incorporation asynchrone | Génération d'images asynchrones |
---|---|---|---|---|---|---|
ouvert | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
azuré | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
aws - faiseur de sages | ✅ | ✅ | ✅ | ✅ | ✅ | |
aws - substrat rocheux | ✅ | ✅ | ✅ | ✅ | ✅ | |
google-vertex_ai | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
google - paume | ✅ | ✅ | ✅ | ✅ | ||
Google AI Studio - Gémeaux | ✅ | ✅ | ✅ | ✅ | ||
mistral ai api | ✅ | ✅ | ✅ | ✅ | ✅ | |
Travailleurs de l'IA cloudflare | ✅ | ✅ | ✅ | ✅ | ||
adhérer | ✅ | ✅ | ✅ | ✅ | ✅ | |
anthropique | ✅ | ✅ | ✅ | ✅ | ||
habiliter | ✅ | ✅ | ✅ | ✅ | ||
visage étreignant | ✅ | ✅ | ✅ | ✅ | ✅ | |
reproduire | ✅ | ✅ | ✅ | ✅ | ||
ensemble_ai | ✅ | ✅ | ✅ | ✅ | ||
routeur ouvert | ✅ | ✅ | ✅ | ✅ | ||
ai21 | ✅ | ✅ | ✅ | ✅ | ||
baseten | ✅ | ✅ | ✅ | ✅ | ||
vllm | ✅ | ✅ | ✅ | ✅ | ||
nlp_cloud | ✅ | ✅ | ✅ | ✅ | ||
aleph alpha | ✅ | ✅ | ✅ | ✅ | ||
pétales | ✅ | ✅ | ✅ | ✅ | ||
ollama | ✅ | ✅ | ✅ | ✅ | ✅ | |
infrarouge profond | ✅ | ✅ | ✅ | ✅ | ||
perplexité-ai | ✅ | ✅ | ✅ | ✅ | ||
IA Groq | ✅ | ✅ | ✅ | ✅ | ||
Recherche profonde | ✅ | ✅ | ✅ | ✅ | ||
à toute échelle | ✅ | ✅ | ✅ | ✅ | ||
IBM - watsonx.ai | ✅ | ✅ | ✅ | ✅ | ✅ | |
voyage ai | ✅ | |||||
xinférence [Inférence Xorbits] | ✅ | |||||
FriendliAI | ✅ | ✅ | ✅ | ✅ |
Lire les documents
Pour contribuer : clonez le dépôt localement -> Effectuez une modification -> Soumettez un PR avec la modification.
Voici comment modifier le dépôt localement : Étape 1 : Cloner le dépôt
git clone https://github.com/BerriAI/litellm.git
Étape 2 : Accédez au projet et installez les dépendances :
cd litellm
poetry install -E extra_proxy -E proxy
Étape 3 : Testez votre modification :
cd litellm/tests # pwd: Documents/litellm/litellm/tests
poetry run flake8
poetry run pytest .
Étape 4 : Soumettez un PR avec vos modifications ! ?
Pour les entreprises qui ont besoin d'une meilleure sécurité, d'une meilleure gestion des utilisateurs et d'un support professionnel
Parlez aux fondateurs
Cela couvre :