Astreus

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

1

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"  # Optional
2

Configuració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

FuncionalidadOpenAIClaudeGeminiOllama
Streaming
Llamadas a funcionesLimitadoLimitado
Visión
Embeddings
Uso de tokensLimitado
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-preview
  • gpt-4o-2024-08-06, gpt-4o-2024-05-13

Visión de Claude

  • claude-3-5-sonnet-20241022, claude-3-5-sonnet-20240620
  • claude-3-opus-20240229, claude-3-sonnet-20240229, claude-3-haiku-20240307

Visión de Gemini

  • gemini-1.5-pro, gemini-1.5-flash
  • gemini-1.0-pro-vision-latest, gemini-pro-vision

Visión de Ollama

  • llava, llava:7b, llava:13b, llava:34b
  • llava-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-004
  • embedding-001

Embeddings de Ollama

  • nomic-embed-text, mxbai-embed-large
  • all-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