# Статус проекта Последняя проверка: 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 — не создан