Sorun Giderme
SmartRAG ile ilgili yaygın sorunlar ve çözümler
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ı.
Yardım İstemeden Önce
Kontrol Listesi
- Başlangıç kılavuzunu kontrol edin
- Yapılandırma dokümantasyonunu inceleyin
- Mevcut GitHub Issues'ları arayın
- Hata mesajları ve yapılandırma detaylarını dahil edin
Ö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.