diff --git a/doc/todo_people.md b/doc/todo_people.md new file mode 100644 index 0000000..73c81d9 --- /dev/null +++ b/doc/todo_people.md @@ -0,0 +1,64 @@ +Для того чтобы раскидать задачи между тремя людьми, я распределю их по сложности и приоритету. + +### Человек 1 (Основной фокус на поиске): + +#### `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 вызовов + +--- + +### Человек 2 (Основной фокус на индексации и разметке): + +#### `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` и превращать его в индексируемый текст + +#### `index/requirements.txt` и/или `search/requirements.txt` + +* **P4**: Добавить `razdel` +* **P4**: Добавить `pymorphy3` +* **P4**: Добавить `rapidfuzz` + +--- + +### Человек 3 (Основной фокус на Docker и зависимостях): + +#### `docker-compose.yml` + +* **P3**: Привести локальный `docker-compose.yml` к схеме с `API_KEY` +* **P3**: Добавить `--platform linux/amd64` в сборку образов + +#### `doc/` (новый файл с регрессионными вопросами) + +* **P3**: Зафиксировать набор локальных тестовых вопросов для проверки регрессий + +#### `search/requirements.txt` + +* **P4**: Добавить `python-dateutil` или `dateparser` +* **P4**: Добавить `tenacity` + +--- + +Таким образом, задачи равномерно распределены по 3 участникам с учётом сложности и области фокуса. +