Private
Public Access
1
0

Обновить Home

2026-02-25 23:50:47 +05:00
parent 1f42d0065c
commit b857d08ef6

65
Home.md

@@ -1 +1,64 @@
Добро пожаловать в вики. # Бюджет-бот
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, а в поле "Пароль" придуманный пароль.