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 sorusu
  • maxResults (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>