Тюнинг RAG в Utracker: чанки, multi-query и честный empty

Тюнинг RAG в Utracker: dimensions=768, chunk 1200/150, multi-query и RRF, rerank по title, eval на 26 кейсах. Нет embeddings, остаётся FTS.

Тюнинг RAG в Utracker: dimensions=768, chunk 1200/150, multi-query и RRF, rerank по title, eval на 26 кейсах. Нет embeddings, остаётся FTS.

Каркас RAG в Utracker уже был: pgvector в Postgres заказчика, hybrid, FTS fallback, wand. Create issue только после confirm. На стенде выяснилось: индекс собран, ответы мимо. Выкат каркаса: RAG на pgvector.

Почему индекс молчит

Разговорный запрос и ключи в wiki расходятся. Stopwords и вежливая вода портят embedding. openai text-embedding-3-* по умолчанию отдаёт размерность не 768, а колонка vector(768). Без dimensions=768 вектора мимо. Если провайдер эмбеддингов флапает, раньше валился весь query, хотя FTS жив. Чанки по 4k с overlap 1k давали кашу, rerank не спасал.

Chunk 1200 и multi-query

Поставили chunk 1200, overlap 150, переиндексацию. Multi-query вычищает разговорный мусор, гоняет несколько формулировок в vector и FTS, склеивает RRF. Rerank бустит title и heading, штрафует пустышки импорта, слегка поднимает doc-type. Intent: howto жмёт в одну страницу, overview разводит pageId.

Промпт ассистента на этом круге не крутили. Reranker-saas не покупали.

Честный empty и eval

Negative обязан быть пустым без фейковых цитат. Soft-fail embeddings: провайдер недоступен, остаётся FTS, статус 500 не отдаём. В чате кликабельные источники. Eval pack на 26 кейсов (howto, overview, negative) и smoke после reindex.

Пока negative на ерунду не отрабатывает пусто, grounded answers рано ставить в витрину. Карта процесса того же контура: Process Hub.