Grundkonfiguration
SmartRAG kann mit verschiedenen Optionen konfiguriert werden, um Ihren Bedürfnissen zu entsprechen:
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.Anthropic;
options.StorageProvider = StorageProvider.Qdrant;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
Konfigurationsoptionen
Option | Typ | Standard | Beschreibung |
---|---|---|---|
AIProvider |
AIProvider |
Anthropic |
Der KI-Anbieter für Embeddings |
StorageProvider |
StorageProvider |
Qdrant |
Der Speicheranbieter für Vektoren |
MaxChunkSize |
int |
1000 | Maximale Größe der Dokumentenabschnitte |
MinChunkSize |
int |
50 | Minimale Größe der Dokumentenabschnitte |
ChunkOverlap |
int |
200 | Überlappung zwischen Abschnitten |
MaxRetryAttempts |
int |
3 | Maximale Anzahl von Wiederholungsversuchen |
RetryDelayMs |
int |
1000 | Verzögerung zwischen Wiederholungsversuchen (ms) |
RetryPolicy |
RetryPolicy |
ExponentialBackoff |
Wiederholungsrichtlinie |
EnableFallbackProviders |
bool |
false | Fallback-Anbieter aktivieren |
FallbackProviders |
AIProvider[] |
[] | Liste der Fallback-KI-Anbieter |
KI-Anbieter-Konfiguration
Wählen Sie aus mehreren KI-Anbietern für die Embedding-Generierung:
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.Anthropic;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
// appsettings.json
{
"Anthropic": {
"ApiKey": "your-anthropic-key",
"Model": "claude-3-sonnet-20240229"
}
}
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.OpenAI;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
// appsettings.json
{
"OpenAI": {
"ApiKey": "your-openai-key",
"Model": "gpt-4",
"EmbeddingModel": "text-embedding-ada-002"
}
}
services.AddSmartRag(configuration, options =>
{
options.AIProvider = AIProvider.Gemini;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
// appsettings.json
{
"Gemini": {
"ApiKey": "your-gemini-key",
"Model": "gemini-pro",
"EmbeddingModel": "embedding-001"
}
}
Speicher-Anbieter-Konfiguration
Wählen Sie das Speicher-Backend, das am besten zu Ihren Bedürfnissen passt:
services.AddSmartRag(configuration, options =>
{
options.StorageProvider = StorageProvider.Qdrant;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
// appsettings.json
{
"Storage": {
"Qdrant": {
"Host": "localhost",
"ApiKey": "your-qdrant-key",
"CollectionName": "smartrag_documents",
"VectorSize": 768
}
}
}
services.AddSmartRag(configuration, options =>
{
options.StorageProvider = StorageProvider.InMemory;
options.MaxChunkSize = 1000;
options.ChunkOverlap = 200;
});
// Keine zusätzliche Konfiguration erforderlich
Erweiterte Konfiguration
Feinabstimmung von SmartRAG für Ihre spezifischen Anforderungen:
Benutzerdefinierte Chunking
services.AddSmartRag(configuration, options =>
{
options.MaxChunkSize = 500;
options.MinChunkSize = 50;
options.ChunkOverlap = 100;
});
Wiederholungsversuche-Konfiguration
services.AddSmartRag(configuration, options =>
{
options.MaxRetryAttempts = 3;
options.RetryDelayMs = 1000;
options.RetryPolicy = RetryPolicy.ExponentialBackoff;
options.EnableFallbackProviders = true;
options.FallbackProviders = new[] { AIProvider.Gemini, AIProvider.OpenAI };
});
Umgebungskonfiguration
Konfigurieren Sie SmartRAG mit Umgebungsvariablen oder Konfigurationsdateien:
appsettings.json
{
"Anthropic": {
"ApiKey": "your-anthropic-key",
"Model": "claude-3-sonnet-20240229"
},
"Storage": {
"Qdrant": {
"Host": "localhost",
"ApiKey": "your-qdrant-key",
"CollectionName": "smartrag_documents"
}
}
}
Umgebungsvariablen
export ANTHROPIC_API_KEY=your-anthropic-key
export QDRANT_API_KEY=your-qdrant-key
Bewährte Praktiken
API-Schlüssel
Kodieren Sie API-Schlüssel niemals im Quellcode. Verwenden Sie Umgebungsvariablen oder sichere Konfiguration.
Chunk-Größe
Balancieren Sie zwischen Kontext und Leistung. Kleinere Chunks für Präzision, größere für Kontext.
Speicher
Wählen Sie den Speicheranbieter basierend auf Ihrer Skala und Ihren Anforderungen.
Sicherheit
Verwenden Sie angemessene Zugriffskontrollen und Überwachung für Produktionsumgebungen.