Files
akyldash/docs/operations/project-status.md

19 KiB
Raw Blame History

Статус проекта

Последняя проверка: 2026-09-14 Назначение документа: быстро восстановить контекст проекта для участников команды и будущих агентов.

  • Telegram-бот: 0.2.2
  • Telegram-бот на Synology: 0.2.1
  • Backend: 0.9.0
  • 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.0 · Frontend — не создан