Conector de modelo LiteLLM para agentes ADK¶
LiteLLM es una biblioteca de Python que actúa como una capa de traducción para modelos y servicios de alojamiento de modelos, proporcionando una interfaz estandarizada compatible con OpenAI para más de 100 LLMs. ADK proporciona integración a través de la biblioteca LiteLLM, permitiéndote acceder a una amplia gama de LLMs de proveedores como OpenAI, Anthropic (no Vertex AI), Cohere, y muchos otros. Puedes ejecutar modelos de código abierto localmente o auto-alojarlos e integrarlos usando LiteLLM para control operacional, ahorro de costos, privacidad, o casos de uso sin conexión.
Puedes usar la biblioteca LiteLLM para acceder a modelos de IA alojados de forma remota o local:
- Alojamiento remoto de modelos: Usa la clase wrapper
LiteLlmy establécela como el parámetromodeldeLlmAgent. - Alojamiento local de modelos: Usa la clase wrapper
LiteLlmconfigurada para apuntar a tu servidor de modelo local. Para ejemplos de soluciones de alojamiento local de modelos, consulta la documentación de Ollama o vLLM.
Codificación en Windows con LiteLLM
Al usar agentes ADK con LiteLLM en Windows, podrías encontrar un
UnicodeDecodeError. Este error ocurre porque LiteLLM puede intentar leer
archivos en caché usando la codificación predeterminada de Windows (cp1252) en lugar de UTF-8.
Prevén este error estableciendo la variable de entorno PYTHONUTF8 a
1. Esto fuerza a Python a usar UTF-8 para todas las operaciones de E/S de archivos.
Ejemplo (PowerShell):
Configuración¶
- Instalar LiteLLM:
-
Establecer Claves API del Proveedor: Configura las claves API como variables de entorno para los proveedores específicos que pretendes usar.
-
Ejemplo para OpenAI:
-
Ejemplo para Anthropic (no Vertex AI):
-
Consulta la Documentación de Proveedores de LiteLLM para los nombres correctos de variables de entorno para otros proveedores.
-
Ejemplo de implementación¶
from google.adk.agents import LlmAgent
from google.adk.models.lite_llm import LiteLlm
# --- Agente de Ejemplo usando GPT-4o de OpenAI ---
# (Requiere OPENAI_API_KEY)
agent_openai = LlmAgent(
model=LiteLlm(model="openai/gpt-4o"), # Formato de cadena de modelo LiteLLM
name="openai_agent",
instruction="You are a helpful assistant powered by GPT-4o.",
# ... otros parámetros del agente
)
# --- Agente de Ejemplo usando Claude Haiku de Anthropic (no Vertex) ---
# (Requiere ANTHROPIC_API_KEY)
agent_claude_direct = LlmAgent(
model=LiteLlm(model="anthropic/claude-3-haiku-20240307"),
name="claude_direct_agent",
instruction="You are an assistant powered by Claude Haiku.",
# ... otros parámetros del agente
)