Базовая конфигурация
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-ключи в исходном коде. Используйте переменные окружения или безопасную конфигурацию.
Размер фрагментов
Балансируйте между контекстом и производительностью. Меньшие фрагменты для точности, большие для контекста.
Хранение
Выбирайте провайдера хранения на основе вашего масштаба и требований.
Безопасность
Используйте соответствующие средства контроля доступа и мониторинга для производственных сред.