Temel Yapılandırma

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

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.ApiKey = "your-api-key";
});

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'ı
ApiKey string Gerekli AI provider için API anahtarınız
ModelName string Provider varsayılanı Kullanılacak spesifik model
ChunkSize int 1000 Belge parçalarının boyutu
ChunkOverlap int 200 Parçalar arasındaki örtüşme

AI Provider Yapılandırması

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

Anthropic
OpenAI
Azure OpenAI
Gemini
Özel

Anthropic (Claude)

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.ApiKey = "your-anthropic-key";
    options.ModelName = "claude-3-sonnet-20240229";
});

OpenAI

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.OpenAI;
    options.ApiKey = "your-openai-key";
    options.ModelName = "text-embedding-ada-002";
});

Azure OpenAI

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.AzureOpenAI;
    options.ApiKey = "your-azure-key";
    options.Endpoint = "https://your-resource.openai.azure.com/";
    options.ModelName = "text-embedding-ada-002";
});

Google Gemini

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Gemini;
    options.ApiKey = "your-gemini-key";
    options.ModelName = "embedding-001";
});

Özel AI Provider

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Custom;
    options.CustomEndpoint = "https://your-custom-api.com/v1/embeddings";
    options.ApiKey = "your-custom-key";
    options.ModelName = "your-custom-model";
});

Depolama Provider Yapılandırması

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

Qdrant
Redis
SQLite
Bellek İçi
Dosya Sistemi

Qdrant (Vektör Veritabanı)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Qdrant;
    options.QdrantUrl = "http://localhost:6333";
    options.CollectionName = "smartrag_documents";
});

Redis (Bellek İçi Önbellek)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Redis;
    options.RedisConnectionString = "localhost:6379";
    options.DatabaseId = 0;
});

SQLite (Yerel Veritabanı)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Sqlite;
    options.ConnectionString = "Data Source=smartrag.db";
});

Bellek İçi (Geliştirme)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.InMemory;
    // Ek yapılandırma gerekmez
});

Dosya Sistemi (Yerel Depolama)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.FileSystem;
    options.StoragePath = "./data/smartrag";
});

Gelişmiş Yapılandırma

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

Özel Parçalama

services.AddSmartRAG(options =>
{
    options.ChunkSize = 500;
    options.ChunkOverlap = 100;
    options.ChunkingStrategy = ChunkingStrategy.Sentence;
});

Belge İşleme

services.AddSmartRAG(options =>
{
    options.SupportedFormats = new[] { ".pdf", ".docx", ".txt" };
    options.MaxFileSize = 10 * 1024 * 1024; // 10MB
    options.EnableTextExtraction = true;
});

Ortam Yapılandırması

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

appsettings.json

{
  "SmartRAG": {
    "AIProvider": "Anthropic",
    "StorageProvider": "Qdrant",
    "ApiKey": "your-api-key",
    "ChunkSize": 1000,
    "ChunkOverlap": 200
  }
}

Ortam Değişkenleri

export SMARTRAG_AI_PROVIDER=Anthropic
export SMARTRAG_STORAGE_PROVIDER=Qdrant
export SMARTRAG_API_KEY=your-api-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.