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.