Depolama Sağlayıcı Yapılandırması

SmartRAG çeşitli depolama sağlayıcılarını destekler:

Qdrant (Vektör Veritabanı)

Qdrant, milyonlarca vektörle üretim kullanımı için tasarlanmış yüksek performanslı bir vektör veritabanıdır:

{
  "Storage": {
    "Qdrant": {
      "Host": "localhost",
      "UseHttps": false,
      "ApiKey": "",
      "CollectionName": "smartrag_documents",
      "VectorSize": 768,
      "DistanceMetric": "Cosine"
    }
  }
}
builder.Services.AddSmartRag(configuration, options =>
{
    options.StorageProvider = StorageProvider.Qdrant;
});

Avantajlar:

  • 🚀 Yüksek performanslı vektör arama
  • 📈 Ölçeklenebilir (milyonlarca vektör)
  • 🔍 Gelişmiş filtreleme ve metadata desteği
  • 🏢 Üretim için ideal

Dezavantajlar:

  • 🐳 Docker gerektirir
  • 💾 Ek kaynak kullanımı
  • 🔧 Kurulum karmaşıklığı

Redis (Yüksek Performanslı Önbellek)

Redis, RediSearch kullanarak vektör benzerlik araması yetenekleriyle hızlı bellek içi depolama sağlar:

{
  "Storage": {
    "Redis": {
      "ConnectionString": "localhost:6379",
      "Password": "",
      "Username": "",
      "Database": 0,
      "KeyPrefix": "smartrag:local:",
      "ConnectionTimeout": 30,
      "EnableSsl": false,
      "RetryCount": 3,
      "RetryDelay": 1000,
      "EnableVectorSearch": true,
      "VectorIndexAlgorithm": "HNSW",
      "DistanceMetric": "COSINE",
      "VectorDimension": 768,
      "VectorIndexName": "smartrag_vector_idx"
    }
  }
}
builder.Services.AddSmartRag(configuration, options =>
{
    options.StorageProvider = StorageProvider.Redis;
});

Avantajlar:

  • ⚡ Çok hızlı erişim
  • 🔄 Otomatik expire desteği
  • 📊 Zengin veri tipleri
  • 🔍 RediSearch ile vektör benzerlik araması
  • 🏢 Üretim için uygun

Dezavantajlar:

  • 💾 RAM tabanlı (sınırlı kapasite)
  • 🔧 Vektör arama için RediSearch modülü gerekli
  • 💰 Ek maliyet

RediSearch Modülü Gerekli

Vektör arama için RediSearch modülü gereklidir. redis/redis-stack-server:latest Docker image'ını kullanın veya Redis sunucunuza RediSearch modülünü yükleyin. RediSearch olmadan sadece metin araması çalışır (vektör benzerlik araması çalışmaz).

Docker örneği:

docker run -d -p 6379:6379 redis/redis-stack-server:latest

InMemory (RAM Depolama)

InMemory depolama, test ve geliştirme için idealdir, tüm verileri RAM’de saklar:

{
  "Storage": {
    "InMemory": {
      "MaxDocuments": 1000
    }
  }
}
builder.Services.AddSmartRag(configuration, options =>
{
    options.StorageProvider = StorageProvider.InMemory;
});

Kullanım Senaryoları:

  • 🧪 Test ve geliştirme
  • 🚀 Prototip oluşturma
  • 📊 Geçici veri
  • 🔬 Konsept kanıtı

Önemli

InMemory depolama, uygulama yeniden başlatıldığında tüm verileri kaybeder. Üretim için uygun değil!

Depolama Sağlayıcı Karşılaştırması

Kullanım durumunuz için en iyi seçeneği seçmek üzere depolama sağlayıcılarını karşılaştırın:

Sağlayıcı Performans Ölçeklenebilirlik Kurulum Maliyet Üretim Uygunluğu
Qdrant ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ Mükemmel
Redis ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ İyi
InMemory ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Sadece test

Önerilen Kullanım Senaryoları

Geliştirme ve Test

// Hızlı geliştirme ve test için
options.StorageProvider = StorageProvider.InMemory;

Orta Ölçekli Uygulamalar

// RediSearch ile hızlı ve ölçeklenebilir
options.StorageProvider = StorageProvider.Redis;

Büyük Ölçekli Üretim Uygulamaları

// Milyonlarca vektör için maksimum performans ve ölçeklenebilirlik
options.StorageProvider = StorageProvider.Qdrant;

Sonraki Adımlar

Veritabanı Yapılandırması

Çoklu veritabanı bağlantıları ve şema analizi

Veritabanı Yapılandırması

Ses & OCR

Whisper.net ve Tesseract OCR

Ses & OCR