Kern-Schnittstellen

SmartRAG bietet mehrere Kern-Schnittstellen für die Dokumentenverarbeitung und -verwaltung.

IDocumentSearchService

Dokumentsuche und KI-gestützte Antwortgenerierung mit RAG (Retrieval-Augmented Generation).

public interface IDocumentSearchService
{
    Task<List<DocumentChunk>> SearchDocumentsAsync(string query, int maxResults = 5);
    Task<RagResponse> GenerateRagAnswerAsync(string query, int maxResults = 5, bool startNewConversation = false);
}

GenerateRagAnswerAsync

Generiert KI-gestützte Antworten mit automatischer Sitzungsverwaltung und Gesprächshistorie.

Task<RagResponse> GenerateRagAnswerAsync(string query, int maxResults = 5, bool startNewConversation = false)

Parameter:

  • query (string): Die Frage des Benutzers
  • maxResults (int): Maximale Anzahl der abzurufenden Dokumentfragmente (Standard: 5)
  • startNewConversation (bool): Neue Gesprächssitzung starten (Standard: false)

Gibt zurück: RagResponse mit KI-Antwort, Quellen und Metadaten

// Grundlegende Verwendung
var response = await documentSearchService.GenerateRagAnswerAsync("Wie ist das Wetter?");

// Neues Gespräch starten
var response = await documentSearchService.GenerateRagAnswerAsync("/new");

Weitere wichtige Schnittstellen

Zusätzliche Services für Dokumentenverarbeitung und -speicherung.

// Dokumentenverarbeitung und -analyse
IDocumentParserService - Dokumente analysieren und Text extrahieren
IDocumentRepository - Dokumentenspeicher-Operationen
IAIService - KI-Anbieter-Kommunikation
IAudioParserService - Audio-Transkription (Google Speech-to-Text)

Hauptmodelle

Wesentliche Datenmodelle für SmartRAG-Operationen.

// Hauptantwortmodell
public class RagResponse
{
    public string Query { get; set; }
    public string Answer { get; set; }
    public List<SearchSource> Sources { get; set; }
    public DateTime SearchedAt { get; set; }
}

// Dokumentfragment für Suchergebnisse
public class DocumentChunk
{
    public string Id { get; set; }
    public string DocumentId { get; set; }
    public string Content { get; set; }
    public double RelevanceScore { get; set; }
}

Konfiguration

Wichtige Konfigurationsoptionen für SmartRAG.

// KI-Anbieter
AIProvider.Anthropic    // Claude-Modelle
AIProvider.OpenAI       // GPT-Modelle
AIProvider.Gemini       // Google-Modelle

// Speicheranbieter  
StorageProvider.Qdrant  // Vektordatenbank
StorageProvider.Redis   // Hochleistungs-Cache
StorageProvider.Sqlite  // Lokale Datenbank

Schnellstart

Starten Sie in Minuten mit SmartRAG.

// 1. Services registrieren
services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Redis;
});

// 2. Injizieren und verwenden
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>

        
        

Häufige Muster

Häufig verwendete Muster und Konfigurationen.

// Dokument hochladen
        var document = await _documentService.UploadDocumentAsync(file);

// Dokumente durchsuchen  
var results = await _searchService.SearchDocumentsAsync(query, 10);

// RAG-Gespräch
var response = await _searchService.GenerateRagAnswerAsync(question);

// Konfiguration
services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Redis;
});

Fehlerbehandlung

Häufige Ausnahmen und Fehlerbehandlungsmuster.

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");
}

Leistungstipps

Optimieren Sie die SmartRAG-Leistung mit diesen Tipps.

  • Chunk-Größe: 500-1000 Zeichen für optimales Gleichgewicht
  • Batch-Operationen: Verarbeiten Sie mehrere Dokumente zusammen
  • Caching: Verwenden Sie Redis für bessere Leistung
  • Vektorspeicher: Qdrant für Produktionsumgebungen

Benötigen Sie Hilfe?

Wenn Sie Hilfe mit der API benötigen:

</div> </div>