Home
Login

Gateway unificado para chamadas de API LLM, suporta mais de 100 provedores de modelos de linguagem grandes com chamadas em formato OpenAI

NOASSERTIONPython 24.4kBerriAI Last Updated: 2025-06-21

LiteLLM - Gateway Unificado para Chamadas de API de Grandes Modelos de Linguagem

Visão Geral do Projeto

LiteLLM é um SDK Python de código aberto e um servidor proxy (gateway LLM) que permite chamar mais de 100 APIs de grandes modelos de linguagem no formato OpenAI, incluindo os principais fornecedores como Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropic, Sagemaker, HuggingFace, Replicate, Groq, entre outros.

Endereço do GitHub: https://github.com/BerriAI/litellm

Funcionalidades Principais

1. Formato de API Unificado

  • Padronização do Formato de Entrada: Converte a entrada de todos os fornecedores para um formato unificado.
  • Consistência do Formato de Saída: A resposta de texto está sempre disponível em ['choices'][0]['message']['content'].
  • Suporte a Múltiplos Endpoints: Suporta endpoints de completion, embedding e image_generation.

2. Garantia de Alta Disponibilidade

  • Lógica de Retentativa/Fallback: Suporta retentativas e fallbacks automáticos entre múltiplas implementações (como Azure/OpenAI).
  • Funcionalidade de Roteamento: Roteamento inteligente para o melhor modelo disponível.
  • Balanceamento de Carga: Distribui a carga de requisições entre múltiplas implementações.

3. Controle de Custos e Permissões

  • Gestão de Orçamento: Define limites de orçamento por projeto, chave de API, modelo.
  • Limitação de Taxa: Impede o uso excessivo de chamadas de API.
  • Rastreamento de Uso: Estatísticas detalhadas de chamadas e análise de custos.

Principais Características

Exemplos de Uso do SDK Python

Chamada Básica

from litellm import completion
import os


os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

messages = [{"content": "Hello, how are you?", "role": "user"}]

# OpenAI
response = completion(model="openai/gpt-4o", messages=messages)

# Anthropic
response = completion(model="anthropic/claude-3-sonnet-20240229", messages=messages)

Suporte a Chamadas Assíncronas

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="openai/gpt-4o", messages=messages)
    return response

response = asyncio.run(test_get_response())

Resposta em Streaming

from litellm import completion

response = completion(model="openai/gpt-4o", messages=messages, stream=True)
for part in response:
    print(part.choices[0].delta.content or "")

Funcionalidade de Servidor Proxy

Início Rápido

pip install 'litellm[proxy]'
litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000

Chamada do Cliente

import openai

client = openai.OpenAI(
    api_key="anything",
    base_url="http://0.0.0.0:4000"
)

response = client.chat.completions.create(
    model="gpt-3.5-turbo", 
    messages=[{
        "role": "user",
        "content": "this is a test request, write a short poem"
    }]
)

Fornecedores Suportados

LiteLLM suporta mais de 30 principais fornecedores de LLM, incluindo:

Provedores de Serviços de Nuvem Principais

  • OpenAI - Modelos da série GPT
  • Azure - Serviço Azure OpenAI
  • AWS - Bedrock e SageMaker
  • Google - Vertex AI, PaLM, Gemini
  • Anthropic - Modelos da série Claude

Plataformas de Código Aberto e Profissionais

  • HuggingFace - Hospedagem de modelos de código aberto
  • Replicate - Serviço de API de modelos
  • Together AI - Inferência de modelos de código aberto
  • Groq - Chip de inferência de alta velocidade
  • Ollama - Execução de modelos localmente

Plataformas de Funcionalidades Específicas

  • Cohere - NLP de nível empresarial
  • AI21 - Modelo Jurassic
  • Perplexity - Geração aprimorada por pesquisa
  • DeepInfra - Inferência de alto desempenho

Observabilidade e Registro

LiteLLM possui suporte integrado para várias plataformas de monitoramento e registro:

import litellm
import os


os.environ["LUNARY_PUBLIC_KEY"] = "your-lunary-public-key"
os.environ["HELICONE_API_KEY"] = "your-helicone-auth-key"
os.environ["LANGFUSE_PUBLIC_KEY"] = "your-langfuse-public-key"


