Astreus

LLM

Interface unifiée pour plusieurs fournisseurs de LLM avec routage automatique Découvrez les schémas de configuration, les API et les exemples pratiques...

Interface unifiée pour plusieurs fournisseurs de LLM avec routage automatique

Vue d'ensemble

La couche d'abstraction LLM offre une intégration transparente avec plusieurs fournisseurs d'IA, vous permettant de basculer entre OpenAI, Claude, Gemini et Ollama sans changer votre code. Elle gère les implémentations spécifiques à chaque fournisseur, le formatage des messages et le streaming, tout en offrant une API cohérente pour tous les fournisseurs.

Fournisseurs pris en charge

Astreus prend en charge quatre fournisseurs de LLM majeurs avec routage automatique des modèles :

OpenAI

Les 14 modèles pris en charge :

  • Latest : gpt-4.5, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o4-mini, o4-mini-high, o3
  • Stable : gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-3.5-turbo-instruct
  • Clé API : définissez la variable d'environnement OPENAI_API_KEY

Anthropic Claude

Les 9 modèles pris en charge :

  • Latest : claude-sonnet-4-20250514, claude-opus-4-20250514, claude-3.7-sonnet-20250224
  • Stable : 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
  • Clé API : définissez la variable d'environnement ANTHROPIC_API_KEY

Google Gemini

Les 12 modèles pris en charge :

  • Latest : gemini-2.5-pro, gemini-2.5-pro-deep-think, gemini-2.5-flash, gemini-2.5-flash-lite
  • Stable : 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
  • Clé API : définissez la variable d'environnement GEMINI_API_KEY

Ollama (local)

Les 31 modèles pris en charge :

  • Latest : deepseek-r1, deepseek-v3, deepseek-v2.5, deepseek-coder, deepseek-coder-v2, qwen3, qwen2.5-coder, llama3.3, gemma3, phi4
  • Populaire : mistral-small, codellama, llama3.2, llama3.1, qwen2.5, gemma2, phi3, mistral, codegemma, wizardlm2
  • Additionnel : dolphin-mistral, openhermes, deepcoder, stable-code, wizardcoder, magicoder, solar, yi, zephyr, orca-mini, vicuna
  • Configuration : définissez OLLAMA_BASE_URL (par défaut : http://localhost:11434)

Configuration

1

Variables d'environnement

Configurez vos clés API et paramètres :

# 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

Configuration de l'agent

Spécifiez le modèle lors de la création des agents :

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

Exemples d'utilisation

Utilisation basique du 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);

Réponses 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);
  }
}

Appel de fonctions

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

Options LLM

Configurez le comportement du LLM avec ces options :

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
}

Détails des paramètres

  • temperature : contrôle l'aléatoire (0.0 = déterministe, 1.0 = très créatif)
  • maxTokens : nombre maximum de tokens dans la réponse (varie selon le modèle)
  • stream : active le streaming en temps réel pour les réponses longues
  • systemPrompt : définit le comportement et le contexte du modèle
  • tools : active les capacités d'appel de fonctions

Fonctionnalités par fournisseur

FonctionnalitéOpenAIClaudeGeminiOllama
Streaming
Appel de fonctionsLimitéLimité
Vision
Embeddings
Utilisation de tokensLimité
URL de base personnalisée
Modèles locaux

Modèles Vision

Chaque fournisseur prend en charge des modèles spécifiques pour l'analyse d'images :

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

Modèles d'embedding

Pour la base de connaissances et la recherche sémantique :

OpenAI Embeddings

  • text-embedding-3-large (3072 dimensions)
  • text-embedding-3-small (1536 dimensions)
  • text-embedding-ada-002 (1536 dimensions)

Gemini Embeddings

  • text-embedding-004
  • embedding-001

Ollama Embeddings

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

Note : Claude/Anthropic ne prend pas en charge les embeddings. Utilisez OpenAI ou Gemini pour la génération d'embeddings.

Variables d'environnement supplémentaires

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

Guide de sélection du modèle

Pour la génération de code

  • Meilleur : gpt-4o, claude-3-5-sonnet-20241022, deepseek-coder
  • Rapide : gpt-4o-mini, claude-3-5-haiku-20241022

Pour les tâches de raisonnement

  • Meilleur : claude-opus-4-20250514, gpt-4.5, o3
  • Équilibré : claude-sonnet-4-20250514, gpt-4o

Pour l'écriture créative

  • Meilleur : gpt-4.5, claude-3-opus-20240229
  • Rapide : gemini-2.5-pro, gpt-4o-mini

Pour la confidentialité/l'usage local

  • Meilleur : deepseek-r1, llama3.3, qwen3
  • Code : deepseek-coder, codellama

Dernière mise à jour : 6 juillet 2026