docs: результаты приёмки RAG-справки и фикс реранкера
Спек дополнен фактами прогона: 2465 документов / 13 755 точек, проверка grep/search/фильтров, живой прогон CI с инкрементальной переиндексацией. Отдельно зафиксирована находка — реранк падал 400 на длинных чанках (слот 1024 токена против обрезки в 2000 символов); починено в rag-node.
This commit is contained in:
@@ -388,3 +388,38 @@ mcp__kompas-sdk__knowledge_status`. Модель остаётся Haiku.
|
||||
|
||||
Проверено: MCP отвечает `initialize` (protocol 2025-06-18), без токена — 401,
|
||||
личный и рабочий токены на 8092 — 401, sdk-токен на 8090/8091 — 401.
|
||||
|
||||
### Побочная находка: реранк падал на длинных чанках
|
||||
|
||||
`search_knowledge` с `type=enum` возвращал `400 Bad Request` от реранкера вместо
|
||||
результатов. Причина не в фильтре: слот реранкера — **1024 токена**
|
||||
(`n_slots=4`, `n_ctx_slot=1024`; больше и не имеет смысла — jina-reranker-v2
|
||||
обучен на `n_ctx_train=1024`), а `RERANK_DOC_CHARS` резал документы по **2000
|
||||
символов**, что на кириллице и таблицах enum даёт до 1018 токенов. Один такой
|
||||
документ ломал весь запрос. Личную и рабочую базы это не задевало только потому,
|
||||
что их чанки короче.
|
||||
|
||||
Починено в репозитории `rag-node` (коммит `322b717`): обрезка снижена до 1400
|
||||
символов (худшее наблюдаемое отношение — 0.45 токена на символ, то есть ~630
|
||||
токенов), а сам реранк переведён в **fail-soft** — при отказе отдаётся порядок
|
||||
векторного поиска, как и при недоступном Redis, а не ошибка инструмента.
|
||||
|
||||
### Приёмка
|
||||
|
||||
- `knowledge_status`: 2465 документов, 13 755 точек, коммит совпадает с `main`.
|
||||
- `grep_knowledge`: попадания по `SetSideParam`, `CalcMassInertiaProperties`,
|
||||
`ksHoleTypeEnum`, `GetGabarit`, `FindObjectsByPoint`.
|
||||
- `search_knowledge`: 7 из 8 контрольных вопросов дают точный топ-1
|
||||
(`ksShellDefinition`, `ksRibDefinition`, `ksRDimSourceParam`,
|
||||
`ksLinearPatternBuildingTypeEnum`, «Переменные», «Операции», «Компоненты»).
|
||||
Слабое место — «сопряжения компонентов сборки»: топ-1 уходит в
|
||||
`ksUnionComponentsDefinition` (булево объединение), а не в `IMateConstraints3D`;
|
||||
для таких запросов агенту надёжнее `grep_knowledge` по имени интерфейса.
|
||||
- Фильтры `type`, `tags`, `path_prefix` возвращают только свои разделы.
|
||||
- CI (`run 2`) прошёл целиком: дождался общего лока, отработал инкрементально
|
||||
(`unchanged 2465, chunks 0`) и переключил alias — инкрементальность и триггеры
|
||||
проверены живьём, без искусственного прогона.
|
||||
- Регламент обновления прогнан вхолостую: повторная генерация v24 даёт пустой diff.
|
||||
|
||||
Набор приёмочных запросов лежит в репозитории доков —
|
||||
`tools/rag/acceptance-queries.md`.
|
||||
|
||||
Reference in New Issue
Block a user