Smart Savings AI — это интеллектуальный сервис анализа финансовых данных,
который помогает пользователю:
- загрузить банковскую выписку в PDF,
- указать свою цель (например, "Купить MacBook"),
- получить автоматический анализ расходов, категорий, привычек и прогноз по накоплениям.
Бэкенд разделён на два уровня:
- Go API — CRUD для пользователей, транзакций и целей.
- AI FastAPI — интеллектуальные функции анализа и советов (работа с LLM / Ollama).
✅ Анализ PDF-выписок
✅ Распознавание транзакций, категорий и привычек
✅ Подсчёт доходов, расходов и коэффициента сбережений
✅ Автоматический финансовый план (прогноз по неделям)
✅ Генерация персональных советов (AI Brain)
Smart-savings/ │ ├── content-api/ # Go API (users, goals, transactions) │ ├── internal/ │ │ ├── db/ │ │ ├── handlers/ │ │ ├── models/ │ │ ├── repo/ │ │ └── routes.go │ └── cmd/api/main.go │ ├── nlp-api/ # Python AI-сервис │ ├── app.py # Главный файл FastAPI │ ├── ai_brain.py # Генерация советов и планов │ ├── financial_analyzer.py # Анализ транзакций │ ├── financial_habits.py # Анализ привычек │ ├── financial_anomalies.py # Поиск аномалий │ ├── model.py # Прогноз накоплений │ ├── prompt_builder.py # Создание промптов для LLM │ ├── llm_engine.py # Обёртка над Ollama │ └── requirements.txt │ └── docker-compose.yaml
GET /health
Проверка состояния сервера.
{
"status": "ok",
"engine": "Ollama"
} POST /ai/analyze
Анализирует JSON-данные пользователя (доход, траты, цель).
{
"income": 400000,
"goal": {"title": "Купить MacBook", "target": 600000, "current": 100000},
"transactions": [
{"amount": -12000, "category": "еда"},
{"amount": -18000, "category": "транспорт"},
{"amount": -25000, "category": "подписки"},
{"amount": 400000, "category": "зарплата"}
]
}
📤 Возвращает:
{
"analysis": {...},
"goal": {...},
"advice": "Краткий совет",
"prompt_used": "..."
}POST /ai/analyze-pdf
Загружает PDF выписку и анализирует её. Тип тела: form-data
key type value file File statement.pdf
📤 Возвращает:
{
"file_name": "statement.pdf",
"numbers_found": 243,
"total_sum": 106131347.25,
"average": 424525.39,
"advice": "Советы по экономии..."
}POST /ai/brain-pdf
Комбинирует PDF-анализ + цель пользователя. Тип тела: form-data
key type value goal Text Купить MacBook file File gold_statement.pdf
📤 Возвращает:
{
"goal": "Купить MacBook",
"numbers_found": 250,
"total_sum": 106131347.25,
"average": 424525.39,
"ai_result": {
"mode": "investment_ready",
"analysis": {...},
"prediction": {...},
"habits": {...},
"ai_advice": "Ваш совет..."
}
}