89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
## 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`.
|
||
- После создания/обновления заметки:
|
||
1. `git add <file>`
|
||
2. `git commit -m "add note <title>"`
|
||
3. `git push`
|
||
|
||
### 2.5 File Service
|
||
- Создает файлы в `vault/notes`.
|
||
- Проверяет уникальность имени.
|
||
- Обеспечивает atomic save.
|
||
|
||
---
|
||
|
||
## 3. Поток обработки сообщений MVP
|
||
|
||
```mermaid
|
||
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 API
|
||
- `yandexcloud-sdk-go` - YandexGPT API интеграция
|
||
- `go-git/v5` - Git операции
|
||
- `viper` - конфигурация
|
||
- `logrus` - структурированное логирование
|
||
|
||
**Внешние сервисы:**
|
||
- YandexGPT API (YandexGPT Lite/Pro)
|
||
- Telegram Bot API
|
||
|
||
**Конфигурация:**
|
||
- `YANDEX_API_KEY` - API ключ для YandexGPT
|
||
- `TELEGRAM_BOT_TOKEN` - токен Telegram бота
|
||
- `VAULT_PATH` - путь к Obsidian vault
|