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:

Örnekler modelleri açıkça seçer; desteklenmeye devam eden mevcut varsayılanlar değişmez. Sağlayıcıların doğrudan API’lerinde kullanımdan kaldırılan modeller için güncel bir alternatif açıkça seçilmelidir.

OpenAI

Doğrudan API için güncel model kimlikleri:

  • gpt-6-astra
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna
  • API Anahtarı: OPENAI_API_KEY ortam değişkenini ayarlayın

Doğrudan OpenAI isteklerinde GPT-6 Astra araç çağrıları Responses API gerektirir. Adaptör bu protokolü yönetir; yapılandırılmış OpenAI uyumlu ağ geçitleri Chat Completions kullanır. GPT-6 Astra için temperature veya top_p ayarlamayın. OpenAI model kılavuzuna bakın.

Anthropic Claude

Doğrudan API için güncel model kimlikleri:

  • claude-fable-5-1
  • claude-opus-5
  • claude-sonnet-5
  • claude-haiku-4-5-20251001
  • 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:

Yalnızca kullandığınız sağlayıcının kimlik bilgilerini kabuk ortamı veya bir gizli bilgi yöneticisi aracılığıyla sağlayın. Aşağıdaki komutlar mevcut ortam değerlerini okur; API anahtarı içermez.

# OpenAI
export OPENAI_API_KEY="${OPENAI_API_KEY:?Set OPENAI_API_KEY in your environment}"
export OPENAI_BASE_URL="https://api.openai.com/v1"  # Optional

# Anthropic Claude
export ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:?Set ANTHROPIC_API_KEY in your environment}"
export ANTHROPIC_BASE_URL="https://api.anthropic.com"  # Optional

# Google Gemini
export GEMINI_API_KEY="${GEMINI_API_KEY:?Set GEMINI_API_KEY in your environment}"

# 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-6-astra',  // Explicit selection, not a default change
  maxTokens: 2000
});

OpenRouter üzerinden ücretsiz barındırılan modeller

OpenRouter, beşinci bir sağlayıcı değil, mevcut openai adaptörünü kullanır. Bir ajan veya LLM örneği oluşturmadan önce ağ geçidi URL’sini ve ona ait anahtarı birlikte ayarlayın. OPENROUTER_API_KEY, adaptörün OPENAI_API_KEY değişkenine aktarılan, sizin tanımladığınız ortam değişkenidir.

export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_API_KEY="${OPENROUTER_API_KEY:?Set OPENROUTER_API_KEY in your environment}"

2026-09-13 tarihinde OpenRouter model kataloğu, şu kimlikler için giriş ve çıkış token ücretlerini sıfır olarak ve araç desteğini mevcut olarak listeliyordu:

  • openrouter/free
  • nvidia/nemotron-3.5-lightning:free
  • google/gemma-4-31b-it:free
  • google/gemma-4-26b-a4b-it:free
import { Agent } from '@astreus-ai/astreus';

const agent = await Agent.create({
  name: 'HostedFreeAgent',
  model: 'openrouter/free',
  maxTokens: 1000
});

const response = await agent.ask('Explain how a hash table works.');
console.log(response);

Ücretsiz barındırılan erişimin istek hızı ve kullanılabilirlik sınırları vardır; sınırsız hizmet değildir. Ücretsiz bir model kullanılamıyorsa hatayı işleyin veya başka bir ücretsiz modeli açıkça seçin; Astreus otomatik olarak ücretli modellere geçmez. Ücretsiz framework lisansı, barındırılan API’leri ücretsiz yapmaz; yerel Ollama da donanım ve elektrik gerektirir.

Bu ad alanı içeren kimlikler OpenRouter uç noktasını gerektirir. Doğrudan OpenAI kullanımına dönmek için OPENAI_BASE_URL=https://api.openai.com/v1 ile OpenAI tarafından verilen anahtarı birlikte geri yükleyin. Temel URL’nin değiştirilmesi, o adaptör örneğini kullanan tüm istekleri etkiler.

Kimlik bilgileri olmadan modelleri sorgulama

getModelsByProvider, API kimlik bilgileri veya kimliği doğrulanmış istemciler olmadan framework’ün yerel kataloğunu okur. Bu, hesabınızın erişim yetkisini veya barındırılan bir modelin o an kullanılabilir olduğunu doğrulamaz.

import { getModelsByProvider } from '@astreus-ai/astreus';

const modelIds = getModelsByProvider('openai');
console.log(modelIds);

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-5',
  messages: [{ role: 'user', content: 'Explain quantum computing' }],
  maxTokens: 1000
});

console.log(response.content);

Akış (Streaming) Yanıtları

// Stream response in real-time
for await (const chunk of llm.generateStreamResponse({
  model: 'gpt-6-astra',
  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-6-astra',
  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;       // Model-dependent; omit for GPT-6 Astra
  maxTokens?: number;         // Max output tokens (default: 4096)
  stream?: boolean;           // Enable streaming responses
  systemPrompt?: string;      // System instructions
  tools?: Tool[];             // Function calling tools
}

Parametre Detayları

  • temperature: İsteğe bağlıdır ve modele göre değişir. GPT-6 Astra için atlayın; her model örnekleme ayarlarını kabul etmez.
  • 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ğırma✅✅Sı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-6-astra, o3
  • Dengeli: claude-sonnet-4-20250514, gpt-4o

Yaratıcı Yazım İçin

  • En İyi: gpt-6-astra, 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: 13 Eylül 2026