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

16 KiB
Raw Blame History

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

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

  • Telegram-бот: 0.2.2
  • Telegram-бот на Synology: 0.2.1
  • Backend: 0.7.1
  • Frontend: не создан

Краткий итог

Репозиторий переориентирован с отдельного бота на весь проект юридической информационно-аналитической платформы. Telegram-бот выделен в инструмент рабочего окружения. Реализованы возобновляемая выгрузка документов из официального Open Data API ЦБД Минюста КР и их локальная воспроизводимая нормализация.

Ближайшая цель — оценить полный локальный индекс на 50100 запросах RU/KY и настроить ранжирование до начала разработки поискового API.

Уже сделано

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.

Развёртывание

  • Бот постоянно запущен на 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 → возврат отчёта.

Важные неизвестные

По мере реального использования нужно принять решения по следующим вопросам:

  1. Адрес и параметры PostgreSQL для разработки и Synology.
  2. Правила хранения и удаления сообщений и вложений.
  3. Нужен ли webhook после постоянного развёртывания; первая версия работает через long polling.

Следующий этап

Фиксация MVP и проверка полного цикла

Рекомендуемый порядок:

  1. Настроить резервное копирование /volume1/docker/akyldash/data.
  2. Зафиксировать состав MVP с командой и закрыть тему MVP.
  3. Провести одно реальное обсуждение с ответами, правками и вложением.
  4. Экспортировать обсуждение и вручную проанализировать Markdown в ChatGPT.
  5. Вернуть подтверждённый итог в тему Решения и зафиксировать его в Git/Gitea.
  6. Записать обнаруженные неудобства и только после этого выбирать следующую доработку.

История изменений статуса

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.7.1 · Frontend — не создан