Обновить Home
65
Home.md
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, а в поле "Пароль" придуманный пароль.
|
||||||
|
|||||||
Reference in New Issue
Block a user