Базовая конфигурация

SmartRAG можно настроить с различными опциями в соответствии с вашими потребностями:

services.AddSmartRag(configuration, options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.MaxChunkSize = 1000;
    options.ChunkOverlap = 200;
});

Опции конфигурации

Опция Тип По умолчанию Описание
AIProvider AIProvider Anthropic ИИ-провайдер для эмбеддингов
StorageProvider StorageProvider Qdrant Провайдер хранения для векторов
MaxChunkSize int 1000 Максимальный размер фрагментов документа
MinChunkSize int 50 Минимальный размер фрагментов документа
ChunkOverlap int 200 Перекрытие между фрагментами
MaxRetryAttempts int 3 Максимальное количество попыток повтора
RetryDelayMs int 1000 Задержка между попытками повтора (мс)
RetryPolicy RetryPolicy ExponentialBackoff Политика повтора
EnableFallbackProviders bool false Включить резервные провайдеры
FallbackProviders AIProvider[] [] Список резервных ИИ-провайдеров

Конфигурация ИИ-провайдеров

Выберите из нескольких ИИ-провайдеров для генерации эмбеддингов:

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

Конфигурация провайдеров хранения

Выберите бэкенд хранения, который лучше всего подходит для ваших потребностей:

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;
});
// Дополнительная конфигурация не требуется

Расширенная конфигурация

Настройте SmartRAG для ваших конкретных требований:

Пользовательское разбиение на фрагменты

services.AddSmartRag(configuration, options =>
{
    options.MaxChunkSize = 500;
    options.MinChunkSize = 50;
    options.ChunkOverlap = 100;
});

Конфигурация повторов

services.AddSmartRag(configuration, options =>
{
    options.MaxRetryAttempts = 3;
    options.RetryDelayMs = 1000;
    options.RetryPolicy = RetryPolicy.ExponentialBackoff;
    options.EnableFallbackProviders = true;
    options.FallbackProviders = new[] { AIProvider.Gemini, AIProvider.OpenAI };
});

Конфигурация окружения

Настройте SmartRAG с помощью переменных окружения или файлов конфигурации:

appsettings.json

{
   "Anthropic": {
     "ApiKey": "your-anthropic-key",
     "Model": "claude-3-sonnet-20240229"
   },
   "Storage": {
     "Qdrant": {
       "Host": "localhost",
       "ApiKey": "your-qdrant-key",
       "CollectionName": "smartrag_documents"
     }
   }
 }

Переменные окружения

export ANTHROPIC_API_KEY=your-anthropic-key
export QDRANT_API_KEY=your-qdrant-key

Лучшие практики

API-ключи

Никогда не храните API-ключи в исходном коде. Используйте переменные окружения или безопасную конфигурацию.

Размер фрагментов

Балансируйте между контекстом и производительностью. Меньшие фрагменты для точности, большие для контекста.

Хранение

Выбирайте провайдера хранения на основе вашего масштаба и требований.

Безопасность

Используйте соответствующие средства контроля доступа и мониторинга для производственных сред.