Temel Yapılandırma

SmartRAG ihtiyaçlarınıza uygun çeşitli seçeneklerle yapılandırılabilir:

services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

Yapılandırma Seçenekleri

Seçenek Tip Varsayılan Açıklama
AIProvider AIProvider Anthropic Embedding'ler için kullanılacak AI provider
StorageProvider StorageProvider Qdrant Vektörler için depolama provider'ı
MaxChunkSize int 1000 Belge parçalarının maksimum boyutu
MinChunkSize int 50 Belge parçalarının minimum boyutu
ChunkOverlap int 200 Parçalar arasındaki örtüşme
MaxRetryAttempts int 3 Maksimum yeniden deneme sayısı
RetryDelayMs int 1000 Yeniden deneme arasındaki gecikme (ms)
RetryPolicy RetryPolicy ExponentialBackoff Yeniden deneme politikası
EnableFallbackProviders bool false Yedek provider'ları etkinleştir
FallbackProviders AIProvider[] [] Yedek AI provider'ları listesi

AI Provider Yapılandırması

Embedding üretimi için birden fazla AI provider arasından seçim yapın:

services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

// appsettings.json
{
  "Anthropic": {
    "ApiKey": "your-anthropic-key",
    "Model": "claude-3-sonnet-20240229"
  }
}
services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.OpenAI;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

// appsettings.json
{
  "OpenAI": {
    "ApiKey": "your-openai-key",
    "Model": "gpt-4",
    "EmbeddingModel": "text-embedding-ada-002"
  }
}
services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Gemini;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

// appsettings.json
{
  "Gemini": {
    "ApiKey": "your-gemini-key",
    "Model": "gemini-pro",
    "EmbeddingModel": "embedding-001"
  }
}

Depolama Provider Yapılandırması

İhtiyaçlarınıza en uygun depolama backend'ini seçin:

services.AddSmartRag(configuration, options =>
{
    options.StorageProvider = StorageProvider.Qdrant;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

// appsettings.json
{
  "Storage": {
    "Qdrant": {
      "Host": "localhost",
      "ApiKey": "your-qdrant-key",
      "CollectionName": "smartrag_documents",
      "VectorSize": 768
    }
  }
}
services.AddSmartRag(configuration, options =>
{
    options.StorageProvider = StorageProvider.InMemory;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});
// Ek yapılandırma gerekmez

Gelişmiş Yapılandırma

SmartRAG'i özel gereksinimleriniz için ince ayar yapın:

Özel Parçalama

services.AddSmartRag(configuration, options =>
{
    options.MaxChunkSize = 500;
    options.MinChunkSize = 50;
    options.ChunkOverlap = 100;
});

Yeniden Deneme Yapılandırması

services.AddSmartRag(configuration, options =>
{
    options.MaxRetryAttempts = 3;
    options.RetryDelayMs = 1000;
    options.RetryPolicy = RetryPolicy.ExponentialBackoff;
    options.EnableFallbackProviders = true;
    options.FallbackProviders = new[] { AIProvider.Gemini, AIProvider.OpenAI };
});

Ortam Yapılandırması

Ortam değişkenleri veya yapılandırma dosyaları kullanarak SmartRAG'i yapılandırın:

appsettings.json

{
   "Anthropic": {
     "ApiKey": "your-anthropic-key",
     "Model": "claude-3-sonnet-20240229"
   },
   "Storage": {
     "Qdrant": {
       "Host": "localhost",
       "ApiKey": "your-qdrant-key",
       "CollectionName": "smartrag_documents"
     }
   }
 }

Ortam Değişkenleri

export ANTHROPIC_API_KEY=your-anthropic-key
export QDRANT_API_KEY=your-qdrant-key

En İyi Uygulamalar

API Anahtarları

API anahtarlarını kaynak kodda asla hardcode yapmayın. Ortam değişkenleri veya güvenli yapılandırma kullanın.

Parça Boyutu

Bağlam ve performans arasında denge kurun. Hassasiyet için küçük, bağlam için büyük parçalar.

Depolama

Ölçeğinize ve gereksinimlerinize göre depolama provider'ı seçin.

Güvenlik

Üretim ortamları için uygun erişim kontrolleri ve izleme kullanın.