Files
second-mind-aep/Идеи/Obsidian телеграм бот/MVP Telegram бота для Obsidian.md
2025-08-04 15:16:29 +04:00

3.0 KiB
Raw Blame History

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

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