Temel Arayüzler
SmartRAG, belge işleme ve yönetimi için temel arayüzler sağlar.
IDocumentSearchService
RAG (Retrieval-Augmented Generation) ile belge arama ve AI destekli yanıt üretimi.
public interface IDocumentSearchService
{
Task<List<DocumentChunk>> SearchDocumentsAsync(string query, int maxResults = 5);
Task<RagResponse> GenerateRagAnswerAsync(string query, int maxResults = 5, bool startNewConversation = false);
}
GenerateRagAnswerAsync
Otomatik oturum yönetimi ve konuşma geçmişi ile AI destekli yanıtlar üretir.
Task<RagResponse> GenerateRagAnswerAsync(string query, int maxResults = 5, bool startNewConversation = false)
Parametreler:
query
(string): Kullanıcının sorusumaxResults
(int): Alınacak maksimum belge parçası sayısı (varsayılan: 5)startNewConversation
(bool): Yeni konuşma oturumu başlat (varsayılan: false)
Döner: RagResponse
AI yanıtı, kaynaklar ve metadata ile
// Temel kullanım
var response = await documentSearchService.GenerateRagAnswerAsync("Hava nasıl?");
// Yeni konuşma başlat
var response = await documentSearchService.GenerateRagAnswerAsync("/new");
Diğer Önemli Arayüzler
Belge işleme ve depolama için ek servisler.
// Belge ayrıştırma ve işleme
IDocumentParserService - Belgeleri ayrıştır ve metin çıkar
IDocumentRepository - Belge depolama işlemleri
IAIService - AI sağlayıcı iletişimi
IAudioParserService - Ses transkripsiyonu (Google Speech-to-Text)
Ana Modeller
SmartRAG işlemleri için temel veri modelleri.
// Ana yanıt modeli
public class RagResponse
{
public string Query { get; set; }
public string Answer { get; set; }
public List<SearchSource> Sources { get; set; }
public DateTime SearchedAt { get; set; }
}
// Arama sonuçları için belge parçası
public class DocumentChunk
{
public string Id { get; set; }
public string DocumentId { get; set; }
public string Content { get; set; }
public double RelevanceScore { get; set; }
}
Yapılandırma
SmartRAG için temel yapılandırma seçenekleri.
// AI Sağlayıcıları
AIProvider.Anthropic // Claude modelleri
AIProvider.OpenAI // GPT modelleri
AIProvider.Gemini // Google modelleri
// Depolama Sağlayıcıları
StorageProvider.Qdrant // Vektör veritabanı
StorageProvider.Redis // Yüksek performanslı önbellek
StorageProvider.Sqlite // Yerel veritabanı
Hızlı Başlangıç
SmartRAG ile dakikalar içinde başlayın.
// 1. Servisleri kaydet
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.Anthropic;
options.StorageProvider = StorageProvider.Redis;
});
// 2. Enjekte et ve kullan
public class MyController : ControllerBase
{
private readonly IDocumentSearchService _searchService;
public async Task Ask(string question)
{
var response = await _searchService.GenerateRagAnswerAsync(question);
return Ok(response);
}
}</code></pre>
</div>
</div>
</div>
</section>
Yaygın Kalıplar
Sık kullanılan kalıplar ve yapılandırmalar.
// Belge yükleme
var document = await _documentService.UploadDocumentAsync(file);
// Belge arama
var results = await _searchService.SearchDocumentsAsync(query, 10);
// RAG konuşması
var response = await _searchService.GenerateRagAnswerAsync(question);
// Yapılandırma
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.Anthropic;
options.StorageProvider = StorageProvider.Redis;
});
Hata Yönetimi
Yaygın hatalar ve hata yönetimi kalıpları.
try
{
var response = await _searchService.GenerateRagAnswerAsync(query);
return Ok(response);
}
catch (SmartRagException ex)
{
return BadRequest(ex.Message);
}
catch (Exception ex)
{
return StatusCode(500, "Internal server error");
}
Performans İpuçları
SmartRAG performansını optimize edin.
- Parça Boyutu: Optimal denge için 500-1000 karakter
- Toplu İşlemler: Birden fazla belgeyi birlikte işle
- Önbellekleme: Daha iyi performans için Redis kullan
- Vektör Depolama: Üretim için Qdrant kullan
Yardıma mı İhtiyacınız Var?
API ile ilgili yardıma ihtiyacınız varsa:
</div>
</div>