LLM
Interfaz unificada para múltiples proveedores de LLM con enrutamiento automático Aprende los patrones de configuración, las APIs y los ejemplos prácticos...
Interfaz unificada para múltiples proveedores de LLM con enrutamiento automático
Descripción general
La capa de abstracción LLM proporciona una integración fluida con múltiples proveedores de IA, permitiéndote cambiar entre OpenAI, Claude, Gemini y Ollama sin modificar tu código. Se encarga de las implementaciones específicas de cada proveedor, del formateo de mensajes y del streaming, ofreciendo una API coherente en todos los proveedores.
Proveedores soportados
Astreus soporta cuatro grandes proveedores de LLM con enrutamiento automático de modelos:
OpenAI
Los 14 modelos soportados:
- Últimos:
gpt-4.5,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o4-mini,o4-mini-high,o3 - Estables:
gpt-4o,gpt-4o-mini,gpt-4-turbo,gpt-4,gpt-3.5-turbo,gpt-3.5-turbo-16k,gpt-3.5-turbo-instruct - Clave de API: define la variable de entorno
OPENAI_API_KEY
Anthropic Claude
Los 9 modelos soportados:
- Últimos:
claude-sonnet-4-20250514,claude-opus-4-20250514,claude-3.7-sonnet-20250224 - Estables:
claude-3-5-sonnet-20241022,claude-3-5-sonnet-20240620,claude-3-5-haiku-20241022,claude-3-opus-20240229,claude-3-sonnet-20240229,claude-3-haiku-20240307 - Clave de API: define la variable de entorno
ANTHROPIC_API_KEY
Google Gemini
Los 12 modelos soportados:
- Últimos:
gemini-2.5-pro,gemini-2.5-pro-deep-think,gemini-2.5-flash,gemini-2.5-flash-lite - Estables:
gemini-2.0-flash,gemini-2.0-flash-thinking,gemini-2.0-flash-lite,gemini-2.0-pro-experimental,gemini-1.5-pro,gemini-1.5-flash,gemini-1.5-flash-8b,gemini-pro - Clave de API: define la variable de entorno
GEMINI_API_KEY
Ollama (local)
Los 31 modelos soportados:
- Últimos:
deepseek-r1,deepseek-v3,deepseek-v2.5,deepseek-coder,deepseek-coder-v2,qwen3,qwen2.5-coder,llama3.3,gemma3,phi4 - Populares:
mistral-small,codellama,llama3.2,llama3.1,qwen2.5,gemma2,phi3,mistral,codegemma,wizardlm2 - Adicionales:
dolphin-mistral,openhermes,deepcoder,stable-code,wizardcoder,magicoder,solar,yi,zephyr,orca-mini,vicuna - Configuración: define
OLLAMA_BASE_URL(por defecto:http://localhost:11434)
Configuración
Variables de entorno
Configura tus claves de API y ajustes:
# OpenAI
export OPENAI_API_KEY="your-openai-key"
export OPENAI_BASE_URL="https://api.openai.com/v1" # Optional
# Anthropic Claude
export ANTHROPIC_API_KEY="your-anthropic-key"
export ANTHROPIC_BASE_URL="https://api.anthropic.com" # Optional
# Google Gemini
export GEMINI_API_KEY="your-gemini-key"
# Ollama (Local)
export OLLAMA_BASE_URL="http://localhost:11434" # OptionalConfiguración del agente
Especifica el modelo al crear los agentes:
import { Agent } from '@astreus-ai/astreus';
const agent = await Agent.create({
name: 'MyAgent',
model: 'gpt-4.5', // Model automatically routes to correct provider
temperature: 0.7,
maxTokens: 2000
});Ejemplos de uso
Uso básico del LLM
import { getLLM } from '@astreus-ai/astreus';
const llm = getLLM();
// Generate response
const response = await llm.generateResponse({
model: 'claude-sonnet-4-20250514',
messages: [{ role: 'user', content: 'Explain quantum computing' }],
temperature: 0.7,
maxTokens: 1000
});
console.log(response.content);Respuestas en streaming
// Stream response in real-time
for await (const chunk of llm.generateStreamResponse({
model: 'gpt-4.5',
messages: [{ role: 'user', content: 'Write a story about AI' }],
stream: true
})) {
if (!chunk.done) {
process.stdout.write(chunk.content);
}
}Llamadas a funciones
const response = await llm.generateResponse({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'What\'s the weather in Tokyo?' }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
description: 'Get current weather information',
parameters: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'City name'
}
},
required: ['location']
}
}
}]
});
// Handle tool calls
if (response.toolCalls) {
response.toolCalls.forEach(call => {
console.log(`Tool: ${call.function.name}`);
console.log(`Args: ${call.function.arguments}`);
});
}Opciones del LLM
Configura el comportamiento del LLM con estas opciones:
interface LLMRequestOptions {
model: string; // Required: Model identifier
messages: LLMMessage[]; // Required: Conversation history
temperature?: number; // Creativity level (0.0-1.0, default: 0.7)
maxTokens?: number; // Max output tokens (default: 4096)
stream?: boolean; // Enable streaming responses
systemPrompt?: string; // System instructions
tools?: Tool[]; // Function calling tools
}Detalle de los parámetros
- temperature: controla la aleatoriedad (0.0 = determinista, 1.0 = muy creativo)
- maxTokens: número máximo de tokens en la respuesta (varía según el modelo)
- stream: habilita el streaming en tiempo real para respuestas largas
- systemPrompt: establece el comportamiento y el contexto del modelo
- tools: habilita las capacidades de llamada a funciones
Funcionalidades por proveedor
| Funcionalidad | OpenAI | Claude | Gemini | Ollama |
|---|---|---|---|---|
| Streaming | ✅ | ✅ | ✅ | ✅ |
| Llamadas a funciones | ✅ | ✅ | Limitado | Limitado |
| Visión | ✅ | ✅ | ✅ | ✅ |
| Embeddings | ✅ | ❌ | ✅ | ✅ |
| Uso de tokens | ✅ | ✅ | Limitado | ✅ |
| URL base personalizada | ✅ | ✅ | ❌ | ✅ |
| Modelos locales | ❌ | ❌ | ❌ | ✅ |
Modelos de visión
Cada proveedor soporta modelos específicos para el análisis de imágenes:
Visión de OpenAI
gpt-4o,gpt-4o-mini,gpt-4-turbo,gpt-4-vision-previewgpt-4o-2024-08-06,gpt-4o-2024-05-13
Visión de Claude
claude-3-5-sonnet-20241022,claude-3-5-sonnet-20240620claude-3-opus-20240229,claude-3-sonnet-20240229,claude-3-haiku-20240307
Visión de Gemini
gemini-1.5-pro,gemini-1.5-flashgemini-1.0-pro-vision-latest,gemini-pro-vision
Visión de Ollama
llava,llava:7b,llava:13b,llava:34bllava-llama3,llava-phi3,moondream
Modelos de embedding
Para la base de conocimiento y la búsqueda semántica:
Embeddings de OpenAI
text-embedding-3-large(3072 dimensiones)text-embedding-3-small(1536 dimensiones)text-embedding-ada-002(1536 dimensiones)
Embeddings de Gemini
text-embedding-004embedding-001
Embeddings de Ollama
nomic-embed-text,mxbai-embed-largeall-minilm,snowflake-arctic-embed
Nota: Claude/Anthropic no soporta embeddings. Usa OpenAI o Gemini para la generación de embeddings.
Variables de entorno adicionales
# Dedicated embedding API keys (optional)
OPENAI_EMBEDDING_API_KEY="your-embedding-key"
OPENAI_EMBEDDING_BASE_URL="https://api.openai.com/v1"
GEMINI_EMBEDDING_API_KEY="your-gemini-embedding-key"
# Dedicated vision API keys (optional)
OPENAI_VISION_API_KEY="your-vision-key"
OPENAI_VISION_BASE_URL="https://api.openai.com/v1"
ANTHROPIC_VISION_API_KEY="your-anthropic-vision-key"
ANTHROPIC_VISION_BASE_URL="https://api.anthropic.com"
GEMINI_VISION_API_KEY="your-gemini-vision-key"Guía de selección de modelos
Para generación de código
- Mejor:
gpt-4o,claude-3-5-sonnet-20241022,deepseek-coder - Rápido:
gpt-4o-mini,claude-3-5-haiku-20241022
Para tareas de razonamiento
- Mejor:
claude-opus-4-20250514,gpt-4.5,o3 - Equilibrado:
claude-sonnet-4-20250514,gpt-4o
Para escritura creativa
- Mejor:
gpt-4.5,claude-3-opus-20240229 - Rápido:
gemini-2.5-pro,gpt-4o-mini
Para privacidad/uso local
- Mejor:
deepseek-r1,llama3.3,qwen3 - Código:
deepseek-coder,codellama
Última actualización: 6 de julio de 2026
En esta sección
Introducción
Framework de agentes de IA de código abierto para construir sistemas autónomos que resuelven tareas del mundo real de forma eficaz.
Instalación
Instala Astreus con npm, yarn o pnpm, confirma la versión de Node.js requerida y prepara un proyecto local para construir agentes de IA con el framework.
Inicio rápido
Construye tu primer agente de IA con Astreus en menos de 2 minutos Aprende los patrones de configuración, las APIs y los ejemplos prácticos necesarios para...
Agente
Entidad de IA principal con capacidades modulares y composición basada en decoradores Aprende los patrones de configuración, las APIs y los ejemplos...