小理基是一个面向基金投资者的智能理财辅助 Web 应用。它将基金市场浏览、组合模拟、风险体检、历史回测、AI 点评和个性化配置建议整合在一个产品里,帮助用户更清楚地理解自己的基金组合。
项目采用“理财餐厅”的产品表达:基金是食材,组合是菜品,风险体检像后厨质检,AI 点评像主厨食评。相比传统基金工具只展示冷冰冰的数据,小理基更关注“用户能不能看懂、能不能做出下一步判断”。
本项目仅用于学习、研究和产品演示,不构成任何投资建议。
- 支持按基金名称、代码、拼音搜索基金。
- 支持股票型、债券型、混合型、货币型等类型筛选。
- 展示基金代码、名称、类型、规模、净值、近一年收益等信息。
- 对规模过小或规模过大的基金给出风险提示。
- 查看基金详情,包括历史净值、实时指标、风险等级和前十大重仓股。
- 支持模拟买入、卖出、删除持仓和清空组合。
- 支持现金、持仓、市值、盈亏、初始本金等账户信息管理。
- 支持刷新基金净值,更新组合市值。
- 支持查看组合资产配比和持仓占比。
- 支持将系统推荐组合应用到模拟盘。
小理基会从多个维度对基金组合进行评分和诊断:
- 底层关联度
- 盈亏性价比
- 全球对冲力
- 极端抗压力
- 风格纯净度
- 费率磨损度
诊断结果会以雷达图、等级标签和文字点评的方式展示,帮助用户快速识别组合中可能存在的问题。
- 支持将用户组合与沪深 300、纳斯达克 100、红利低波等指数进行收益曲线对比。
- 支持自定义时间范围。
- 支持定投模拟,展示累计投入、期末资产和收益变化。
- 支持按当前持仓比例自动拆分每期定投资金。
- 通过问卷识别用户风险偏好。
- 根据风险等级生成资产配置比例。
- 从内置基金白名单中筛选候选基金。
- 生成可直接应用到模拟盘的专属组合。
- 用更容易理解的语言解释推荐理由。
- 支持接入 DeepSeek Chat API。
- 根据持仓结构和量化指标生成 Markdown 深度点评。
- 使用“小理基主厨”的产品人设,将复杂投资指标转化为更直观的解释。
- 未配置 API Key 时,会自动返回 Mock 点评,方便开发和演示。
- 基于 Supabase Auth 实现登录、注册和密码找回。
- 支持邀请码注册。
- 支持订单核销生成邀请码。
- 支持日卡、终身卡等访问权限逻辑。
- 登录用户的资产、持仓、现金和定制方案可同步到 Supabase。
- 框架:Next.js 16、React 19、TypeScript
- 样式:Tailwind CSS 4
- 组件:Radix UI、shadcn/ui 风格组件
- 图标:lucide-react
- 图表:Recharts
- 动效:Framer Motion
- 表单与校验:react-hook-form、zod
- 数据与认证:Supabase
- AI 服务:DeepSeek Chat API
-
基金数据获取
基金列表通过东方财富基金公开数据接口获取,并在服务端进行短期内存缓存,减少重复请求。 -
基金指标生成
基金收益、规模、风险等级、历史曲线和部分指标结合真实数据接口与确定性模拟逻辑生成,用于产品演示和交互体验。 -
组合状态管理
前端通过PortfolioProvider管理用户现金、持仓、盈亏、初始本金和系统推荐状态。 -
用户数据同步
登录用户的数据通过 Supabase 表进行持久化;未登录用户会被引导回登录页。 -
AI 组合点评
组合体检结果会被整理为 Prompt,并发送给 DeepSeek Chat API 生成结构化 Markdown 点评。
npm install在项目根目录创建 .env.local:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
# 可选:用于生成 AI 食评报告
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1如果没有配置 DeepSeek Key,AI 点评接口会返回内置 Mock 内容。
如果没有配置 Supabase,登录、注册、邀请码、资产同步等功能将无法正常使用。
npm run dev启动后访问:
http://localhost:3000
npm run dev # 启动本地开发服务
npm run build # 构建生产版本
npm run start # 启动生产服务
npm run lint # 运行 ESLint.
├── public/
│ └── logo.png
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── customize/
│ │ │ ├── diagnose/
│ │ │ ├── funds/
│ │ │ ├── generate-chef-review/
│ │ │ └── indices/
│ │ ├── customizer/
│ │ ├── dashboard/
│ │ ├── portfolio/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── ui/
│ │ ├── deep-analysis.tsx
│ │ ├── export-report.tsx
│ │ ├── market-temperature.tsx
│ │ └── simulator-view.tsx
│ ├── hooks/
│ │ └── use-backtest.ts
│ └── lib/
│ ├── allocation-logic.ts
│ ├── fund-selection.ts
│ ├── fund-whitelist.ts
│ ├── portfolio-context.tsx
│ ├── quantitative-analysis.ts
│ ├── risk-engine.ts
│ ├── supabase.ts
│ └── types.ts
├── package.json
├── next.config.ts
├── tsconfig.json
└── README.md
| 页面 | 路径 | 说明 |
|---|---|---|
| 登录 / 注册 | / |
账号登录、邀请制注册、订单核销、密码找回 |
| 基金市场 | /dashboard |
搜索基金、筛选基金、查看基金详情、模拟买入 |
| 我的组合 | /portfolio |
管理持仓、查看盈亏、组合体检、深度回测 |
| AI 私房配餐 | /customizer |
风险问卷、生成配置方案、应用推荐组合 |
| 变量名 | 必填 | 说明 |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
是 | Supabase 项目 URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
是 | Supabase 匿名访问 Key |
DEEPSEEK_API_KEY |
否 | DeepSeek API Key,用于生成 AI 食评 |
DEEPSEEK_BASE_URL |
否 | DeepSeek API 地址,默认 https://api.deepseek.com/v1 |
- 基金列表来自东方财富基金公开数据接口。
- 部分收益、规模、风险和历史指标为产品演示逻辑生成,不代表真实投资表现。
- AI 点评基于用户组合数据、量化评分和 DeepSeek Chat API 生成。
- 用户账号、邀请码、资产、持仓和自定义方案依赖 Supabase 表结构。
- 本项目不是投顾产品,不提供任何确定性收益承诺。
- 页面中的基金推荐、风险评分、收益模拟和 AI 点评仅供学习与产品演示。
- 实际投资请结合基金公告、持仓披露、费率、回撤、个人风险承受能力和合规信息来源。
- 第三方数据接口可能受网络、频率限制或接口变更影响。
- 如果 Supabase 表结构未配置完整,部分登录和资产同步功能可能无法工作。
项目可以部署到 Vercel 或其他支持 Next.js 的平台。
部署前请确认:
- 已配置 Supabase 环境变量。
- 如需 AI 点评,已配置 DeepSeek API Key。
- 服务端运行环境可以访问东方财富基金数据接口。
- 生产环境中已正确配置 Supabase Auth 回调地址。
后续可以继续完善:
- 更完整的 Supabase 建表脚本。
- 更准确的基金历史数据与实时估值来源。
- 更细粒度的行业、风格和相关性分析。
- 用户自定义风险偏好和投资目标管理。
- 组合调仓建议和再平衡提醒。
- 报告导出为 PDF。
- 更完善的移动端体验。
小理基仅用于基金组合分析学习、产品原型展示和个人研究,不构成投资建议、收益承诺或任何形式的金融服务。
基金投资存在风险,历史收益不代表未来表现。使用本项目产生的任何分析结果、推荐方案或 AI 点评,都应由用户自行判断并承担相应风险。