Настройки

LLM-ключи и конфигурация пайплайна

LLM-ключи (Gemini)

Включённые ключи используются round-robin на каждый запрос + failover на 429 (обход дневной квоты). Секрет хранится в БД, в UI — только маска.
Метка
API-ключ
Формат CSV: label,key (опц. третья колонка enabled); заголовок необязателен.
Метка Ключ В ротации Использован
gemini-1 ••••…DO4g
19.08 18:11:46
gemini-2 ••••…2ctg
19.08 18:11:46
gemini-3 ••••…MQzw
19.08 18:20:47

Редактируемые настройки

Сохраняются в БД (app_settings), переопределяют appsettings без рестарта (Worker подхватывает ≤15с).

Чат

Модель /ask
Temperature (0–2)
Max output tokens
Фрагментов в контексте

Чанкинг

Размер чанка (символы)
Overlap (символы)
Чанкинг действует на новую индексацию; старые чанки — после reindex.

Гибридный поиск

Порог AND→OR (1–30)
Full-text сначала ищет по всем терминам (AND); если совпадений меньше порога — расширяет до «любого термина» (OR).
Вес отменённых документов (0–1)
Множитель score для документов с пометкой «Отменён»: 1 — не понижать, 0 — практически вытеснить из выдачи.

Загрузка

Макс. файлов за раз (1–1000)
После загрузки пачки создаётся один extraction-батч; схема подбирается по ключевым словам. Тратит LLM-квоту.

Embedding-модель

Смена размерности пересоздаёт колонку векторов и HNSW-индекс и стирает все эмбеддинги; поиск не работает, пока не завершится полный reindex. Embedding-квота тратится на переиндексацию всего корпуса.
Модель embedding
Размерность (64–2000)
Ниже — эффективная конфигурация пайплайна (из appsettings + app_settings + кода). Секреты маскируются.

Загрузка

Загрузка документов через UI.
Макс. файлов за раз 100
Авто-извлечение после загрузки да

Индексация

Размер чанка и overlap (символы). Подбираются на evaluation dataset.
Размер чанка (символы) 2800
Overlap (символы) 340

Embeddings (Gemini)

Векторизация чанков и запросов.
Модель gemini-embedding-001
Размерность 768
Размер батча 90
Base URL https://generativelanguage.googleapis.com/v1beta
Таймаут (с) 120
API-ключ
(из env GEMINI_API_KEY)

Chat (Gemini)

Генерация ответа /ask и контекстуализация диалога.
Модель /ask gemini-2.5-flash
Temperature 0.2
Max output tokens 2048
Фрагментов в контексте 6
Base URL https://generativelanguage.googleapis.com/v1beta
Таймаут (с) 120
API-ключ
(из env GEMINI_API_KEY)

Гибридный поиск (RRF)

Слияние vector + full-text. PerListLimit и RRF-k — код-константы; порог AND→OR редактируется.
Кандидатов на список 30
Константа RRF (k) 60
Порог AND→OR (чанков) 3
Вес отменённых документов 0.5
Списки pgvector (cosine) + full-text (russian + english)

Tika

Извлечение текста и OCR из оригиналов.
Base URL http://minirag-tika:9998
Таймаут (с) 120

Хранилище (S3 / MinIO)

Оригиналы документов.
Endpoint http://minirag-minio:9000
Bucket minirag-documents
Region us-east-1
Path-style да
Presign TTL (мин) 15
Access key
•••• (задан)
Secret key
•••• (задан)

RabbitMQ

Брокер пайплайна (MassTransit).
Host minirag-rabbitmq
Port 5672
Virtual host minirag
Username minirag
Password
•••• (задан)

PostgreSQL

System of record + pgvector.
Connection string
Host=minirag-postgres;Port=5432;Database=minirag;Username=minirag;Password=••••
Произошла непредвиденная ошибка. Перезагрузить 🗙

Переподключение к серверу…

Не удалось переподключиться. Повтор через с.

Переподключиться не удалось.
Повторите попытку или перезагрузите страницу.

Сессия приостановлена сервером.

Не удалось возобновить сессию.
Повторите попытку или перезагрузите страницу.