Chame todas as APIs LLM usando o formato OpenAI [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq etc.]
LiteLLM gerencia:
completion
, embedding
e image_generation
do provedor['choices'][0]['message']['content']
Vá para a documentação do LiteLLM Proxy (LLM Gateway)
Vá para provedores de LLM com suporte
? Versão estável: use imagens docker com a tag -stable
. Estes foram submetidos a testes de carga de 12 horas, antes de serem publicados.
Suporte para mais provedores. Faltando um provedor ou plataforma LLM, faça uma solicitação de recurso.
Importante
LiteLLM v1.0.0 agora requer openai>=1.0.0
. Guia de migração aqui
LiteLLM v1.40.14+ agora requer pydantic>=2.0.0
. Não são necessárias alterações.
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 )
Chame qualquer modelo compatível com um provedor, com model=
. Pode haver detalhes específicos do provedor aqui, portanto consulte a documentação do provedor para obter mais informações
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 suporta streaming da resposta do modelo de volta, passe stream=True
para obter um iterador de streaming em resposta.
O streaming é compatível com todos os modelos (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 expõe retornos de chamada predefinidos para enviar dados para 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" }])
Acompanhe gastos + saldo de carga em vários projetos
Proxy hospedado (visualização)
O proxy fornece:
pip install ' litellm[proxy] '
$ litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000
Importante
Use LiteLLM Proxy com 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 )
Conecte o proxy a um banco de dados Postgres para criar chaves de 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 em /ui
no seu servidor proxy
Defina orçamentos e limites de taxas em vários projetos 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
}
Provedor | Conclusão | Transmissão | Conclusão assíncrona | Streaming assíncrono | Incorporação assíncrona | Geração de imagem assíncrona |
---|---|---|---|---|---|---|
aberto | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
azul | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
aws - criador de sábios | ✅ | ✅ | ✅ | ✅ | ✅ | |
aws - alicerce | ✅ | ✅ | ✅ | ✅ | ✅ | |
google - vértice_ai | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
google - palma | ✅ | ✅ | ✅ | ✅ | ||
Google AI Studio - gêmeos | ✅ | ✅ | ✅ | ✅ | ||
mistral ai api | ✅ | ✅ | ✅ | ✅ | ✅ | |
Trabalhadores de IA da cloudflare | ✅ | ✅ | ✅ | ✅ | ||
coerente | ✅ | ✅ | ✅ | ✅ | ✅ | |
antrópico | ✅ | ✅ | ✅ | ✅ | ||
capacitar | ✅ | ✅ | ✅ | ✅ | ||
abraço | ✅ | ✅ | ✅ | ✅ | ✅ | |
replicar | ✅ | ✅ | ✅ | ✅ | ||
juntos_ai | ✅ | ✅ | ✅ | ✅ | ||
roteador aberto | ✅ | ✅ | ✅ | ✅ | ||
ai21 | ✅ | ✅ | ✅ | ✅ | ||
base | ✅ | ✅ | ✅ | ✅ | ||
vllm | ✅ | ✅ | ✅ | ✅ | ||
nlp_cloud | ✅ | ✅ | ✅ | ✅ | ||
alefe alfa | ✅ | ✅ | ✅ | ✅ | ||
pétalas | ✅ | ✅ | ✅ | ✅ | ||
ollama | ✅ | ✅ | ✅ | ✅ | ✅ | |
deepinfra | ✅ | ✅ | ✅ | ✅ | ||
perplexidade-ai | ✅ | ✅ | ✅ | ✅ | ||
Grande IA | ✅ | ✅ | ✅ | ✅ | ||
Busca profunda | ✅ | ✅ | ✅ | ✅ | ||
qualquer escala | ✅ | ✅ | ✅ | ✅ | ||
IBM - watsonx.ai | ✅ | ✅ | ✅ | ✅ | ✅ | |
viagem ai | ✅ | |||||
xinference [Inferência de Xorbits] | ✅ | |||||
AmigávelAI | ✅ | ✅ | ✅ | ✅ |
Leia os documentos
Para contribuir: Clone o repositório localmente -> Faça uma alteração -> Envie um PR com a alteração.
Veja como modificar o repositório localmente: Etapa 1: clonar o repositório
git clone https://github.com/BerriAI/litellm.git
Etapa 2: navegue até o projeto e instale as dependências:
cd litellm
poetry install -E extra_proxy -E proxy
Etapa 3: teste sua alteração:
cd litellm/tests # pwd: Documents/litellm/litellm/tests
poetry run flake8
poetry run pytest .
Passo 4: Envie um PR com suas alterações! ?
Para empresas que precisam de melhor segurança, gerenciamento de usuários e suporte profissional
Fale com os fundadores
Isso abrange: