Kurulum

SmartRAG bir NuGet paketi olarak mevcuttur ve .NET Standard 2.1 destekler, bu da şunlarla uyumlu olduğu anlamına gelir:

  • ✅ .NET Core 3.0+
  • ✅ .NET 5, 6, 7, 8, 9+

Kurulum Yöntemleri

dotnet add package SmartRAG
Install-Package SmartRAG
<PackageReference Include="SmartRAG" Version="3.3.0" />

Temel Yapılandırma

SmartRAG'i Program.cs veya Startup.cs dosyanızda yapılandırın:

Hızlı Kurulum (Önerilen)

using SmartRAG.Extensions;
using SmartRAG.Enums;

var builder = WebApplication.CreateBuilder(args);

// Tek satırda basit yapılandırma
builder.Services.UseSmartRag(builder.Configuration,
    storageProvider: StorageProvider.InMemory,  // In-memory ile başlayın
    aiProvider: AIProvider.Gemini               // AI sağlayıcınızı seçin
);

var app = builder.Build();
app.Run();

Gelişmiş Kurulum

using SmartRAG.Extensions;
using SmartRAG.Enums;

var builder = WebApplication.CreateBuilder(args);

// Seçeneklerle gelişmiş yapılandırma
builder.Services.AddSmartRag(builder.Configuration, options =>
{
    // AI Sağlayıcı
    options.AIProvider = AIProvider.OpenAI;
    
    // Depolama Sağlayıcı
    options.StorageProvider = StorageProvider.Qdrant;
    
    // Parçalama Yapılandırması
    options.MaxChunkSize = 1000;
    options.MinChunkSize = 100;
    options.ChunkOverlap = 200;
    
    // Yeniden Deneme Yapılandırması
    options.MaxRetryAttempts = 3;
    options.RetryDelayMs = 1000;
    options.RetryPolicy = RetryPolicy.ExponentialBackoff;
    
    // Yedek Sağlayıcılar
    options.EnableFallbackProviders = true;
    options.FallbackProviders = new List<AIProvider> 
    { 
        AIProvider.Anthropic, 
        AIProvider.Gemini 
    };
});

var app = builder.Build();
app.Run();

Yapılandırma Dosyası

appsettings.json veya appsettings.Development.json oluşturun:

{
  "SmartRAG": {
    "AIProvider": "OpenAI",
    "StorageProvider": "InMemory",
    "MaxChunkSize": 1000,
    "MinChunkSize": 100,
    "ChunkOverlap": 200,
    "MaxRetryAttempts": 3,
    "RetryDelayMs": 1000,
    "RetryPolicy": "ExponentialBackoff",
    "EnableFallbackProviders": false
  },
  "AI": {
    "OpenAI": {
      "ApiKey": "sk-proj-API_ANAHTARINIZ",
      "Endpoint": "https://api.openai.com/v1",
      "Model": "gpt-5.1",
      "EmbeddingModel": "text-embedding-3-small",
      "MaxTokens": 4096,
      "Temperature": 0.7
    },
    "Anthropic": {
      "ApiKey": "sk-ant-API_ANAHTARINIZ",
      "Endpoint": "https://api.anthropic.com",
      "Model": "claude-sonnet-4-5",
      "MaxTokens": 4096,
      "Temperature": 0.3,
      "EmbeddingApiKey": "pa-VOYAGE_ANAHTARINIZ",
      "EmbeddingModel": "voyage-3.5"
    },
    "Gemini": {
      "ApiKey": "GEMINI_ANAHTARINIZ",
      "Endpoint": "https://generativelanguage.googleapis.com/v1beta",
      "Model": "gemini-2.5-pro",
      "EmbeddingModel": "embedding-001",
      "MaxTokens": 4096,
      "Temperature": 0.3
    },
    "AzureOpenAI": {
      "ApiKey": "azure-openai-api-anahtariniz",
      "Endpoint": "https://your-resource.openai.azure.com/",
      "Model": "gpt-5.1",
      "EmbeddingModel": "text-embedding-3-small",
      "ApiVersion": "2024-10-21",
      "MaxTokens": 4096,
      "Temperature": 0.7
    },
    "Custom": {
      "ApiKey": "ozel-api-anahtariniz",
      "Endpoint": "https://api.yourprovider.com/v1/chat/completions",
      "Model": "model-adi",
      "MaxTokens": 4096,
      "Temperature": 0.7
    }
  },
  "Storage": {
    "InMemory": {
      "MaxDocuments": 1000
    },
    "Qdrant": {
      "Host": "localhost:6334",
      "UseHttps": false,
      "ApiKey": "",
      "CollectionName": "smartrag_documents",
      "VectorSize": 1536,
      "DistanceMetric": "Cosine"
    },
    "Redis": {
      "ConnectionString": "localhost:6379",
      "Password": "",
      "Username": "",
      "Database": 0,
      "KeyPrefix": "smartrag:doc:",
      "ConnectionTimeout": 30,
      "EnableSsl": false
    }
  }
}

