refactor: organize repository around legal platform
This commit is contained in:
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* text=auto eol=lf
|
||||||
74
README.md
74
README.md
@@ -1,46 +1,58 @@
|
|||||||
# Акылдаш — бот-секретарь
|
# Акылдаш
|
||||||
|
|
||||||
Версия: `0.2.1`
|
Акылдаш — проект юридической информационно-аналитической платформы. Цель —
|
||||||
|
собирать правовые источники на законных основаниях, сохранять их происхождение
|
||||||
|
и версии, готовить данные для поиска и RAG, а затем предоставлять результаты
|
||||||
|
через API и пользовательский интерфейс со ссылками на первоисточники.
|
||||||
|
|
||||||
Бот сохраняет сообщения разрешённых тем Telegram в локальную SQLite-базу и
|
Telegram-бот — только часть рабочего окружения команды, а не основной продукт.
|
||||||
выгружает обсуждения в Markdown. Внешние Python-зависимости не требуются.
|
|
||||||
|
|
||||||
## Запуск
|
## Текущее состояние
|
||||||
|
|
||||||
Требуется Python 3.11 или новее.
|
Сейчас реализован Telegram-бот-секретарь версии `0.2.2`. Он сохраняет сообщения
|
||||||
|
рабочих тем, формирует Markdown-экспорты и отмечает завершённые обсуждения.
|
||||||
|
|
||||||
```bash
|
| Компонент | Версия | Состояние |
|
||||||
export TELEGRAM_BOT_TOKEN='...'
|
|---|---:|---|
|
||||||
export TELEGRAM_CHAT_ID='-1004242041275'
|
| Telegram-бот | `0.2.2` | работает на Synology |
|
||||||
export TELEGRAM_OWNER_ID='87262245'
|
| Backend | — | ещё не создан |
|
||||||
export TELEGRAM_REPORT_THREAD_ID='37'
|
| Frontend | — | ещё не создан |
|
||||||
export TELEGRAM_ALLOWED_THREAD_IDS='0,2,4,6,8'
|
| Сбор и обработка правовых данных | — | ещё не созданы |
|
||||||
python3 bot.py
|
| RAG и база знаний | — | ещё не созданы |
|
||||||
|
|
||||||
|
## Структура репозитория
|
||||||
|
|
||||||
|
```text
|
||||||
|
docs/ структурированная документация проекта
|
||||||
|
decisions/ принятые архитектурные и продуктовые решения
|
||||||
|
operations/ состояние проекта и рабочие процессы
|
||||||
|
product/ назначение, границы и развитие продукта
|
||||||
|
team/ материалы для команды
|
||||||
|
tools/
|
||||||
|
telegram-bot/ бот рабочего Telegram-пространства
|
||||||
```
|
```
|
||||||
|
|
||||||
Доступные команды: `/help`, `/status`, `/export`.
|
Каталоги для загрузки и обработки источников, RAG, backend и frontend будут
|
||||||
Экспорт доступен только пользователю с Telegram ID из `TELEGRAM_OWNER_ID`.
|
создаваться с первой реальной задачей в соответствующей области. Это позволит
|
||||||
Первый `/export` выгружает всю сохранённую тему, последующие — сообщения после
|
выбрать структуру по фактическим требованиям, а не поддерживать пустой каркас.
|
||||||
предыдущей успешно созданной отсечки.
|
|
||||||
Markdown публикуется в теме `TELEGRAM_REPORT_THREAD_ID`, а в исходной теме
|
|
||||||
остаётся отсечка со ссылкой и общим хэштегом отчёта.
|
|
||||||
|
|
||||||
База по умолчанию хранится в `data/secretary.sqlite3`. Сообщения из других
|
Начать знакомство с проектом: [документация](docs/README.md) и
|
||||||
групп и тем не сохраняются. Полный ответ Telegram сохраняется в базе, поэтому
|
[обзор продукта](docs/product/project-overview.md).
|
||||||
метаданные вложений остаются доступными для последующего скачивания.
|
|
||||||
|
|
||||||
## Проверка
|
## Конфиденциальные материалы
|
||||||
|
|
||||||
|
Секреты, персональные данные, договоры и материалы по правовой защите проекта
|
||||||
|
не должны храниться в этом репозитории. Для них нужен отдельный закрытый
|
||||||
|
репозиторий или защищённое хранилище с минимально необходимыми правами доступа,
|
||||||
|
журналированием и резервным копированием. Здесь допустимы только несекретные
|
||||||
|
правила и ссылки на такие материалы без раскрытия их содержания.
|
||||||
|
|
||||||
|
## Проверка Telegram-бота
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 -m unittest -v
|
python3 -m unittest discover -s tools/telegram-bot -v
|
||||||
```
|
```
|
||||||
|
|
||||||
## Synology
|
|
||||||
|
|
||||||
Контейнер `akyldash-bot` работает на образе `python:3.11-slim` с политикой
|
|
||||||
перезапуска `unless-stopped`. Постоянные данные находятся в
|
|
||||||
`/volume1/docker/akyldash/data`.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Акылдаш v0.2.1
|
Акылдаш · Telegram-бот v0.2.2 · Backend — не создан · Frontend — не создан
|
||||||
|
|||||||
27
docs/README.md
Normal file
27
docs/README.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Документация Акылдаш
|
||||||
|
|
||||||
|
## Продукт
|
||||||
|
|
||||||
|
- [Обзор проекта](product/project-overview.md) — назначение, основные области и
|
||||||
|
правила работы с данными.
|
||||||
|
|
||||||
|
## Решения
|
||||||
|
|
||||||
|
- [Решение 001](decisions/001-telegram-workspace-mvp.md) — границы MVP
|
||||||
|
Telegram-инфраструктуры.
|
||||||
|
|
||||||
|
## Эксплуатация и рабочий процесс
|
||||||
|
|
||||||
|
- [Текущий статус](operations/project-status.md) — выполненные шаги, риски и
|
||||||
|
ближайшие действия.
|
||||||
|
- [План Telegram-пространства](operations/telegram-workspace-plan.md) — темы,
|
||||||
|
роли и этапы развития командного окружения.
|
||||||
|
|
||||||
|
## Команда
|
||||||
|
|
||||||
|
- [Навыки работы с ИИ](team/ai-skills-for-beginners.md) — короткие практики для
|
||||||
|
начинающих.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Акылдаш · Telegram-бот v0.2.2 · Backend — не создан · Frontend — не создан
|
||||||
2
docs/decisions/001-mvp-boundaries-and-rules.md → docs/decisions/001-telegram-workspace-mvp.md
Executable file → Normal file
2
docs/decisions/001-mvp-boundaries-and-rules.md → docs/decisions/001-telegram-workspace-mvp.md
Executable file → Normal file
@@ -78,4 +78,4 @@ Telegram позволяет запретить пользователям отп
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Акылдаш v0.2.1
|
Акылдаш · Telegram-бот v0.2.2
|
||||||
22
docs/PROJECT_STATUS.md → docs/operations/project-status.md
Executable file → Normal file
22
docs/PROJECT_STATUS.md → docs/operations/project-status.md
Executable file → Normal file
@@ -3,11 +3,13 @@
|
|||||||
Последняя проверка: 2026-08-03
|
Последняя проверка: 2026-08-03
|
||||||
Назначение документа: быстро восстановить контекст проекта для участников команды и будущих агентов.
|
Назначение документа: быстро восстановить контекст проекта для участников команды и будущих агентов.
|
||||||
|
|
||||||
Версия приложения: `0.2.1`
|
- Telegram-бот: `0.2.2`
|
||||||
|
- Backend: не создан
|
||||||
|
- Frontend: не создан
|
||||||
|
|
||||||
## Краткий итог
|
## Краткий итог
|
||||||
|
|
||||||
Telegram-инфраструктура и первая версия бота-секретаря подготовлены. Бот сохраняет сообщения разрешённых тем в SQLite, экспортирует обсуждения в Markdown и постоянно запущен в Container Manager на Synology.
|
Репозиторий переориентирован с отдельного бота на весь проект юридической информационно-аналитической платформы. Telegram-бот выделен в инструмент рабочего окружения: он сохраняет сообщения разрешённых тем в SQLite, экспортирует обсуждения в Markdown и постоянно запущен в Container Manager на Synology.
|
||||||
|
|
||||||
Ближайшая цель — 2026-08-04 зафиксировать MVP с командой, настроить резервное копирование SQLite и затем проверить полный рабочий цикл на реальном обсуждении.
|
Ближайшая цель — 2026-08-04 зафиксировать MVP с командой, настроить резервное копирование SQLite и затем проверить полный рабочий цикл на реальном обсуждении.
|
||||||
|
|
||||||
@@ -36,8 +38,9 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
|
|
||||||
### Документация и правила
|
### Документация и правила
|
||||||
|
|
||||||
- Подготовлен общий план реализации в `TEAM_AI_TELEGRAM_IMPLEMENTATION_PLAN.md`.
|
- Подготовлен общий план реализации в `docs/operations/telegram-workspace-plan.md`.
|
||||||
- Зафиксированы границы MVP и правила работы с данными в `docs/decisions/001-mvp-boundaries-and-rules.md`.
|
- Зафиксированы границы MVP и правила работы с данными в `docs/decisions/001-telegram-workspace-mvp.md`.
|
||||||
|
- Добавлены обзор всей платформы и единый индекс документации.
|
||||||
- В MVP не входит автоматический вызов API языковой модели.
|
- В MVP не входит автоматический вызов API языковой модели.
|
||||||
- Анализ экспортов выполняется вручную в обычном ChatGPT.
|
- Анализ экспортов выполняется вручную в обычном ChatGPT.
|
||||||
- Telegram используется как рабочий штаб, Git/Gitea — как источник утверждённых материалов.
|
- Telegram используется как рабочий штаб, Git/Gitea — как источник утверждённых материалов.
|
||||||
@@ -52,7 +55,8 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
|
|
||||||
### Репозиторий и приложение
|
### Репозиторий и приложение
|
||||||
|
|
||||||
- Реализован бот-секретарь версии `0.2.1` без внешних Python-зависимостей.
|
- Реализован бот-секретарь версии `0.2.2` без внешних Python-зависимостей.
|
||||||
|
- Код бота выделен из корня репозитория в `tools/telegram-bot`.
|
||||||
- Сообщения и полные Telegram-метаданные сохраняются в SQLite.
|
- Сообщения и полные Telegram-метаданные сохраняются в SQLite.
|
||||||
- Добавлены команды `/help`, `/status` и `/export`.
|
- Добавлены команды `/help`, `/status` и `/export`.
|
||||||
- Экспорт доступен только владельцу, указанному в `TELEGRAM_OWNER_ID`.
|
- Экспорт доступен только владельцу, указанному в `TELEGRAM_OWNER_ID`.
|
||||||
@@ -60,6 +64,7 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
- Отчёты публикуются в закрытой теме `Отчеты` (`message_thread_id=37`).
|
- Отчёты публикуются в закрытой теме `Отчеты` (`message_thread_id=37`).
|
||||||
- Исходное обсуждение завершается заметной отсечкой со ссылкой и хэштегом отчёта.
|
- Исходное обсуждение завершается заметной отсечкой со ссылкой и хэштегом отчёта.
|
||||||
- Локальный Git-репозиторий восстановлен и привязан к Gitea.
|
- Локальный Git-репозиторий восстановлен и привязан к Gitea.
|
||||||
|
- Репозиторий организован как основа всего проекта, а не отдельного бота.
|
||||||
- Бот развёрнут в Container Manager на Synology; автозапуск после перезапуска менеджера проверен.
|
- Бот развёрнут в Container Manager на Synology; автозапуск после перезапуска менеджера проверен.
|
||||||
|
|
||||||
### Развёртывание
|
### Развёртывание
|
||||||
@@ -67,6 +72,7 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
- Бот постоянно запущен на Synology в контейнере `akyldash-bot`.
|
- Бот постоянно запущен на Synology в контейнере `akyldash-bot`.
|
||||||
- Используется официальный образ `python:3.11-slim` и long polling.
|
- Используется официальный образ `python:3.11-slim` и long polling.
|
||||||
- Контейнер работает без root, с read-only root filesystem и политикой `unless-stopped`.
|
- Контейнер работает без root, с read-only root filesystem и политикой `unless-stopped`.
|
||||||
|
- Доступ к Telegram Bot API идёт через отдельный закрытый прокси-контейнер без опубликованных наружу портов.
|
||||||
- Код, закрытый env-файл и SQLite хранятся в `/volume1/docker/akyldash`.
|
- Код, закрытый env-файл и SQLite хранятся в `/volume1/docker/akyldash`.
|
||||||
|
|
||||||
## Пока не сделано
|
## Пока не сделано
|
||||||
@@ -120,6 +126,10 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
|
|
||||||
### 2026-08-03
|
### 2026-08-03
|
||||||
|
|
||||||
|
- Репозиторий перестроен под весь проект юридической платформы; Telegram-бот перенесён в `tools/telegram-bot`.
|
||||||
|
- Созданы обзор продукта и структурированный индекс документации; будущие каталоги решено создавать по фактическим задачам.
|
||||||
|
- Закрытые юридические материалы решено хранить отдельно от основного репозитория.
|
||||||
|
- Версия Telegram-бота обновлена до `0.2.2` из-за изменения структуры запуска.
|
||||||
- Экспорт без параметров переведён с периода в семь дней на диапазон после предыдущей отсечки.
|
- Экспорт без параметров переведён с периода в семь дней на диапазон после предыдущей отсечки.
|
||||||
- Бот развёрнут в Container Manager на Synology; автозапуск проверен перезапуском.
|
- Бот развёрнут в Container Manager на Synology; автозапуск проверен перезапуском.
|
||||||
- В теме `Работа с ИИ` опубликована первоначальная библиотека практик и отдельный материал о безопасной работе с Codex.
|
- В теме `Работа с ИИ` опубликована первоначальная библиотека практик и отдельный материал о безопасной работе с Codex.
|
||||||
@@ -151,4 +161,4 @@ Telegram-инфраструктура и первая версия бота-се
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Акылдаш v0.2.1
|
Акылдаш · Telegram-бот v0.2.2 · Backend — не создан · Frontend — не создан
|
||||||
2
TEAM_AI_TELEGRAM_IMPLEMENTATION_PLAN.md → docs/operations/telegram-workspace-plan.md
Executable file → Normal file
2
TEAM_AI_TELEGRAM_IMPLEMENTATION_PLAN.md → docs/operations/telegram-workspace-plan.md
Executable file → Normal file
@@ -398,4 +398,4 @@ Git сохраняет актуальную версию
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Акылдаш v0.2.1
|
Акылдаш · Telegram-бот v0.2.2
|
||||||
47
docs/product/project-overview.md
Normal file
47
docs/product/project-overview.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Обзор проекта
|
||||||
|
|
||||||
|
## Назначение
|
||||||
|
|
||||||
|
Акылдаш — юридическая информационно-аналитическая платформа. Она должна помочь
|
||||||
|
пользователю находить применимые нормы и материалы, понимать их актуальность и
|
||||||
|
получать ответ со ссылками на проверяемые первоисточники. Платформа не заменяет
|
||||||
|
профессиональное юридическое заключение.
|
||||||
|
|
||||||
|
## Основные области
|
||||||
|
|
||||||
|
1. Получение открытых или лицензированных законов, актов и иных правовых
|
||||||
|
источников.
|
||||||
|
2. Очистка, нормализация, связывание редакций и сохранение происхождения данных.
|
||||||
|
3. Хранение структурированных документов и поисковых индексов.
|
||||||
|
4. Формирование базы знаний и RAG с обязательными ссылками на источники.
|
||||||
|
5. Backend для доступа к данным и функциям платформы.
|
||||||
|
6. Frontend для поиска, анализа и работы с результатами.
|
||||||
|
7. Инструменты рабочего окружения команды, включая Telegram-бота.
|
||||||
|
|
||||||
|
Физическая структура каждой области появится вместе с её первой задачей. До
|
||||||
|
этого список служит картой продукта, а не обещанием заранее выбранной
|
||||||
|
архитектуры.
|
||||||
|
|
||||||
|
## Обязательные принципы
|
||||||
|
|
||||||
|
- Источник, дата получения, редакция и лицензия документа должны быть
|
||||||
|
прослеживаемыми.
|
||||||
|
- Ответ системы должен отделять найденный факт от вывода модели и ссылаться на
|
||||||
|
конкретный первоисточник.
|
||||||
|
- Актуальность правовых данных должна проверяться до использования в ответе.
|
||||||
|
- Существенные юридические выводы проверяет человек.
|
||||||
|
- Секреты и персональные данные не попадают в Git, логи и тестовые наборы.
|
||||||
|
- Данные загружаются только при наличии законного основания и с соблюдением
|
||||||
|
условий источника.
|
||||||
|
|
||||||
|
## Правовая защита проекта
|
||||||
|
|
||||||
|
Договоры, заявки, материалы об интеллектуальной собственности и другие
|
||||||
|
закрытые юридические документы следует хранить отдельно от исходного кода: в
|
||||||
|
закрытом репозитории или защищённом документном хранилище. Доступ выдаётся
|
||||||
|
поимённо и только тем, кому он нужен. В основном репозитории можно хранить
|
||||||
|
несекретный реестр документов, правила доступа и ссылки на место хранения.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Акылдаш · Telegram-бот v0.2.2 · Backend — не создан · Frontend — не создан
|
||||||
@@ -180,4 +180,4 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Акылдаш v0.2.1
|
Акылдаш · Telegram-бот v0.2.2
|
||||||
|
|||||||
51
tools/telegram-bot/README.md
Normal file
51
tools/telegram-bot/README.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Telegram-бот Акылдаш
|
||||||
|
|
||||||
|
Версия: `0.2.2`
|
||||||
|
|
||||||
|
Бот сохраняет сообщения разрешённых тем Telegram в локальную SQLite-базу и
|
||||||
|
выгружает обсуждения в Markdown. Внешние Python-зависимости не требуются.
|
||||||
|
|
||||||
|
## Запуск
|
||||||
|
|
||||||
|
Требуется Python 3.11 или новее.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd tools/telegram-bot
|
||||||
|
export TELEGRAM_BOT_TOKEN='...'
|
||||||
|
export TELEGRAM_CHAT_ID='-1004242041275'
|
||||||
|
export TELEGRAM_OWNER_ID='87262245'
|
||||||
|
export TELEGRAM_REPORT_THREAD_ID='37'
|
||||||
|
export TELEGRAM_ALLOWED_THREAD_IDS='0,2,4,6,8'
|
||||||
|
python3 bot.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Доступные команды: `/help`, `/status`, `/export`. Экспорт доступен только
|
||||||
|
пользователю с Telegram ID из `TELEGRAM_OWNER_ID`. Первый `/export` выгружает
|
||||||
|
всю сохранённую тему, последующие — сообщения после предыдущей успешно
|
||||||
|
созданной отсечки.
|
||||||
|
|
||||||
|
Markdown публикуется в теме `TELEGRAM_REPORT_THREAD_ID`, а в исходной теме
|
||||||
|
остаётся отсечка со ссылкой и общим хэштегом отчёта.
|
||||||
|
|
||||||
|
База по умолчанию хранится в `data/secretary.sqlite3`. Сообщения из других
|
||||||
|
групп и тем не сохраняются. Полный ответ Telegram сохраняется в базе, поэтому
|
||||||
|
метаданные вложений остаются доступными для последующего скачивания.
|
||||||
|
|
||||||
|
## Проверка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 -m unittest -v
|
||||||
|
```
|
||||||
|
|
||||||
|
## Synology
|
||||||
|
|
||||||
|
Контейнер `akyldash-bot` работает на образе `python:3.11-slim` через закрытый
|
||||||
|
прокси-контейнер, с политикой перезапуска `unless-stopped`. Постоянные данные
|
||||||
|
находятся в `/volume1/docker/akyldash/data`.
|
||||||
|
|
||||||
|
При обновлении развёртывания файл `tools/telegram-bot/bot.py` копируется в
|
||||||
|
каталог контейнера как `bot.py`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Акылдаш · Telegram-бот v0.2.2
|
||||||
@@ -18,7 +18,7 @@ from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
|
|||||||
|
|
||||||
|
|
||||||
APP_NAME = "Акылдаш"
|
APP_NAME = "Акылдаш"
|
||||||
APP_VERSION = "0.2.1"
|
APP_VERSION = "0.2.2"
|
||||||
FOOTER = f"{APP_NAME} v{APP_VERSION}"
|
FOOTER = f"{APP_NAME} v{APP_VERSION}"
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user