Grundkonfiguration

SmartRAG kann mit verschiedenen Optionen konfiguriert werden, um Ihren Bedürfnissen zu entsprechen:

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.ApiKey = "your-api-key";
});

Konfigurationsoptionen

Option Typ Standard Beschreibung
AIProvider AIProvider Anthropic Der KI-Anbieter für Embeddings
StorageProvider StorageProvider Qdrant Der Speicheranbieter für Vektoren
ApiKey string Erforderlich Ihr API-Schlüssel für den KI-Anbieter
ModelName string Anbieter-Standard Das spezifische zu verwendende Modell
ChunkSize int 1000 Größe der Dokumentenabschnitte
ChunkOverlap int 200 Überlappung zwischen Abschnitten

KI-Anbieter-Konfiguration

Wählen Sie aus mehreren KI-Anbietern für die Embedding-Generierung:

Anthropic
OpenAI
Azure OpenAI
Gemini
Benutzerdefiniert

Anthropic (Claude)

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.ApiKey = "your-anthropic-key";
    options.ModelName = "claude-3-sonnet-20240229";
});

OpenAI

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.OpenAI;
    options.ApiKey = "your-openai-key";
    options.ModelName = "text-embedding-ada-002";
});

Azure OpenAI

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.AzureOpenAI;
    options.ApiKey = "your-azure-key";
    options.Endpoint = "https://your-resource.openai.azure.com/";
    options.ModelName = "text-embedding-ada-002";
});

Google Gemini

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Gemini;
    options.ApiKey = "your-gemini-key";
    options.ModelName = "embedding-001";
});

Benutzerdefinierter KI-Anbieter

services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Custom;
    options.CustomEndpoint = "https://your-custom-api.com/v1/embeddings";
    options.ApiKey = "your-custom-key";
    options.ModelName = "your-custom-model";
});

Speicher-Anbieter-Konfiguration

Wählen Sie das Speicher-Backend, das am besten zu Ihren Bedürfnissen passt:

Qdrant
Redis
SQLite
In-Memory
Dateisystem

Qdrant (Vektor-Datenbank)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Qdrant;
    options.QdrantUrl = "http://localhost:6333";
    options.CollectionName = "smartrag_documents";
});

Redis (In-Memory-Cache)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Redis;
    options.RedisConnectionString = "localhost:6379";
    options.DatabaseId = 0;
});

SQLite (Lokale Datenbank)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.Sqlite;
    options.ConnectionString = "Data Source=smartrag.db";
});

In-Memory (Entwicklung)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.InMemory;
    // Keine zusätzliche Konfiguration erforderlich
});

Dateisystem (Lokaler Speicher)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.FileSystem;
    options.StoragePath = "./data/smartrag";
});

Erweiterte Konfiguration

Feinabstimmung von SmartRAG für Ihre spezifischen Anforderungen:

Benutzerdefinierte Chunking

services.AddSmartRAG(options =>
{
    options.ChunkSize = 500;
    options.ChunkOverlap = 100;
    options.ChunkingStrategy = ChunkingStrategy.Sentence;
});

Dokumentenverarbeitung

services.AddSmartRAG(options =>
{
    options.SupportedFormats = new[] { ".pdf", ".docx", ".txt" };
    options.MaxFileSize = 10 * 1024 * 1024; // 10MB
    options.EnableTextExtraction = true;
});

Umgebungskonfiguration

Konfigurieren Sie SmartRAG mit Umgebungsvariablen oder Konfigurationsdateien:

appsettings.json

{
  "SmartRAG": {
    "AIProvider": "Anthropic",
    "StorageProvider": "Qdrant",
    "ApiKey": "your-api-key",
    "ChunkSize": 1000,
    "ChunkOverlap": 200
  }
}

Umgebungsvariablen

export SMARTRAG_AI_PROVIDER=Anthropic
export SMARTRAG_STORAGE_PROVIDER=Qdrant
export SMARTRAG_API_KEY=your-api-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.