Güvenlik Uyarısı

API anahtarlarını asla kaynak kontrolüne commit etmeyin! Yerel geliştirme için appsettings.Development.json kullanın (.gitignore'a ekleyin). Üretim için environment variables veya Azure Key Vault kullanın.

Hızlı Kullanım Örneği

1. Doküman Yükleme

public class DocumentController : ControllerBase
{
    private readonly IDocumentService _documentService;
    
    public DocumentController(IDocumentService documentService)
    {
        _documentService = documentService;
    }
    
    [HttpPost("upload")]
    public async Task<IActionResult> Upload(IFormFile file)
    {
        var document = await _documentService.UploadDocumentAsync(
            file.OpenReadStream(),
            file.FileName,
            file.ContentType,
            "kullanici-123"
        );
        
        return Ok(new 
        { 
            id = document.Id,
            fileName = document.FileName,
            chunks = document.Chunks.Count,
            message = "Doküman başarıyla işlendi"
        });
    }
}

2. AI ile Soru Sorma

public class IntelligenceController : ControllerBase
{
    private readonly IDocumentSearchService _searchService;
    
    public IntelligenceController(IDocumentSearchService searchService)
    {
        _searchService = searchService;
    }
    
    [HttpPost("ask")]
    public async Task<IActionResult> Ask([FromBody] QuestionRequest request)
    {
        var response = await _searchService.QueryIntelligenceAsync(
            request.Question,
            maxResults: 5
        );
        
        return Ok(response);
    }
}

public class QuestionRequest
{
    public string Question { get; set; } = string.Empty;
}

3. Yanıt Örneği

{
  "query": "Ana faydalar nelerdir?",
  "answer": "Sözleşme belgesine göre ana faydalar şunlardır: 1) 7/24 müşteri desteği, 2) 30 gün para iade garantisi, 3) Ömür boyu ücretsiz güncellemeler...",
  "sources": [
    {
      "sourceType": "Document",
      "documentId": "00000000-0000-0000-0000-000000000000",
      "fileName": "sozlesme.pdf",
      "relevantContent": "Hizmetimiz 7/24 müşteri desteği içerir...",
      "relevanceScore": 0.94,
      "location": null
    }
  ],
  "searchedAt": "2025-10-18T14:30:00Z",
  "configuration": {
    "aiProvider": "OpenAI",
    "storageProvider": "Redis",
    "model": "gpt-5.1"
  }
}

Konuşma Geçmişi

SmartRAG otomatik olarak konuşma geçmişini yönetir:

// İlk soru
var q1 = await _searchService.QueryIntelligenceAsync("Makine öğrenimi nedir?");

// Takip sorusu - AI önceki bağlamı hatırlar
var q2 = await _searchService.QueryIntelligenceAsync("Denetimli öğrenmeyi açıklar mısın?");

// Yeni konuşma başlat
var newConv = await _searchService.QueryIntelligenceAsync(
    "Yeni konu", 
    startNewConversation: true
);

İpucu

SmartRAG otomatik olarak oturum ID'lerini ve konuşma bağlamını yönetir. Manuel oturum yönetimi gerekmez!

Sonraki Adımlar

Yapılandırma

Tüm yapılandırma seçeneklerini, AI sağlayıcılarını, depolama backend'lerini ve gelişmiş ayarları keşfedin.

SmartRAG'i Yapılandır

API Referans

Tüm interface'ler, metodlar, parametreler ve örneklerle eksiksiz API dokümantasyonu.

API Dokümanlarını Görüntüle

Örnekler

Çok veritabanlı sorgular, OCR işleme ve ses transkripsiyonu dahil gerçek dünya örnekleri.

Örnekleri Gör

Değişiklikler

Tüm versiyonlardaki yeni özellikleri, iyileştirmeleri ve breaking change'leri takip edin.

Changelog'u Görüntüle

Yardıma İhtiyacınız Var mı?

Destek & Topluluk

Sorunla karşılaşırsanız veya yardıma ihtiyacınız olursa: