Files
2026-07-12 19:51:00 +03:00

119 lines
4.0 KiB
Markdown
Raw Permalink Blame History

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.
# CashFlow Forecast
Личная финансовая модель с прогнозом денежных потоков, сценарным анализом и AI-ассистентом.
Python + JSON + Excel + AI.
## Установка
```bash
git clone <repo>
cd cashflow-forecast
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # Windows
pip install -e .
```
## Использование
```bash
# Инициализация пустой модели
cf init
# Прогноз на 12 месяцев
cf forecast --months 12
# Сценарии
cf scenario baseline
cf scenario optimistic
cf scenario pessimistic
# What-if анализ
cf whatif --income 1.2 --expense 0.9 --growth 1.0 --months 12
# Сравнение всех сценариев
cf compare --months 12
# Импорт/экспорт Excel
cf import data.xlsx
cf export exports/report.xlsx
# AI-анализ (заглушка, генерация промпта)
cf analyze
```
### Пример: создание тестовых данных
Подготовьте Excel-файл с листами: `Accounts`, `Transactions`, `Recurring`, `Assets`, `Liabilities`. Заголовки колонок соответствуют полям моделей. Затем импортируйте:
```bash
cf import my_finances.xlsx
cf forecast --months 12
```
## Структура проекта
```
├── cashflow_model/ # Модели данных (dataclass + JSON)
│ ├── account.py # Account
│ ├── transaction.py # Transaction
│ ├── recurring.py # RecurringCashflow
│ ├── asset.py # Asset
│ ├── liability.py # Liability
│ ├── scenario.py # ForecastScenario
│ └── model.py # FinancialModel (корень, save/load JSON)
├── engine/ # Вычислительное ядро
│ ├── forecast.py # ForecastService — прогноз
│ └── scenarios.py # ScenarioService — сценарии + what-if
├── sync/ # Синхронизация с Excel
│ └── excel_sync.py # ExcelSync — import/export .xlsx
├── ai/ # AI-ассистент
│ ├── prompts.py # Шаблоны промптов
│ └── assistant.py # AssistantService (заглушка)
├── cli/ # CLI (Typer)
│ └── main.py # Команды: cf init/forecast/scenario/...
├── tests/ # Тесты pytest
│ ├── conftest.py # Фикстуры
│ ├── test_model.py
│ ├── test_forecast.py
│ ├── test_scenarios.py
│ ├── test_excel_sync.py
│ ├── test_ai.py
│ └── test_cli.py
├── data/ # JSON-модели
├── exports/ # Экспортированные .xlsx
├── .agent/ # Артефакты MetaAgent (планирование)
├── pyproject.toml # Зависимости и конфигурация
└── README.arch.md # Оригинальная архитектурная концепция
```
## Разработка
```bash
# Тесты
pytest
# Линтер
ruff check .
# Автоформат
ruff format .
```
### Зависимости
- Python >= 3.11
- openpyxl — работа с Excel
- typer — CLI
- rich — форматирование вывода
- pytest — тесты
- ruff — линтер
## Известные ограничения (MVP)
- **AI-ассистент** — заглушка. Промпты готовы, но не подключены к API.
- **База данных** — JSON-файлы (не подходит для многопользовательской работы).
- **Excel** — только `.xlsx` через openpyxl.
- **Лицензия** — не выбрана.