49 lines
2.9 KiB
Markdown
49 lines
2.9 KiB
Markdown
# TODO
|
||
|
||
## `search/main.py`
|
||
|
||
- [ ] P0: Переключить основной query на `question.search_text` с fallback на `question.text`
|
||
- [ ] P0: Подключить `question.variants` как дополнительные query-варианты
|
||
- [ ] P0: Подключить `question.hyde` как дополнительные dense-запросы
|
||
- [ ] P0: Подключить `question.keywords` как основу для sparse-запросов
|
||
- [ ] P0: Перестать терять retrieval-кандидатов после rerank
|
||
- [ ] P0: Дедуплицировать `message_ids` перед ответом
|
||
- [ ] P0: Ограничить финальную выдачу до `top-50`
|
||
- [ ] P0: Агрегировать score по `message_id`
|
||
- [ ] P2: Использовать `entities.people` и `entities.emails` для boost или фильтрации
|
||
- [ ] P2: Использовать `entities.documents`, `entities.names`, `entities.links` для lexical boost
|
||
- [ ] P2: Использовать `date_range` для фильтрации по `metadata.start` и `metadata.end`
|
||
- [ ] P2: Использовать `contains_quote` и `contains_forward` как сигналы ранжирования
|
||
- [ ] P2: Добавить multi-query fusion в `Qdrant`
|
||
- [ ] P2: Подобрать `prefetch`, `retrieve_k`, `rerank_limit`
|
||
- [ ] P3: Добавить retry и timeout политику для dense/rerank HTTP вызовов
|
||
|
||
## `index/main.py`
|
||
|
||
- [ ] P1: Перейти с символьного chunking на chunking по сообщениям
|
||
- [ ] P1: Учитывать time gap при сборке чанков
|
||
- [ ] P1: Маркировать в тексте `quote`, `forward`, автора сообщения и автора цитаты
|
||
- [ ] P1: Развести `page_content`, `dense_content`, `sparse_content`
|
||
- [ ] P1: Материализовать `sender_id` и `mentions` в индексируемый текст
|
||
- [ ] P1: Разбирать `file_snippets` и вытаскивать имя файла, mime и url
|
||
- [ ] P1: Разбирать `member_event` и превращать его в индексируемый текст
|
||
|
||
## `docker-compose.yml`
|
||
|
||
- [ ] P3: Привести локальный `docker-compose.yml` к схеме с `API_KEY`
|
||
- [ ] P3: Добавить `--platform linux/amd64` в сборку образов
|
||
|
||
## `doc/` (новый файл с регрессионными вопросами)
|
||
|
||
- [ ] P3: Зафиксировать набор локальных тестовых вопросов для проверки регрессий
|
||
|
||
## `search/requirements.txt`
|
||
|
||
- [ ] P4: Добавить `python-dateutil` или `dateparser`
|
||
- [ ] P4: Добавить `tenacity`
|
||
|
||
## `index/requirements.txt` и/или `search/requirements.txt`
|
||
|
||
- [ ] P4: Добавить `razdel`
|
||
- [ ] P4: Добавить `pymorphy3`
|
||
- [ ] P4: Добавить `rapidfuzz`
|