3.0 KiB
3.0 KiB
1. Цели MVP
- Принимать текстовые сообщения в Telegram.
- Создавать заметки в Obsidian Vault в формате Markdown.
- Автоматически коммитить и пушить изменения в Git-репозиторий.
- Поддерживать базовое форматирование текста через YandexGPT.
- Поддержка одного пользователя.
Не включаем на первом этапе:
Голосовые сообщения, векторный поиск, Quartz-публикацию.
2. Компоненты MVP
2.1 Bot Handler (Go + Telegram API)
- Используем
telegram-bot-api/v5. - Поддерживаем команды:
/new <текст>— создать новую заметку./append <имя>— дописать к существующей заметке (по exact match)./list— список последних 5 заметок.
2.2 Note Service
- Создание Markdown-файлов в директории
vault/notes. - Простая генерация имени файла по дате + заголовку.
- Добавление timestamps в YAML frontmatter.
- Вызов LLM Service для легкого форматирования (через YandexGPT API).
2.3 LLM Service (YandexGPT)
- YandexGPT форматирует Markdown (добавляет заголовки, убирает лишние пробелы).
- Транскрипции и поиск по эмбеддингам — не реализуем на MVP.
2.4 Git Service
- Используем
go-git/v5. - После создания/обновления заметки:
git add <file>git commit -m "add note <title>"git push
2.5 File Service
- Создает файлы в
vault/notes. - Проверяет уникальность имени.
- Обеспечивает atomic save.
3. Поток обработки сообщений MVP
graph TB
A[User] --> B[Telegram Bot]
B --> C[Bot Handler]
C --> D[/new text]
D --> E[Note Service]
E --> F[LLM Service format]
F --> G[File Service]
G --> H[Git Service]
H --> I["Заметка создана: filename"]
I --> A
subgraph "MVP Flow"
D
E
F
G
H
end
4. Технологический стек MVP
Основные зависимости:
telegram-bot-api/v5- Telegram Bot APIyandexcloud-sdk-go- YandexGPT API интеграцияgo-git/v5- Git операцииviper- конфигурацияlogrus- структурированное логирование
Внешние сервисы:
- YandexGPT API (YandexGPT Lite/Pro)
- Telegram Bot API
Конфигурация:
YANDEX_API_KEY- API ключ для YandexGPTTELEGRAM_BOT_TOKEN- токен Telegram ботаVAULT_PATH- путь к Obsidian vault