Update todolist

This commit is contained in:
q 2026-04-18 11:33:43 +03:00
parent 142580cd96
commit 3ea1cd3066

64
doc/todo_people.md Normal file
View file

@ -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 участникам с учётом сложности и области фокуса.