vault backup: 2025-08-04 15:05:32
This commit is contained in:
53
Идеи/Obsidian телеграм бот/MVP Telegram бота для Obsidian.md
Normal file
53
Идеи/Obsidian телеграм бот/MVP Telegram бота для Obsidian.md
Normal file
@@ -0,0 +1,53 @@
|
||||
## 1. Цели MVP
|
||||
|
||||
- Принимать текстовые сообщения в Telegram.
|
||||
- Создавать заметки в Obsidian Vault в формате Markdown.
|
||||
- Автоматически коммитить и пушить изменения в Git-репозиторий.
|
||||
- Поддерживать базовое форматирование текста через GPT.
|
||||
- Поддержка одного пользователя.
|
||||
|
||||
> **Не включаем на первом этапе:**
|
||||
> Голосовые сообщения, векторный поиск, 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 для легкого форматирования (через `go-openai`).
|
||||
|
||||
### 2.3 LLM Service (OpenAI)
|
||||
- GPT форматирует 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
|
||||
|
||||
```text
|
||||
User -> Telegram Bot -> Bot Handler
|
||||
-> /new <text>
|
||||
-> Note Service -> LLM Service (format) -> File Service -> Git Service
|
||||
<- "Заметка создана: <filename>"
|
||||
Reference in New Issue
Block a user