From b857d08ef6f34a2a5d48e670ddc2ff18410e3de8 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 25 Feb 2026 23:50:47 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20Home?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Home.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 8b7bd78..9c3eefc 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,64 @@ -Добро пожаловать в вики. \ No newline at end of file +# Бюджет-бот + + +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, а в поле "Пароль" придуманный пароль.