Yaygın Sorunlar

SmartRAG kullanırken karşılaşabileceğiniz yaygın sorunlar ve çözümleri.

Derleme Sorunları

Uyarı

Derleme hatalarını çözmek için önce temiz bir çözüm çalıştırın.

NuGet Paket Hatası

# Temiz çözüm
dotnet clean
dotnet restore
dotnet build

Bağımlılık Çakışması

<PackageReference Include="SmartRAG" Version="1.1.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />

Çalışma Zamanı Sorunları

Yapılandırma

Çoğu çalışma zamanı sorunu yapılandırma problemleriyle ilgilidir.

AI Provider Yapılandırılmamış

// Doğru yapılandırmayı sağlayın
services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.ApiKey = "your-api-key";
});

API Anahtarı Sorunları

# Ortam değişkenini ayarlayın
export SMARTRAG_API_KEY=your-api-key

# Veya appsettings.json kullanın
{
  "SmartRAG": {
    "ApiKey": "your-api-key"
  }
}

Performans Sorunları

Optimizasyon

Performans doğru yapılandırma ile iyileştirilebilir.

Yavaş Belge İşleme

// Chunk boyutunu optimize edin
services.AddSmartRAG(options =>
{
    options.ChunkSize = 500; // Daha hızlı işleme için küçük chunk'lar
    options.ChunkOverlap = 100;
});

Bellek Kullanımı

// Uygun depolama provider'ını kullanın
services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Redis; // Yüksek bellek kullanımı için
    // veya
    options.StorageProvider = StorageProvider.Qdrant; // Büyük veri setleri için
});

Hata Ayıklama

SmartRAG uygulamalarınızı hata ayıklamanıza yardımcı olacak araçlar ve teknikler.

Logging'i Etkinleştirin

// Logging'i yapılandırın
builder.Logging.AddConsole();
builder.Logging.SetMinimumLevel(LogLevel.Debug);

// Servisinizde
private readonly ILogger<DocumentService> _logger;

public async Task<Document> UploadDocumentAsync(IFormFile file)
{
    _logger.LogInformation("Belge yükleniyor: {FileName}", file.FileName);
    // ... implementasyon
}

Hata Yönetimi

try
{
    var document = await _documentService.UploadDocumentAsync(file);
    return Ok(document);
}
catch (ArgumentException ex)
{
    _logger.LogError(ex, "Geçersiz dosya formatı");
    return BadRequest("Geçersiz dosya formatı");
}
catch (HttpRequestException ex)
{
    _logger.LogError(ex, "AI provider hatası");
    return StatusCode(503, "Servis geçici olarak kullanılamıyor");
}
catch (Exception ex)
{
    _logger.LogError(ex, "Beklenmeyen hata");
    return StatusCode(500, "İç sunucu hatası");
}

Test Etme

SmartRAG implementasyonunuzu nasıl test edeceğiniz.

Birim Testi

[Test]
public async Task UploadDocument_ValidFile_ReturnsDocument()
{
    // Arrange
    var mockFile = new Mock<IFormFile>();
    var service = new DocumentService(mockLogger.Object);
    
    // Act
    var result = await service.UploadDocumentAsync(mockFile.Object);
    
    // Assert
    Assert.IsNotNull(result);
    Assert.IsNotEmpty(result.Id);
}

Entegrasyon Testi

[Test]
public async Task SearchDocuments_ReturnsRelevantResults()
{
    // Arrange
    var testQuery = "test sorgusu";
    
    // Act
    var results = await _documentService.SearchDocumentsAsync(testQuery);
    
    // Assert
    Assert.IsNotNull(results);
    Assert.IsTrue(results.Any());
}

Yardım Alma

Hala sorun yaşıyorsanız, işte yardım almanın yolları.

GitHub Issues

GitHub'da hata raporlayın ve özellik isteyin.

Issue Aç

E-posta Desteği

E-posta ile doğrudan yardım alın.

İletişim

Yardım İstemeden Önce

Kontrol Listesi

Önleme

Yaygın sorunları önlemek için en iyi uygulamalar.

Yapılandırma En İyi Uygulamaları

API Anahtarları

API anahtarlarını asla kod içinde sabit yazmayın. Ortam değişkenleri veya güvenli yapılandırma kullanın.

Depolama

Kullanım durumunuz için doğru depolama provider'ını seçin.

Hata Yönetimi

Uygun hata yönetimi ve logging implementasyonu yapın.

Performans

Performansı izleyin ve chunk boyutlarını optimize edin.