mudigondahimanshu/FINPILOT

GitHub: mudigondahimanshu/FINPILOT

一款 AI 驱动的全栈个人财务 Copilot 项目,集成了模拟交易、支出预测、RAG 问答和欺诈检测等综合功能。

Stars: 1 | Forks: 0

# FinPilot — AI 驱动的个人财务 Copilot ## 进度跟踪 **当前阶段:** 第一阶段 — MVP **最后更新:** 2026-06-17 ## 第一阶段:基础与 MVP ### 1.1 项目设置 - [x] 初始化 monorepo 结构 - [x] 设置 Next.js 14 前端(TypeScript、Tailwind、shadcn/ui) - [x] 设置 FastAPI 后端(Python、async、Pydantic) - [x] 设置 PostgreSQL + TimescaleDB - [x] 设置 Redis - [x] 用于完整本地开发的 Docker Compose - [x] 环境变量与密钥管理 - [x] GitHub Actions CI/CD 骨架 - [ ] 验证:所有服务通过 `docker compose up` 启动 ⛔ _受阻:此机器未安装 Docker(见 DEVLOG)_ ### 1.2 身份验证系统 - [x] 用户注册(邮箱 + 密码,bcrypt 哈希) - [x] 用户登录 → JWT 访问 token (15分钟) + refresh token (7天) - [ ] OAuth2 Google 登录 _(下一阶段)_ - [~] 受保护的路由 middleware(前端 + 后端) _(后端守卫已完成;前端 middleware 随后进行)_ - [x] JWT 刷新流程 _(包含 refresh-token 轮换)_ - [x] 登出 + token 失效(Redis 黑名单) - [x] Postgres 上的行级安全 (RLS) 策略 _(users 表;基于 GUC,FORCE RLS)_ - [ ] 验证:身份验证流程 E2E 测试通过 _(测试已编写并接入 CI,配合 Postgres+Redis;在此处 / Docker 下运行)_ ### 1.3 数据库 Schema - [ ] Users 表 - [ ] Accounts 表(银行账户) - [ ] Transactions 表 - [ ] Categories 表 - [ ] Budgets 表 - [ ] Portfolios 表 - [ ] Trades 表 - [ ] Audit log 表(审计日志) - [ ] Alembic 迁移工作正常 - [ ] 验证:Schema 已应用,迁移可逆 ### 1.4 交易管理 - [ ] CSV 上传与解析 - [ ] 手动输入交易 - [ ] 带有筛选功能的交易列表 UI(日期、类别、金额) - [ ] 按类别的支出明细 - [ ] 月度趋势图表 - [ ] 预算警报(超支时发送电子邮件) - [ ] 订阅检测器(定期扣款识别) - [ ] 验证:1000 笔交易在 < 1s 内加载 ### 1.5 仪表板(第一阶段) - [ ] 深色/浅色主题切换(默认深色) - [ ] 储蓄率小部件 - [ ] 每月支出摘要卡片 - [ ] 类别明细(圆环图) - [ ] 最近交易列表 - [ ] 预算进度条 - [ ] 响应式布局(桌面端 + 移动端) - [ ] 验证:Lighthouse 得分 > 85 ## 第二阶段:算法引擎 ### 2.1 市场数据集成 - [ ] 集成 yfinance(免费)获取 NSE/BSE 股票数据 - [ ] 集成 Finnhub API(免费层)获取实时报价 - [ ] 将 OHLC 数据存入 TimescaleDB - [ ] 带自动补全功能的股票代码搜索(Trie 数据结构) - [ ] 股票详情页面(价格、图表、基本面) - [ ] 用于实时价格推送的 WebSocket - [ ] 使用 Redis pub/sub 向多客户端分发 - [ ] 验证:实时价格更新延迟 < 500ms ### 2.2 模拟交易引擎 - [ ] 虚拟投资组合(默认 ₹1,00,000 本金) - [ ] 买入/卖出订单表单 - [ ] 订单撮合引擎(优先队列 — 最小/最大堆) - [ ] 以实时市场价格执行交易 - [ ] 盈亏计算(未实现 + 已实现) - [ ] 交易历史表 - [ ] 投资组合持仓明细 - [ ] 自选列表管理 - [ ] 验证:订单撮合引擎单元测试通过(已验证 O(log n) 复杂度) ### 2.3 投资组合优化器 - [ ] 马科维茨现代投资组合理论实现 - [ ] 有效前沿计算 - [ ] 夏普比率最大化(二次优化) - [ ] 根据风险承受能力建议资产配置 - [ ] 当前投资组合的风险评分 (0-100) - [ ] 再平衡建议 - [ ] 验证:优化器生成有效的配置(权重总和为 1,非负) ### 2.4 DSA 展示 - [ ] 订单簿:最小/最大堆,支持 O(log n) 的插入/删除 - [ ] 股票代码自动补全:支持前缀搜索的 Trie - [ ] 移动平均线:单调队列(滑动窗口) - [ ] 用于市场数据的 LRU cache - [ ] 图:用于欺诈检测的交易邻接表 - [ ] 验证:所有数据结构均已进行基准测试与记录 ## 第三阶段:AI 大脑 ### 3.1 交易分类器 (ML) - [ ] 特征工程(金额、商户名称、时间) - [ ] 用于 15+ 支出类别的 XGBoost 分类器 - [ ] 训练 pipeline(Python 脚本) - [ ] FastAPI 中的推理 endpoint - [ ] 交易上传时自动分类 - [ ] UI 中显示置信度得分 - [ ] 手动更正(用户修正 → 反馈给训练数据) - [ ] 验证:在测试集上准确率 > 90% ### 3.2 预测(深度学习) - [ ] 用于支出预测的 LSTM 模型(30 天周期) - [ ] ARIMA 基准(与 LSTM 对比) - [ ] 股票价格预测(LSTM + Transformer) - [ ] 预测的置信区间 - [ ] 导出 ONNX 以实现快速推理 - [ ] 预测仪表板小部件(30 天支出预测) - [ ] 验证:在留出集上的 RMSE < 15% ### 3.3 情感分析 - [ ] 集成 FinBERT (Hugging Face) - [ ] 新闻标题抓取器(RSS:Economic Times、Mint、Bloomberg) - [ ] 每只股票的情感得分 - [ ] 交易 UI 中带有情感标签的新闻流 - [ ] 验证:情感标签与 100 个样本的人工评估一致 ### 3.4 欺诈检测 - [ ] 交易图构建器(节点 = 用户/商户,边 = 转账) - [ ] BFS/DFS 连通分量(检测欺诈网络) - [ ] 环路检测(洗钱模式) - [ ] 用于行为异常评分的 Isolation Forest - [ ] 速度检查(T 秒内 N 次交易) - [ ] 地理位置异常(异常的登录国家/时间) - [ ] 实时欺诈警报(< 200ms) - [ ] 验证:在合成攻击数据集上 0 假阴性 ### 3.5 RAG Copilot - [ ] 文档摄取 pipeline(SEBI 法规、财务 PDF) - [ ] 文本分块 + embedding(text-embedding-3-small 或本地) - [ ] 将 embedding 存入 pgvector - [ ] 语义检索(每次查询获取 top-5 相关块) - [ ] 在金融问答数据集上使用 LoRA 微调 7B Mistral - [ ] RAG 链(LangChain:检索 → 调节 LLM → 带引用的回答) - [ ] 带有对话历史的聊天 UI - [ ] 推理展示(“我这样说是因为……”) - [ ] 赞/踩反馈记录 - [ ] 验证:在 20 个金融问答测试用例上提供有依据的回答 ### 3.6 在线学习系统 - [ ] 记录每一次推荐及用户操作(接受/拒绝) - [ ] 用于推荐上下文 bandit(探索/利用) - [ ] 每周重训 pipeline(Celery + cron) - [ ] 用户级偏好 embedding(Postgres 中的向量) - [ ] A/B 测试框架(10% 测试组 vs 90% 对照组) - [ ] 模型版本管理(保存 checkpoint,按日期标记) - [ ] 验证:推荐接受率逐周提升(模拟环境) ## 第四阶段:安全与生产 ### 4.1 安全加固 - [ ] MFA:TOTP(Google Authenticator) - [ ] 无密码:WebAuthn(生物识别/安全密钥) - [ ] PII token 化(信用卡 → tok_xxx,SSN → 哈希) - [ ] 字段级加密(敏感列上使用 pgcrypto) - [ ] CORS 加固(仅限白名单) - [ ] 限流:Redis token bucket(每用户 100 请求/分钟) - [ ] 输入验证:到处使用 Pydantic + Zod schema - [ ] 预防 SQL 注入:仅使用参数化查询 - [ ] OWASP Top 10 审计 - [ ] 依赖漏洞扫描(pip-audit + npm audit) - [ ] 验证:OWASP ZAP 扫描通过 ### 4.2 基础设施与部署 - [ ] 所有服务(前端、后端、ml、worker)的 Dockerfile - [ ] Docker Compose(开发 + 生产变体) - [ ] AWS:后端 + ml 的 ECS 任务定义 - [ ] AWS:用于前端的 S3 + CloudFront - [ ] AWS:RDS Postgres(多可用区) - [ ] AWS:ElastiCache Redis - [ ] AWS:用于所有凭证的 Secrets Manager - [ ] 以上所有的 Terraform 脚本 - [ ] 验证:全栈在 < 30分钟内从零开始部署到 AWS ### 4.3 监控与可观测性 - [ ] Prometheus 指标(API 延迟、错误率、欺诈检测) - [ ] Grafana 仪表板(系统健康 + 业务指标) - [ ] 结构化日志(JSON,ELK 或 CloudWatch) - [ ] 正常运行时间监控 + 警报(PagerDuty 或 SNS) - [ ] ML 模型漂移检测(数据分布偏移警报) - [ ] 验证:模拟停机后 60 秒内触发警报 ### 4.4 测试 - [ ] 后端:pytest 单元测试(覆盖率 90%+) - [ ] 前端:Vitest + React Testing Library - [ ] 集成测试:API 契约测试 - [ ] E2E 测试:Playwright(完整用户流程) - [ ] 负载测试:k6(1000 个并发用户) - [ ] ML 测试:数据验证(Great Expectations) - [ ] 验证:所有测试套件在 CI 中均为绿色通过 ### 4.5 移动应用 - [ ] React Native (Expo) 设置 - [ ] 身份验证界面 - [ ] 仪表板(复用 API,针对移动端优化的 UI) - [ ] 交易界面 - [ ] 推送通知(欺诈警报、预算警告) - [ ] 验证:在 iOS 模拟器 + Android 模拟器上运行 ## 快速参考 ### 技术栈 | 层级 | 技术 | |-------|------------| | 前端 | Next.js 14, React 18, TypeScript, Tailwind CSS, shadcn/ui | | 图表 | Recharts + D3.js | | 状态 | TanStack Query (React Query) | | 后端 | FastAPI, Python 3.11, Pydantic v2 | | 身份验证 | JWT, OAuth2, bcrypt, WebAuthn | | 任务队列 | Celery + Redis | | 数据库 | PostgreSQL 15 + TimescaleDB + pgvector | | 缓存 | Redis | | ML | PyTorch, XGBoost, Scikit-learn, ONNX | | LLM | Mistral 7B (LoRA 微调), LangChain | | NLP | FinBERT (Hugging Face) | | 市场数据 | yfinance, Finnhub API, Alpha Vantage | | 部署 | Docker, AWS ECS, Lambda, RDS, CloudFront | | IaC | Terraform | | CI/CD | GitHub Actions | | 监控 | Prometheus, Grafana, ELK stack | | 测试 | pytest, Vitest, Playwright, k6 | ### API 端点(高层概览) - `POST /auth/register — 创建账户 - `POST /auth/login` — 获取 JWT token - `GET /dashboard/summary` — 概览统计 - `GET /transactions` — 分页交易列表 - `POST /transactions/upload` — CSV 上传 - `GET /portfolio` — 当前持仓 + 盈亏 - `POST /trades/order` — 提交模拟交易 - `GET /market/quote/:ticker` — 实时股票报价 - `POST /copilot/chat` — RAG copilot 消息 - `GET /forecast/spending` — 30 天支出预测 - `GET /forecast/risk-score` — 投资组合风险评分 - `WS /ws/prices` — 实时价格 WebSocket ## 入门指南(本地开发) ``` # 1. 复制环境模板并填入 secrets cp .env.example .env # 2. 启动全栈(Postgres+TimescaleDB+pgvector, Redis, backend, frontend) docker compose up --build # Frontend: http://localhost:3000 # Backend: http://localhost:8000 (文档位于 /docs) # Postgres: localhost:5432 # Redis: localhost:6379 ``` 如果不使用 Docker,请分别运行各项服务 — 参见 `frontend/README` 说明以及 `ARCHITECTURE.md` 中的 `backend/` (uvicorn) 指导。 ## 重要约束 - **仅限模拟交易**(出于教育目的)。无真实支付处理或实际券商交易。 - 每个交易界面上的**法律免责声明**:_"本内容仅供教育目的。不构成任何投资建议。"_ - 市场数据来自**免费 API**(yfinance、Finnhub 免费层、Alpha Vantage 免费层)。 - **LLM 微调:** 仅限 LoRA (PEFT),最大支持 7B 模型。 - 云端目标:**AWS** 为主,Azure 为辅。尽可能使用免费层。 - **印度优先** (NSE/BSE),架构设计已考虑向全球扩展。
标签:Apex, AV绕过, FastAPI, PostgreSQL, 个人理财, 凭据扫描, 搜索引擎查询, 机器学习, 测试用例, 漏洞利用检测, 请求拦截