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 BenutzersmaxResults
(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>