让每一笔交易都有迹可循,用AI点亮你的财务洞察。
Mirror 是一个基于现代Python技术栈构建的高级个人数据分析平台。
在我们的日常生活中,银行流水数据分散在各个银行的App或导出的不同格式文件中,难以进行统一的管理和分析。本项目旨在解决这一痛点,其核心目标是:
- 整合分析:自动化地整合、分析来自不同银行的个人交易流水(Excel/CSV格式)。
- 深度洞察:利用数据分析和AI技术进行深度取证分析,以识别潜在的金融风险模式。
- 学习实践:作为一个绝佳的学习平台,旨在实践并掌握全栈的、异步的Python Web开发与数据科学技术。
本项目将严格遵循敏捷开发的思想,通过一系列迭代(Sprints)逐步构建,确保每个阶段都有可用的功能产出。
- 📂 多源数据整合: 支持并自动化解析、清洗、标准化来自不同银行的Excel和CSV流水文件。
- ⚙️ 异步任务处理: 所有耗时的数据处理任务均在后台异步执行,保证前端界面的流畅体验。
- 🔒 安全数据存储: 将所有交易数据持久化存储在强大的PostgreSQL数据库中(后期将加入加密功能)。
- 📊 交互式仪表盘: 通过Streamlit构建美观、可交互的数据看板,直观展示财务状况。
- 💬 AI对话式分析: 集成以本地大语言模型(LLM)驱动的AI,允许用户通过自然语言进行数据查询。
- 🤖 智能异常检测: 在后期迭代中,将引入多层次的机器学习模型,以发现潜在的、未知的异常模式。
类别 | 技术/工具 |
---|---|
后端 API | FastAPI, Pydantic |
数据库 | PostgreSQL |
ORM & 迁移 | SQLAlchemy 2.0 (async), Alembic |
异步任务队列 | Taskiq, RabbitMQ, Redis |
前端界面 | Streamlit |
数据处理 | Pandas, openpyxl |
AI 交互/分析 | Pandas-AI, Ollama, Scikit-learn, PyTorch |
开发与部署 | Docker, uv |
当前状态: 第一阶段(核心数据管道)已实现,Docker部署已可用。筹备第二阶段中...
-
✅ Sprint 0: 项目基础与架构设计
- 技术选型与可行性分析
- 系统分层架构设计
- 数据库模型构建与关系设计
- 初始化项目结构与Git工作流
-
⏳ Sprint 1: 核心数据管道与展示 (已完成,后续再优化...)
- 后端: 实现文件上传API接口
- 异步任务: 集成Taskiq,实现后台数据解析任务
- 数据处理: 使用Pandas实现对Excel/CSV的清洗与标准化
- 数据库: 实现数据入库逻辑
- 前端: 使用Streamlit实现文件上传和基本的数据表格展示
-
📝 Sprint 2: 高级分析与交互式仪表盘 (计划中)
-
📝 Sprint 3 & 4: AI 集成与智能交互 (计划中)
-
📝 Sprint 5: 安全强化与打包 (计划中)
-
克隆项目
git clone https://github.com/acelee0621/Mirror.git
-
创建并激活虚拟环境
uv venv
-
安装依赖
uv sync
-
配置环境变量 复制
.env.example
文件为.env
,并根据你的本地服务配置修改其中的数据库、Redis和RabbitMQ连接信息。cp .env.example .env
-
运行数据库迁移 首次运行时,需要创建所有数据表。
alembic upgrade head
-
启动FastAPI后端服务
uv run uvicorn app.main:app --reload
API将在
http://127.0.0.1:8000
运行。 -
启动Streamlit前端应用 在新的终端窗口中运行:
uv run streamlit run app_streamlit/Home.py
前端应用将在
http://localhost:8501
运行。 -
启动Taskiq Worker进程 在新的终端窗口中运行:
uv run taskiq worker app.tasks.broker:broker --log-level INFO --fs-discover
docker compose up -d
- 支持PDF文件解析
- 实现用户认证与数据隔离
- 对敏感数据进行列级加密
- 实现AI驱动的“个人财务顾问”报告生成
- 集成“百变性格”的AI助手
- 打包整个应用为Docker Compose,实现一键部署
本项目采用 MIT 许可证。详情请见 LICENSE
文件。
- 感谢所有本项目使用的开源工具的开发者。