- Пофиксил баг в fts5_retrieval_service.py:
HYBRID_MIN_SAMPLE=0+ guardif RATIO > 0. - Написал deep_compare_pipelines.py — корректный тест, сравнивающий выходы Map Phase.
- Запустил тест: query "Как правильно сейчас настраивать и работать со Skills?", эксперты doronin + akimov.
Caution
Overall True Recall: 28% — NEW pipeline теряет 72% релевантных постов, найденных OLD.
| Метрика | doronin | akimov | Total |
|---|---|---|---|
| OLD input (все посты) | 631 | 657 | 1288 |
| NEW input (FTS5) | 179 | 139 | 318 |
| OLD relevant (H+M) | 165 | 28 | 193 |
| NEW relevant (H+M) | 66 | 54 | 120 |
| Overlap | 39 | 15 | 54 |
| True Recall | 23.6% 🔴 | 53.6% 🔴 | 28.0% 🔴 |
| Lost by FTS5 | 165 | 25 | 190 |
| Lost by Map | 0 | 2 | 2 |
| NEW-only wins | 27 | 39 | 66 |
| Latency | 124s → 44s ✅ | 14s → 46s ❌ | — |
Scout query для "Skills":
skills OR навык* OR компетенции OR competency OR "soft skills" OR "hard skills"
OR обучение OR training OR development OR развитие OR профиль OR profile
OR квалификация OR qualification OR аттестация OR assessment
Это ищет буквальное слово "skills" и его прямые синонимы. Но OLD pipeline (Map Phase на ВСЕХ постах) классифицировал как релевантные посты про:
- Cursor IDE, AI-агенты, промпт-инженерию ← нет слова "skills"
- Agentic AI, vibe-coding ← нет слова "skills"
- Claude Skills, AgentKit ← есть, но разные контексты
Important
Map Phase понимает СЕМАНТИКУ запроса — "Skills" в контексте AI-разработки означает "инструменты, методы, навыки работы с AI". FTS5 ищет только по лексическому совпадению ключевых слов.
FTS5 + metadata enrichment не может закрыть разрыв между лексическим поиском и семантическим пониманием. Metadata keywords расширяют охват, но только для терминов, явно упомянутых в тексте, а не для связанных по смыслу тем.
NEW pipeline нашёл 66 постов, которые OLD пропустил! Это потому что:
- FTS5 "сфокусировал" Map Phase на меньшем наборе более релевантных постов
- Map Phase с меньшим контекстом (179 vs 631 постов) может быть более точным — меньше "разбавление внимания" LLM
| # | Вывод |
|---|---|
| 1 | FTS5 Super-Passport НЕ готов к production в текущем виде. Recall 28% неприемлем. |
| 2 | OLD pipeline (Map на всех постах) надёжнее, но дороже (3-10x больше токенов + latency). |
| 3 | Bug Hybrid досыпки пофикшен, но это не решает корневую проблему. |
| 4 | A/B тест скрипт подтверждён как невалидный — измерял не тот уровень. |
| 5 | Новый тест-скрипт deep_compare_pipelines.py даёт достоверные результаты. |
- Отключить Super-Passport по умолчанию (
USE_SUPER_PASSPORT_DEFAULT = false— уже так) ✅ - Рассмотреть embedding-based retrieval вместо FTS5 — закрывает Semantic Gap
- Или: Расширить Scout prompt чтобы генерировал все возможные связанные термины, не только прямые синонимы
- Или: Увеличить
MAX_FTS_RESULTSи добавить semantic re-ranking поверх FTS5