Astreus

LLM

Einheitliche Schnittstelle für mehrere LLM-Provider mit automatischem Routing Lerne die Einrichtungsmuster, APIs und praktischen Beispiele kennen, die du...

Einheitliche Schnittstelle für mehrere LLM-Provider mit automatischem Routing

Übersicht

Die LLM-Abstraktionsschicht bietet nahtlose Integration mit mehreren KI-Providern und ermöglicht es dir, zwischen OpenAI, Claude, Gemini und Ollama zu wechseln, ohne deinen Code zu ändern. Sie verwaltet providerspezifische Implementierungen, Nachrichtenformatierung und Streaming und bietet dabei eine konsistente API über alle Provider hinweg.

Unterstützte Provider

Astreus unterstützt vier große LLM-Provider mit automatischem Modell-Routing:

OpenAI

Alle 14 unterstützten Modelle:

  • Neueste: gpt-4.5, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o4-mini, o4-mini-high, o3
  • Stabil: gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-3.5-turbo-instruct
  • API-Schlüssel: Setze die Umgebungsvariable OPENAI_API_KEY

Anthropic Claude

Alle 9 unterstützten Modelle:

  • Neueste: claude-sonnet-4-20250514, claude-opus-4-20250514, claude-3.7-sonnet-20250224
  • Stabil: 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
  • API-Schlüssel: Setze die Umgebungsvariable ANTHROPIC_API_KEY

Google Gemini

Alle 12 unterstützten Modelle:

  • Neueste: gemini-2.5-pro, gemini-2.5-pro-deep-think, gemini-2.5-flash, gemini-2.5-flash-lite
  • Stabil: 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
  • API-Schlüssel: Setze die Umgebungsvariable GEMINI_API_KEY

Ollama (Lokal)

Alle 31 unterstützten Modelle:

  • Neueste: deepseek-r1, deepseek-v3, deepseek-v2.5, deepseek-coder, deepseek-coder-v2, qwen3, qwen2.5-coder, llama3.3, gemma3, phi4
  • Beliebt: mistral-small, codellama, llama3.2, llama3.1, qwen2.5, gemma2, phi3, mistral, codegemma, wizardlm2
  • Weitere: dolphin-mistral, openhermes, deepcoder, stable-code, wizardcoder, magicoder, solar, yi, zephyr, orca-mini, vicuna
  • Konfiguration: Setze OLLAMA_BASE_URL (Standard: http://localhost:11434)

Konfiguration

1

Umgebungsvariablen

Richte deine API-Schlüssel und Konfiguration ein:

# 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

Agent-Konfiguration

Gib das Modell beim Erstellen von Agenten an:

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

Verwendungsbeispiele

Grundlegende LLM-Verwendung

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

Streaming-Antworten

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

Funktionsaufrufe

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

LLM-Optionen

Konfiguriere das LLM-Verhalten mit diesen Optionen:

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
}

Parameter-Details

  • temperature: Steuert die Zufälligkeit (0.0 = deterministisch, 1.0 = sehr kreativ)
  • maxTokens: Maximale Anzahl an Tokens in der Antwort (je nach Modell unterschiedlich)
  • stream: Aktiviert Echtzeit-Streaming für lange Antworten
  • systemPrompt: Legt Verhalten und Kontext für das Modell fest
  • tools: Aktiviert Funktionsaufruf-Fähigkeiten

Provider-Funktionen

FeatureOpenAIClaudeGeminiOllama
Streaming
Function CallingEingeschränktEingeschränkt
Vision
Embeddings
Token UsageEingeschränkt
Custom Base URL
Local Models

Vision-Modelle

Jeder Provider unterstützt bestimmte Modelle für die Bildanalyse:

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

Embedding-Modelle

Für Wissensdatenbanken und semantische Suche:

OpenAI Embeddings

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

Gemini Embeddings

  • text-embedding-004
  • embedding-001

Ollama Embeddings

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

Hinweis: Claude/Anthropic unterstützt keine Embeddings. Verwende OpenAI oder Gemini für die Embedding-Generierung.

Weitere Umgebungsvariablen

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

Leitfaden zur Modellauswahl

Für Code-Generierung

  • Am besten: gpt-4o, claude-3-5-sonnet-20241022, deepseek-coder
  • Schnell: gpt-4o-mini, claude-3-5-haiku-20241022

Für Reasoning-Aufgaben

  • Am besten: claude-opus-4-20250514, gpt-4.5, o3
  • Ausgewogen: claude-sonnet-4-20250514, gpt-4o

Für kreatives Schreiben

  • Am besten: gpt-4.5, claude-3-opus-20240229
  • Schnell: gemini-2.5-pro, gpt-4o-mini

Für Datenschutz/lokale Nutzung

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

Zuletzt aktualisiert: 6. Juli 2026