Private
Public Access
1
0
Clone
2
Home
alex edited this page 2026-02-25 23:50:47 +05:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Бюджет-бот

Telegram-бот для учёта личного бюджета с веб-интерфейсом. Поддержка расходов, доходов, статистики, категорий и тегов. Интеллектуальное распознавание транзакций благодаря интеграции с речевым и текстовым вводом через Gemini AI. Все данные хранятся во внешней БД PostgreSQL 17.

Работа с Транзакциями

Бюджет-бот использует интеллектуальное распознавание текста для создания транзакций из естественного языка. Вы можете просто написать боту сумму и на что вы ее потратили. При ошибках классического правила, бот использует Gemini AI API для умного разбора обычного текста (например, «потратил 500 на такси»).

Формат ввода классическим парсером

Вы можете добавлять транзакции в свободной форме или используя специальные команды:

  1. Свободный ввод (Расход): 500 [кошелек] категория #тег [- комментарий] Пример: 500 наличные продукты #мясо - купил на ужин Результат: Бот распознает Сумму (500), Кошелек (наличные), Категорию (продукты), Тег (мясо) и Комментарий (купил на ужин). Примечание: По умолчанию свободный ввод без знака плюс или без слова "доход" воспринимается как расход.

  2. Свободный ввод (Доход): +1000 [кошелек] зарплата #аванс - за январь Примечание: Если число начинается с плюса (+) или со слова доход, транзакция будет записана как доход.

  3. Команды явного указания типа: /расход 500 питание кафе - лень готовить /доход 10000 премия

Логика распознавания (Категории и Теги)

  • Если вы указываете #тег (например, #кафе), он жестко привязывается к указанной перед ним категории (например, транзакция 500 питание #кафе -> Категория: Питание, Тег: Кафе).
  • Если вы НЕ используете #, но вводите несколько слов после суммы, бот автоматически распознает первое слово как Категорию, а все остальные как Тег:
    • 500 питание кафе -> Категория: Питание, Тег: Кафе
    • 500 авто бензин -> Категория: Авто, Тег: Бензин
  • Категория, Тег, Кошелек и Комментарий автоматически сохраняются с заглавной буквы, даже если вы ввели их строчными.

Команды бота

Вы можете использовать как текстовые команды со слэшем (/), так и кнопки в меню бота:

Команда / Кнопка Описание
/start Приветствие, регистрация пользователя и создание дефолтных кошельков/категорий
/пароль <пароль> Установить или изменить пароль для входа в веб-админ панель
/мойид Узнать свой логин для веб-админ панели (он же ваш Telegram ID)
/расход 500 ... Добавить расход (явно)
/доход 10000 ... Добавить доход (явно)
/баланс или 📊 Баланс Показать общие балансы ваших кошельков и баланс за текущий месяц
/статистика или 📈 Статистика Показать сводку за текущий месяц по категориям (доходы и расходы)
/категории или 📁 Категории Вывести список всех ваших категорий
/отмена или Отмена Удалить вашу последнюю созданную транзакцию и вернуть баланс кошелька, с которого/на который она была записана
Любой текст Если текст не попадает ни в одно правило, обрабатывается через Gemini AI на смысл финансовой операции

Локальная разработка

Проект состоит из трех частей: Telegram-бот (aiogram), Web API Backend (FastAPI) и Web Admin Panel (React/Vite).

Создание первого пользователя в Веб Панели

  1. Откройте своего Telegram-бота.
  2. Отправьте команду /start.
  3. Задайте свой пароль командой: /пароль <ваш секретный пароль>.
  4. Узнайте свой логин (Telegram ID) с помощью команды /мойид.
  5. Откройте в браузере веб-панель
  6. Введите в поле "Логин" ваш Telegram ID, а в поле "Пароль" придуманный пароль.