# CashFlow Forecast Личная финансовая модель с прогнозом денежных потоков, сценарным анализом и AI-ассистентом. Python + JSON + Excel + AI. ## Установка ```bash git clone 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. - **Лицензия** — не выбрана.