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

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

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

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

Опция Тип По умолчанию Описание
AIProvider AIProvider Anthropic ИИ-провайдер для эмбеддингов
StorageProvider StorageProvider Qdrant Провайдер хранения для векторов
ApiKey string Обязательно Ваш API-ключ для ИИ-провайдера
ModelName string По умолчанию провайдера Конкретная модель для использования
ChunkSize int 1000 Размер фрагментов документа
ChunkOverlap int 200 Перекрытие между фрагментами

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

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

Anthropic
OpenAI
Azure OpenAI
Gemini
Пользовательский

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

Пользовательский ИИ-провайдер

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

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

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

Qdrant
Redis
SQLite
In-Memory
Файловая система

Qdrant (Векторная база данных)

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

Redis (Кэш в памяти)

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

SQLite (Локальная база данных)

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

In-Memory (Разработка)

services.AddSmartRAG(options =>
{
    options.StorageProvider = StorageProvider.InMemory;
    // Дополнительная конфигурация не требуется
});

Файловая система (Локальное хранилище)

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

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

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

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

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

Обработка документов

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

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

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

appsettings.json

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

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

export SMARTRAG_AI_PROVIDER=Anthropic
export SMARTRAG_STORAGE_PROVIDER=Qdrant
export SMARTRAG_API_KEY=your-api-key

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

API-ключи

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

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

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

Хранение

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

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

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