# PRD + 技术设计 (1-prd) > 状态:待确认 > 范围:Phase 0 + Phase 1 MVP --- ## 一、产品概要 ### 1.1 定位 AI+ Portfolio Operating System —— 投资人和创始人的共同操作系统。Phase 1 聚焦"投后信息与风险管理"。 ### 1.2 核心用户旅程 **投资人端**: 1. 登录 → 驾驶舱(Portfolio 全局视图) 2. 查看本周新增风险 → 进入风险工作台处理 3. 查看企业详情 → 审阅月报 AI 摘要 → 追加评论 4. 查看健康度趋势 → 识别下降企业 5. 导出投后报告 **创始人端**: 1. 登录 → 企业经营概览 2. 提交月报(AI 辅助填充) 3. AI 副驾驶问答("投资人最关心什么") 4. 查看自身健康度评分和建议 --- ## 二、技术架构 ### 2.1 整体架构 ``` ┌─────────────────────────────────────────────┐ │ 前端 (Next.js) │ │ (investor) (founder) (admin) │ │ ↓ ↓ ↓ │ │ 统一 API Client + Auth │ └──────────────────┬──────────────────────────┘ │ REST API (JSON) ┌──────────────────┴──────────────────────────┐ │ 后端 (FastAPI) │ │ Routers → Services → Models │ │ AI Layer: Parser / Health / Risk / Report │ └──────┬──────────┬──────────┬────────────────┘ │ │ │ PostgreSQL Redis Ollama (本地AI) + PgVector ``` ### 2.2 前端架构 **路由结构**: ``` frontend/src/app/ ├── (investor)/ # 投资人端(B 端专业风格) │ ├── layout.tsx # 左 Sidebar + 灰色背景 │ ├── page.tsx # 驾驶舱 │ ├── companies/ # 企业列表 + 详情 │ ├── reports/ # 月报管理 │ ├── risks/ # 风险工作台 │ └── settings/ ├── (founder)/ # 创始人端(C 端温暖风格) │ ├── layout.tsx # 顶部 Header + indigo 主色 │ ├── page.tsx # 经营概览 │ ├── reports/submit/ # 月报提交 │ └── copilot/ # AI 副驾驶 ├── (admin)/ # Admin 端 │ ├── layout.tsx # slate-950 Header + amber 主色 │ └── page.tsx # 管理后台 ├── login/ └── layout.tsx # 根布局(字体 + Provider) ``` **设计 Token**: - 字体:Geist Sans + Geist Mono - 色彩:oklch 体系,CSS 变量定义 - 圆角:`--radius: 0.625rem` - 投资人端:`--primary: oklch(0.21 0.006 285.885)` (gray-900) - 创始人端:`--primary: oklch(0.546 0.245 262.881)` (indigo-600) - Admin 端:`--primary: oklch(0.769 0.188 70.08)` (amber-400) **共享组件**: - `LoadingSpinner` / `EmptyState` / `HealthScoreBadge` - `HealthGauge`(仪表盘)/ `HealthRadar`(雷达图)/ `HealthTrend`(sparkline) - `RiskCard` / `RiskTimeline` - `AIChatDrawer`(底部抽屉式 AI 对话) - `FilterBar`(筛选栏) - `DataTable`(数据表格) ### 2.3 后端架构 **目录结构**: ``` backend/ ├── app/ │ ├── main.py # FastAPI app + 中间件 + 路由注册 │ ├── core/ │ │ ├── config.py # 环境变量配置 (pydantic-settings) │ │ ├── database.py # SQLAlchemy engine + session │ │ ├── security.py # JWT + 密码哈希 │ │ └── permissions.py # 权限中间件 │ ├── models/ # SQLAlchemy ORM 模型 │ │ ├── user.py │ │ ├── company.py │ │ ├── report.py │ │ ├── health_score.py │ │ └── risk.py │ ├── schemas/ # Pydantic 请求/响应 schema │ ├── routers/ # API 路由 │ │ ├── auth.py │ │ ├── companies.py │ │ ├── reports.py │ │ ├── health.py │ │ ├── risks.py │ │ └── dashboard.py │ └── services/ # 业务逻辑 + AI 服务 │ ├── ai_parser.py # 月报 AI 解析 │ ├── health_calculator.py │ ├── risk_engine.py │ └── report_generator.py ├── alembic/ # 数据库迁移 ├── tests/ # 测试 ├── pyproject.toml └── Dockerfile ``` **API 设计**: - 版本:`/api/v1/` - 响应壳:`{code, message, data, trace_id, timestamp}` - 认证:Bearer JWT - 分页:`?page=1&page_size=20&sort=-created_at` ### 2.4 数据库设计(Phase 1 核心表) ```sql -- 租户 tenants (id, name, type, config_json, created_at, ...) -- 用户 users (id, tenant_id, email, password_hash, role, name, phone, ...) -- role: gp | partner | post_invest_lead | investor | founder | admin -- 企业 companies (id, tenant_id, name, industry, stage, logo_url, description, founded_at, total_funding, website, ...) -- 月报 monthly_reports (id, company_id, period_year, period_month, status, raw_content, ai_summary, ai_concerns, submitted_by, submitted_at, reviewed_by, reviewed_at, ...) -- 健康度 health_scores (id, company_id, total_score, financial_score, operational_score, ai_commercial_score, ai_cost_score, trend, evidence_json, recommendations_json, calculated_at, ...) -- 风险 risk_events (id, company_id, type, severity, status, title, description, evidence_json, suggested_action, assigned_to, due_at, identified_at, closed_at, ...) -- 审计 audit_logs (id, tenant_id, user_id, action, resource_type, resource_id, detail_json, ip, created_at) ``` ### 2.5 AI 服务设计 **月报解析 Agent**: - 输入:月报文件(Excel/PDF/结构化表单) - 输出:结构化指标 JSON + 摘要文本 + 关注点列表 - 模型:Ollama 本地模型(qwen2.5 或 llama3.2) - 约束:Structured Output / JSON Schema - 兜底:解析失败时返回原始文本 + 标记需人工审阅 **健康度计算引擎**: - 输入:月报指标 + 历史趋势 - 输出:分项评分 + 总分 + 趋势 + 扣分项 + 建议动作 - 实现:规则引擎(非 LLM),可配置权重 - AI+ 专项:商业化 + 成本维度,同样规则驱动 **风险检测引擎**: - 输入:最新指标 + 阈值规则 - 输出:RiskEvent 列表 - 实现:规则引擎,指标越界自动生成风险 - Phase 2 再加弱信号关联 --- ## 三、UI/UX 设计 ### 3.1 投资人端 **驾驶舱**: - 顶部:Portfolio 健康度分布热力图(企业 × 维度) - 左中:本周新增风险卡片列表(红/黄/绿状态条) - 右中:AI 周报摘要(可折叠) - 底部:健康度趋势对比(多企业 sparkline) **企业详情工作台**: - 左侧导航:基本信息 / 财务 / 经营 / 组织 / 风险 / AI+ 专项 - 中部:当前选中维度详情(表格 + 图表) - 右侧:AI 建议 + 待办 + 风险预警(抽屉式) - 底部:投后管理时间线 **风险工作台**: - 左侧:筛选栏(严重程度 / 类型 / 企业 / 状态) - 中部:风险卡片列表(每张卡含证据链折叠面板) - 右侧:选中风险的处理闭环时间线 ### 3.2 创始人端 **经营概览**: - 顶部:大数字卡片(Runway / MRR / 客户数 / 健康度) - 中部:关键指标趋势图 - 底部:AI 副驾驶入口(浮动按钮) **月报提交**: - 分步表单:基本信息 → 财务数据 → 经营数据 → AI+ 专项 - AI 辅助:上传文件后自动填充建议值 - 提交前预览 AI 摘要 **AI 副驾驶**: - 底部抽屉式对话窗口 - 上下文感知:自动注入当前企业数据 - 快捷问题按钮:"投资人关心什么" / "融资建议" / "组织诊断" ### 3.3 响应式 - 投资人端:< md 时 Sidebar 折叠为抽屉,驾驶舱卡片单列 - 创始人端:移动端优先,卡片流 + 底部 Tab 导航 - Admin 端:< md 时表格横向滚动 --- ## 四、部署架构 ### 4.1 开发环境(Docker Compose) ```yaml services: postgres: # PostgreSQL 16 + PgVector redis: # Redis 7 ollama: # 本地 AI 推理 backend: # FastAPI + hot reload frontend: # Next.js + hot reload ``` ### 4.2 端口表 | 服务 | 端口 | 说明 | |---|---|---| | frontend | 3000 | Next.js dev server | | backend | 8000 | FastAPI dev server | | postgres | 5432 | PostgreSQL | | redis | 6379 | Redis | | ollama | 11434 | 本地 AI 推理 | --- ## 五、风险与对策 | 风险 | 对策 | |---|---| | AI 解析准确率不足 | Structured Output 约束 + 人工审阅兜底 | | 月报格式差异大 | 先支持结构化表单,再支持文件上传 | | 私有化部署复杂 | MVP 用 Docker Compose,长期才做边缘算力机 | | 多租户数据隔离 | 从架构层面 tenant_id 贯穿,中间件强制 |