Astreus

LLM

Interface unificada para múltiplos provedores de LLM com roteamento automático Aprenda os padrões de configuração, as APIs e os exemplos práticos...

Interface unificada para múltiplos provedores de LLM com roteamento automático

Visão Geral

A camada de abstração de LLM fornece integração perfeita com múltiplos provedores de IA, permitindo alternar entre OpenAI, Claude, Gemini e Ollama sem alterar seu código. Ela lida com implementações específicas de cada provedor, formatação de mensagens e streaming, fornecendo uma API consistente entre todos os provedores.

Provedores Suportados

O Astreus suporta quatro principais provedores de LLM com roteamento automático de modelo:

OpenAI

Todos os 14 modelos suportados:

  • Mais recentes: gpt-4.5, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o4-mini, o4-mini-high, o3
  • Estáveis: gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-3.5-turbo-instruct
  • Chave de API: Defina a variável de ambiente OPENAI_API_KEY

Anthropic Claude

Todos os 9 modelos suportados:

  • Mais recentes: claude-sonnet-4-20250514, claude-opus-4-20250514, claude-3.7-sonnet-20250224
  • Estáveis: 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
  • Chave de API: Defina a variável de ambiente ANTHROPIC_API_KEY

Google Gemini

Todos os 12 modelos suportados:

  • Mais recentes: gemini-2.5-pro, gemini-2.5-pro-deep-think, gemini-2.5-flash, gemini-2.5-flash-lite
  • Estáveis: 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
  • Chave de API: Defina a variável de ambiente GEMINI_API_KEY

Ollama (Local)

Todos os 31 modelos suportados:

  • Mais recentes: 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
  • Adicionais: dolphin-mistral, openhermes, deepcoder, stable-code, wizardcoder, magicoder, solar, yi, zephyr, orca-mini, vicuna
  • Configuração: Defina OLLAMA_BASE_URL (padrão: http://localhost:11434)

Configuração

1

Variáveis de Ambiente

Configure suas chaves de API e configurações:

# 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

Configuração do Agente

Especifique o modelo ao criar 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
});

Exemplos de Uso

Uso Básico do 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);

Respostas em 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);
  }
}

Chamada de Funções

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}`);
  });
}

Opções do LLM

Configure o comportamento do LLM com estas opções:

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
}

Detalhes dos Parâmetros

  • temperature: Controla a aleatoriedade (0.0 = determinístico, 1.0 = muito criativo)
  • maxTokens: Número máximo de tokens na resposta (varia de acordo com o modelo)
  • stream: Habilita streaming em tempo real para respostas longas
  • systemPrompt: Define o comportamento e o contexto do modelo
  • tools: Habilita capacidades de chamada de função

Recursos por Provedor

FeatureOpenAIClaudeGeminiOllama
Streaming
Function CallingLimitadoLimitado
Vision
Embeddings
Token UsageLimitado
Custom Base URL
Local Models

Modelos de Visão

Cada provedor suporta modelos específicos para análise de imagens:

OpenAI Vision

  • gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4-vision-preview
  • gpt-4o-2024-08-06, gpt-4o-2024-05-13

Claude Vision

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

Gemini Vision

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

Ollama Vision

  • llava, llava:7b, llava:13b, llava:34b
  • llava-llama3, llava-phi3, moondream

Modelos de Embedding

Para base de conhecimento e busca semântica:

OpenAI Embeddings

  • text-embedding-3-large (3072 dimensões)
  • text-embedding-3-small (1536 dimensões)
  • text-embedding-ada-002 (1536 dimensões)

Gemini Embeddings

  • text-embedding-004
  • embedding-001

Ollama Embeddings

  • nomic-embed-text, mxbai-embed-large
  • all-minilm, snowflake-arctic-embed

Nota: Claude/Anthropic não suporta embeddings. Use OpenAI ou Gemini para geração de embeddings.

Variáveis de Ambiente Adicionais

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

Guia de Seleção de Modelo

Para Geração de Código

  • Melhores: gpt-4o, claude-3-5-sonnet-20241022, deepseek-coder
  • Rápidos: gpt-4o-mini, claude-3-5-haiku-20241022

Para Tarefas de Raciocínio

  • Melhores: claude-opus-4-20250514, gpt-4.5, o3
  • Equilibrados: claude-sonnet-4-20250514, gpt-4o

Para Escrita Criativa

  • Melhores: gpt-4.5, claude-3-opus-20240229
  • Rápidos: gemini-2.5-pro, gpt-4o-mini

Para Privacidade/Uso Local

  • Melhores: deepseek-r1, llama3.3, qwen3
  • Código: deepseek-coder, codellama

Última atualização: 6 de julho de 2026