266 lines
19 KiB
Markdown
266 lines
19 KiB
Markdown
# Статус проекта
|
||
|
||
Последняя проверка: 2026-09-14
|
||
Назначение документа: быстро восстановить контекст проекта для участников команды и будущих агентов.
|
||
|
||
- Telegram-бот: `0.2.2`
|
||
- Telegram-бот на Synology: `0.2.1`
|
||
- Backend: `0.9.1`
|
||
- Frontend: не создан
|
||
|
||
## Краткий итог
|
||
|
||
Репозиторий переориентирован с отдельного бота на весь проект юридической информационно-аналитической платформы. Telegram-бот выделен в инструмент рабочего окружения. Реализованы возобновляемая выгрузка документов из официального Open Data API ЦБД Минюста КР и их локальная воспроизводимая нормализация.
|
||
|
||
Поисковая система и внутренняя лаборатория оценки выдачи реализованы. Ближайшая
|
||
цель — проверить собственную выдачу на практических RU/KY-запросах, разобрать
|
||
оценки юристов и зафиксировать baseline. ЦБД Минюста служит источником для
|
||
проверки документов и редакций, а не системой для сравнения поисковой выдачи.
|
||
|
||
## Уже сделано
|
||
|
||
### Telegram
|
||
|
||
- Создана супергруппа `Акылдаш`.
|
||
- Создан бот `help_clerk_bot`.
|
||
- Бот добавлен в супергруппу с необходимыми правами.
|
||
- Privacy Mode бота отключён.
|
||
- Созданы и проверены рабочие темы.
|
||
- Проверено подключение к Telegram Bot API.
|
||
- Webhook у бота не установлен; доступен режим long polling через `getUpdates`.
|
||
|
||
### ID тем
|
||
|
||
| Тема | `message_thread_id` | Состояние |
|
||
|---|---:|---|
|
||
| Общее | отсутствует | приветствие закреплено, тема закрыта |
|
||
| MVP | `2` | подтверждено тестовым сообщением |
|
||
| Решения | `4` | подтверждено тестовым сообщением |
|
||
| Обсуждение | `6` | подтверждено тестовым сообщением |
|
||
| Работа с ИИ | `8` | материалы опубликованы, тема закрыта |
|
||
| Отчеты | `37` | экспорт проверен, тема закрыта |
|
||
|
||
### Документация и правила
|
||
|
||
- Подготовлен общий план реализации в `docs/operations/telegram-workspace-plan.md`.
|
||
- Зафиксированы границы MVP и правила работы с данными в `docs/decisions/001-telegram-workspace-mvp.md`.
|
||
- Добавлены обзор всей платформы и единый индекс документации.
|
||
- В MVP не входит автоматический вызов API языковой модели.
|
||
- Анализ экспортов выполняется вручную в обычном ChatGPT.
|
||
- Telegram используется как рабочий штаб, Git/Gitea — как источник утверждённых материалов.
|
||
- Подготовлены и опубликованы краткие навыки работы с ИИ для начинающих.
|
||
- В `Общее` опубликовано и закреплено приветствие с назначением тем и описанием бота.
|
||
|
||
### Доступы
|
||
|
||
- Локальные доступы находятся в `credentials.json`.
|
||
- `credentials.json` добавлен в `.gitignore`.
|
||
- Секреты нельзя добавлять в Git, логи, экспорты или сообщения бота.
|
||
|
||
### Репозиторий и приложение
|
||
|
||
- Реализован бот-секретарь версии `0.2.2` без внешних Python-зависимостей.
|
||
- Код бота выделен из корня репозитория в `tools/telegram-bot`.
|
||
- Сообщения и полные Telegram-метаданные сохраняются в SQLite.
|
||
- Добавлены команды `/help`, `/status` и `/export`.
|
||
- Экспорт доступен только владельцу, указанному в `TELEGRAM_OWNER_ID`.
|
||
- Первый `/export` охватывает всю сохранённую тему, последующие начинаются после последней успешно созданной отсечки.
|
||
- Отчёты публикуются в закрытой теме `Отчеты` (`message_thread_id=37`).
|
||
- Исходное обсуждение завершается заметной отсечкой со ссылкой и хэштегом отчёта.
|
||
- Локальный Git-репозиторий восстановлен и привязан к Gitea.
|
||
- Репозиторий организован как основа всего проекта, а не отдельного бота.
|
||
- Бот развёрнут в Container Manager на Synology; автозапуск после перезапуска менеджера проверен.
|
||
- Реализован backend-загрузчик ЦБД Минюста КР версии `0.2.2` без внешних зависимостей.
|
||
- Загрузчик сохраняет метаданные, редакции RU/KY и изображения, а прогресс — в SQLite.
|
||
- Пилотная выгрузка двух документов и возобновление без повторного скачивания проверены на живом API.
|
||
- Реализован backend-нормализатор версии `0.2.2` без внешних зависимостей.
|
||
- Нормализатор создаёт канонические метаданные, безопасный HTML, чистый текст и адресуемые фрагменты RU/KY.
|
||
- SQLite-манифест обеспечивает возобновление, повтор ошибок и пропуск неизменившихся документов.
|
||
- Полный проход завершён: 209 958 документов нормализованы без ошибок.
|
||
- Контрольная выборка RU/KY прошла проверки текста, фрагментов, ID и SHA-256.
|
||
- Добавлены строгий mapping и атомарный Bulk NDJSON-экспорт для OpenSearch.
|
||
- На предыдущей итерации использовались Excel/PDF-бланки юридической проверки;
|
||
текущий процесс опирается на relevance set и внутреннюю лабораторию.
|
||
|
||
### Развёртывание
|
||
|
||
- Бот постоянно запущен на Synology в контейнере `akyldash-bot`.
|
||
- Используется официальный образ `python:3.11-slim` и long polling.
|
||
- Контейнер работает без root, с read-only root filesystem и политикой `unless-stopped`.
|
||
- Доступ к Telegram Bot API идёт через отдельный закрытый прокси-контейнер без опубликованных наружу портов.
|
||
- Код, закрытый env-файл и SQLite хранятся в `/volume1/docker/akyldash`.
|
||
|
||
## Пока не сделано
|
||
|
||
### Развёртывание и сопровождение
|
||
|
||
- Docker-конфигурация развёртывания не хранится в репозитории.
|
||
- Не настроен CI/CD.
|
||
|
||
### Хранилище
|
||
|
||
- PostgreSQL не подключён; первая версия использует SQLite.
|
||
- Не утверждена окончательная схема PostgreSQL.
|
||
- Не определены сроки хранения сообщений, вложений и экспортов.
|
||
|
||
### Функции бота
|
||
|
||
- Скачивание файлов вложений; сейчас сохраняются их Telegram-метаданные.
|
||
- Ручная пометка отдельных сообщений для экспорта.
|
||
- Формирование готовой инструкции для ручной загрузки в ChatGPT.
|
||
- Возврат отчёта пользователя в Telegram.
|
||
|
||
### Группа и рабочий процесс
|
||
|
||
- Не проверены сценарии закрытия темы `MVP` после фиксации состава первой версии.
|
||
- Не настроены уведомления Gitea.
|
||
- Не проведён полный пользовательский тест: сообщение → сохранение → экспорт → анализ в ChatGPT → возврат отчёта.
|
||
|
||
### Готовность поиска к frontend
|
||
|
||
- Реализована внутренняя лаборатория для просмотра и оценки фактической
|
||
выдачи OpenSearch; пилот с юристами ещё не проведён.
|
||
- Не завершена независимая юридическая проверка всех 50 запросов relevance set
|
||
v1; спорные строки нельзя включать в baseline.
|
||
- Не зафиксированы неизменяемая копия подтверждённого relevance set и baseline
|
||
`Recall@10`/`MRR@10`.
|
||
- Не пройден финальный readiness gate: обновление корпуса, переиндексация,
|
||
проверка выдачи и API-сценарии для RU, KY и одноязычных актов.
|
||
|
||
## Важные неизвестные
|
||
|
||
По мере реального использования нужно принять решения по следующим вопросам:
|
||
|
||
1. Адрес и параметры PostgreSQL для разработки и Synology.
|
||
2. Правила хранения и удаления сообщений и вложений.
|
||
3. Нужен ли webhook после постоянного развёртывания; первая версия работает через long polling.
|
||
|
||
## Следующий этап
|
||
|
||
### Проверка собственной поисковой выдачи
|
||
|
||
1. Подготовить согласованный RU/KY relevance set: фиксировать потребность
|
||
запроса и подтверждённые `document_code`, не ориентируясь на порядок выдачи.
|
||
2. Проверить практические запросы во внутренней лаборатории `/review`, сохранить
|
||
снимки и оценки фактических результатов OpenSearch.
|
||
3. Разобрать ошибки ранжирования, сохранить baseline и повторить ту же проверку
|
||
после изменений.
|
||
4. Затем пройти readiness gate issue #21 для корпуса, индекса и Search API перед
|
||
проектированием публичного frontend.
|
||
|
||
## История изменений статуса
|
||
|
||
### 2026-09-12
|
||
|
||
- Внутренняя лаборатория оценивает фактическую выдачу собственного OpenSearch;
|
||
ЦБД Минюста используется только для проверки источников и редакций актов.
|
||
- Backend `0.8.3`; закрытая внутренняя лаборатория готова к пилоту.
|
||
|
||
### 2026-09-06
|
||
|
||
- Подготовлены бланки независимой юридической проверки relevance set v1 для
|
||
русского и кыргызского языков и инструкция для юриста.
|
||
- Ближайшим этапом зафиксированы юридическая верификация, baseline качества
|
||
поиска и финальный readiness gate перед frontend.
|
||
|
||
### 2026-08-18
|
||
|
||
- Оценщик поиска использует `cross_fields` для совместного сопоставления
|
||
названия и текста документа.
|
||
- На размеченном наборе из 50 запросов Recall@10 вырос с `0.23` до `0.30`,
|
||
MRR@10 — с `0.1854` до `0.2272`.
|
||
- Версия backend обновлена до `0.5.1`.
|
||
|
||
### 2026-08-14
|
||
|
||
- Добавлены шаблон relevance set v1 и воспроизводимый расчёт Recall@K/MRR@K.
|
||
- Версия backend обновлена до `0.5.0`.
|
||
|
||
- Полный локальный индекс содержит 56 295 965 фрагментов и успешно отвечает на
|
||
RU/KY-запросы.
|
||
- Добавлены атомарный checkpoint и безопасное продолжение прерванной загрузки
|
||
существующего индекса.
|
||
- Добавлены retry/backoff для временных HTTP-сбоев и подробные ошибки Bulk API.
|
||
- Ошибки чтения JSON теперь содержат точный путь и повторяются при временном сбое.
|
||
- Версия backend обновлена до `0.4.1`.
|
||
|
||
### 2026-08-13
|
||
|
||
- Добавлен локальный одноузловой OpenSearch с `analysis-icu` без Dashboards.
|
||
- Добавлена прямая потоковая загрузка корпуса пакетами до 25 МБ.
|
||
- Версия backend обновлена до `0.4.0`.
|
||
|
||
### 2026-08-13
|
||
|
||
- Подтверждена полная успешная нормализация 209 958 загруженных документов.
|
||
- Единственный отсутствующий документ `6` повторно не отдан API Минюста.
|
||
- Добавлены mapping фрагментов и потоковый экспорт для OpenSearch Bulk API.
|
||
- Версия backend обновлена до `0.3.0`.
|
||
|
||
### 2026-08-12
|
||
|
||
- Нормализатор запрещает пересекающиеся каталоги источника и результата,
|
||
восстанавливает прерванную публикацию и отбрасывает некорректные URL.
|
||
- Версия backend обновлена до `0.2.2`.
|
||
- Загрузчик пересоздаёт временный список документов на текущей странице не
|
||
только после HTTP 404, но и после исчерпания повторов запроса списка.
|
||
- Версия backend обновлена до `0.2.1`.
|
||
|
||
### 2026-08-10
|
||
|
||
- Добавлена первая версия воспроизводимой нормализации локального архива ЦБД.
|
||
- Добавлены атомарная публикация результатов, контрольные суммы, карантин ошибок и терминальный прогресс.
|
||
- Версия backend обновлена до `0.2.0`.
|
||
|
||
### 2026-08-06
|
||
|
||
- Добавлен терминальный прогрессбар со скоростью и расчётным временем завершения.
|
||
- Обработка HTTP 429 учитывает рекомендованную сервером задержку `Retry-After`.
|
||
- Добавлено автоматическое восстановление после истечения серверного списка документов.
|
||
- Версия backend обновлена до `0.1.2`.
|
||
|
||
### 2026-08-05
|
||
|
||
- Создана область `backend/ingestion` для получения правовых источников.
|
||
- Реализована возобновляемая выгрузка ЦБД Минюста КР версии `0.1.0`.
|
||
- Проверены двуязычные редакции, изображения, SQLite-манифест и повторный запуск.
|
||
|
||
### 2026-08-03
|
||
|
||
- Репозиторий перестроен под весь проект юридической платформы; Telegram-бот перенесён в `tools/telegram-bot`.
|
||
- Созданы обзор продукта и структурированный индекс документации; будущие каталоги решено создавать по фактическим задачам.
|
||
- Закрытые юридические материалы решено хранить отдельно от основного репозитория.
|
||
- Версия Telegram-бота обновлена до `0.2.2` из-за изменения структуры запуска.
|
||
- Экспорт без параметров переведён с периода в семь дней на диапазон после предыдущей отсечки.
|
||
- Бот развёрнут в Container Manager на Synology; автозапуск проверен перезапуском.
|
||
- В теме `Работа с ИИ` опубликована первоначальная библиотека практик и отдельный материал о безопасной работе с Codex.
|
||
- В `Общее` опубликовано и закреплено приветствие; тема закрыта для сообщений.
|
||
- Локальный файл доступов переведён из `credentials.txt` в `credentials.json`.
|
||
|
||
### 2026-08-02
|
||
|
||
- Экспорт ограничен Telegram ID владельца бота.
|
||
- Технические ответы на корневое сообщение темы исключены из Markdown.
|
||
- Экспорт перенесён в тему `Отчеты`, добавлены отсечки и навигационные хэштеги.
|
||
- Проверена живая публикация отчёта и отсечки через Telegram Bot API.
|
||
- Бот версии `0.2.0` развёрнут в Container Manager на Synology.
|
||
- Версия приложения обновлена до `0.2.0`.
|
||
|
||
### 2026-08-01
|
||
|
||
- Восстановлена связь локального каталога с репозиторием Gitea.
|
||
- Реализован бот-секретарь версии `0.1.0` с SQLite и Markdown-экспортом.
|
||
- Проверены токен `help_clerk_bot` и доступ к супергруппе `Акылдаш`.
|
||
|
||
### 2026-07-31
|
||
|
||
- Создана супергруппа и добавлен бот.
|
||
- Отключён Privacy Mode.
|
||
- Определены ID тем: `2`, `4`, `6`, `8`.
|
||
- Подтверждено отсутствие webhook.
|
||
- Зафиксировано, что код бота и хранилище ещё не реализованы.
|
||
|
||
---
|
||
|
||
Акылдаш · Telegram-бот v0.2.2 · Backend v0.9.1 · Frontend — не создан
|