litellm.success_callback = [
    "lunary", "mlflow", "langfuse", 
    "athina", "helicone"
]


response = completion(
    model="openai/gpt-4o", 
    messages=[{"role": "user", "content": "Hi 👋"}]
)

Plataformas de monitoramento suportadas:

  • Lunary - Monitoramento de aplicações LLM
  • MLflow - Rastreamento de experimentos de aprendizado de máquina
  • Langfuse - Rastreamento de aplicações LLM
  • Helicone - Monitoramento de chamadas de API
  • Athina - Avaliação de aplicações de IA

Funcionalidades de Nível Empresarial

Sistema de Gerenciamento de Chaves


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": "user@company.com", 
      "team": "core-infra"
    }
  }'

Implantação com Docker


git clone https://github.com/BerriAI/litellm
cd litellm


echo 'LITELLM_MASTER_KEY="sk-1234"' > .env
echo 'LITELLM_SALT_KEY="your-salt-key"' > .env


docker-compose up

Interface de Gerenciamento Web

  • Acesse /ui para obter uma interface de gerenciamento visual
  • Defina orçamentos e limites de taxa para múltiplos projetos
  • Monitore o uso da API em tempo real
  • Gerenciamento de usuários e equipes

Especificações Técnicas

Requisitos do Sistema

  • Versão do Python: Requer Python 3.7+
  • Requisitos de Dependência:
    • openai>=1.0.0 (v1.0.0+ é obrigatório)
    • pydantic>=2.0.0 (v1.40.14+ é obrigatório)

Padrões de Qualidade do Código

  • Estilo de Código: Segue o guia de estilo Python do Google
  • Ferramentas de Formatação: Usa Black e isort
  • Verificação de Tipos: MyPy e Pyright
  • Verificação de Código: Ruff para verificação de lint

Garantia de Estabilidade

  • Versão Estável: Use imagens Docker com a tag -stable
  • Teste de Carga: Teste de carga de 12 horas antes do lançamento
  • Integração Contínua: Processo completo de CI/CD

Suporte Comercial

Recursos da Versão Empresarial

  • Recursos Avançados de Segurança: Integração de Single Sign-On (SSO)
  • Suporte Profissional: Suporte dedicado no Discord e Slack
  • Integração Personalizada: Integração personalizada de fornecedores de LLM
  • Garantia de SLA: Acordo de Nível de Serviço
  • Prioridade de Recursos: Desenvolvimento prioritário de recursos solicitados por empresas

Suporte da Comunidade

  • GitHub Issues: Solicitações de recursos e relatórios de problemas
  • Comunidade Discord: Comunicação e suporte em tempo real
  • Documentação Completa: Documentação detalhada da API e tutoriais

Casos de Uso

1. Implantação de LLM Multi-Cloud

  • Evite o bloqueio de fornecedores
  • Implemente chamadas de modelos entre plataformas
  • Reduza os custos de migração

2. Otimização de Custos

  • Roteamento inteligente para o modelo disponível mais barato
  • Controle de orçamento e monitoramento de uso
  • Otimização de chamadas de API em lote

3. Arquitetura de Alta Disponibilidade

  • Failover automático
  • Balanceamento de carga
  • Suporte para implantação em múltiplas regiões

4. Aumento da Eficiência do Desenvolvimento

  • Interface de API unificada
  • Troca simplificada de modelos
  • Suporte rico de SDK

Instalação e Início Rápido

Instalação Básica

pip install litellm

Instalação do Servidor Proxy

pip install 'litellm[proxy]'

Configuração do Ambiente de Desenvolvimento


git clone https://github.com/BerriAI/litellm
cd litellm


python -m venv .venv
source .venv/bin/activate


pip install -e ".[all]"


uvicorn litellm.proxy.proxy_server:app --host localhost --port 4000 --reload

Resumo

LiteLLM foi adotado por empresas renomadas como Rocket Money, Samsara, Lemonade e Adobe. Ao fornecer uma interface de API unificada, funcionalidades de roteamento poderosas e recursos de gerenciamento de nível empresarial, simplifica significativamente a complexidade do gerenciamento de ambientes multi-LLM, sendo a escolha ideal para o desenvolvimento de aplicações de IA modernas.