Astreus

LLM

Otomatik yönlendirmeyle birden fazla LLM sağlayıcısı için birleşik arayüz Güvenilir Astreus agent sistemleri oluşturmak için gereken kurulum kalıplarını,...

Otomatik yönlendirmeyle birden fazla LLM sağlayıcısı için birleşik arayüz

Genel Bakış

LLM soyutlama katmanı, kodunuzu değiştirmeden OpenAI, Claude, Gemini ve Ollama arasında geçiş yapmanızı sağlayarak birden fazla AI sağlayıcısıyla sorunsuz entegrasyon sunar. Sağlayıcıya özgü uygulamaları, mesaj biçimlendirmeyi ve akışı (streaming) yönetirken tüm sağlayıcılar genelinde tutarlı bir API sağlar.

Desteklenen Sağlayıcılar

Astreus, otomatik model yönlendirmesiyle dört büyük LLM sağlayıcısını destekler:

OpenAI

Desteklenen 14 modelin tümü:

  • En Yeni: gpt-4.5, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o4-mini, o4-mini-high, o3
  • Kararlı: 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 Anahtarı: OPENAI_API_KEY ortam değişkenini ayarlayın

Anthropic Claude

Desteklenen 9 modelin tümü:

  • En Yeni: claude-sonnet-4-20250514, claude-opus-4-20250514, claude-3.7-sonnet-20250224
  • Kararlı: 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 Anahtarı: ANTHROPIC_API_KEY ortam değişkenini ayarlayın

Google Gemini

Desteklenen 12 modelin tümü:

  • En Yeni: gemini-2.5-pro, gemini-2.5-pro-deep-think, gemini-2.5-flash, gemini-2.5-flash-lite
  • Kararlı: 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 Anahtarı: GEMINI_API_KEY ortam değişkenini ayarlayın

Ollama (Yerel)

Desteklenen 31 modelin tümü:

  • En Yeni: deepseek-r1, deepseek-v3, deepseek-v2.5, deepseek-coder, deepseek-coder-v2, qwen3, qwen2.5-coder, llama3.3, gemma3, phi4
  • Popüler: mistral-small, codellama, llama3.2, llama3.1, qwen2.5, gemma2, phi3, mistral, codegemma, wizardlm2
  • Ek: dolphin-mistral, openhermes, deepcoder, stable-code, wizardcoder, magicoder, solar, yi, zephyr, orca-mini, vicuna
  • Yapılandırma: OLLAMA_BASE_URL ayarlayın (varsayılan: http://localhost:11434)

Yapılandırma

1

Ortam Değişkenleri

API anahtarlarınızı ve yapılandırmanızı ayarlayın:

# 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

Ajan Yapılandırması

Ajan oluştururken modeli belirtin:

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

Kullanım Örnekleri

Temel LLM Kullanımı

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

Akış (Streaming) Yanıtları

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

Fonksiyon Çağırma

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 Seçenekleri

LLM davranışını şu seçeneklerle yapılandırın:

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
}

Parametre Detayları

  • temperature: Rastgeleliği kontrol eder (0.0 = deterministik, 1.0 = çok yaratıcı)
  • maxTokens: Yanıttaki maksimum token sayısı (modele göre değişir)
  • stream: Uzun yanıtlar için gerçek zamanlı akışı etkinleştirir
  • systemPrompt: Model için davranış ve bağlamı ayarlar
  • tools: Fonksiyon çağırma yeteneklerini etkinleştirir

Sağlayıcı Özellikleri

ÖzellikOpenAIClaudeGeminiOllama
Streaming
Fonksiyon ÇağırmaSınırlıSınırlı
Görsel
Gömme (Embeddings)
Token KullanımıSınırlı
Özel Base URL
Yerel Modeller

Görsel Modelleri

Her sağlayıcı, görüntü analizi için belirli modelleri destekler:

OpenAI Görsel

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

Claude Görsel

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

Gemini Görsel

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

Ollama Görsel

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

Gömme Modelleri

Bilgi tabanı ve anlamsal arama için:

OpenAI Gömmeleri

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

Gemini Gömmeleri

  • text-embedding-004
  • embedding-001

Ollama Gömmeleri

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

Not: Claude/Anthropic gömmeleri desteklemez. Gömme üretimi için OpenAI veya Gemini kullanın.

Ek Ortam Değişkenleri

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

Model Seçim Rehberi

Kod Üretimi İçin

  • En İyi: gpt-4o, claude-3-5-sonnet-20241022, deepseek-coder
  • Hızlı: gpt-4o-mini, claude-3-5-haiku-20241022

Akıl Yürütme Görevleri İçin

  • En İyi: claude-opus-4-20250514, gpt-4.5, o3
  • Dengeli: claude-sonnet-4-20250514, gpt-4o

Yaratıcı Yazım İçin

  • En İyi: gpt-4.5, claude-3-opus-20240229
  • Hızlı: gemini-2.5-pro, gpt-4o-mini

Gizlilik/Yerel Kullanım İçin

  • En İyi: deepseek-r1, llama3.3, qwen3
  • Kod: deepseek-coder, codellama

Son güncelleme: 6 Temmuz 2026