298 lines
9.1 KiB
Markdown
298 lines
9.1 KiB
Markdown
# LLMHub 产品需求文档(PRD)
|
||
|
||
---
|
||
|
||
## 1. 文档版本与修订记录
|
||
|
||
| 版本号 | 日期 | 作者 | 变更说明 |
|
||
|-----|------------|---------|-----------|
|
||
| 0.1 | 2025-04-23 | JCNC 团队 | 初始版本,完成大纲 |
|
||
|
||
---
|
||
|
||
## 2. 产品概述
|
||
|
||
### 2.1 背景与现状
|
||
|
||
- 各大模型平台 API 标准差异大,调用繁琐;
|
||
- 企业对数据隐私、合规、高可用性需求日益提升;
|
||
- 多模态 AI 场景需求快速增长,但集成成本高。
|
||
|
||
### 2.2 产品愿景与价值
|
||
|
||
- **愿景**:打造 "一站式" 大模型接入与管理平台,让组织零门槛使用 AI 能力;
|
||
- **核心价值**:
|
||
- 降本增效:统一抽象、多云/本地混合部署;
|
||
- 安全合规:企业级权限、审计、加密;
|
||
- 可观察:全链路监控、告警、日志分析;
|
||
- 可扩展:插件化架构、生态开放。
|
||
|
||
---
|
||
|
||
## 3. 目标用户与用户画像
|
||
|
||
| 用户类型 | 角色 | 关键需求 |
|
||
|-----------|-----------|-------------------------------|
|
||
| 企业管理员 | CTO/IT 经理 | 快速部署与版本回滚;多租户隔离;权限管控;成本可视化 |
|
||
| 开发者 | 后端/AI 工程师 | 统一 SDK、丰富样例;自动化测试;调试日志;扩展性能调优 |
|
||
| 运维工程师 | DevOps | 健康检测;自动弹性伸缩;日志告警;灾备策略 |
|
||
| 产品经理&业务团队 | PM/产品 | 接口易用;版本管理;调用监控;成本中心分摊 |
|
||
| 最终用户(消费者) | 普通用户 | 简洁对话界面;快速响应;多端体验一致性 |
|
||
|
||
---
|
||
|
||
## 5. 用户旅程与场景
|
||
|
||
### 5.1 企业管理员一键部署场景
|
||
|
||
1. 登录控制台 → 选择模型版本 → 填写环境配置 → 点击 "部署"。
|
||
2. 平台触发 Helm 安装或 Kubernetes Operator → 自动化健康探针 → 部署成功通知。
|
||
3. 回滚与报警:若探针失败,自动回滚到上一次稳定版本,并在控制台与邮件/钉钉通知中推送告警。
|
||
|
||
### 5.2 开发者统一调用场景
|
||
|
||
1. 安装 SDK → 配置 API Key 与 Endpoint → 引入统一 "LLMHubSDK"。
|
||
2. 支持本地 Mock 模式与远程模式切换,便于本地调试。
|
||
|
||
### 5.3 运维监控与告警场景
|
||
|
||
- 引入 Prometheus Exporter → Grafana 可视化面板。
|
||
- 设定 QPS、延迟、错误率阈值 → 告警策略(短信/邮件/WebHook)。
|
||
- 日志聚合:Elasticsearch + Kibana,支持结构化日志查询与异常追溯。
|
||
|
||
---
|
||
|
||
## 6. 技术架构与模块设计
|
||

|
||
### 6.1 总体架构
|
||
|
||
|
||
|
||
### 6.2 模块细化
|
||
|
||
| 模块 | 功能点 |
|
||
|-----------|--------------------------------------------------------|
|
||
| API 网关 | 认证鉴权、限流、请求路由、熔断 |
|
||
| 适配器层 | 各供应商 API 封装、参数映射、版本兼容 |
|
||
| 编排模块 | Helm/Operator 调用、健康探针、回滚逻辑 |
|
||
| 调度模块 | GPU/CPU 利用率监控、Pod 弹性伸缩、分区隔离 |
|
||
| 监控告警 | Exporter、Grafana 仪表、Prometheus Alertmanager、WebHook 集成 |
|
||
| 日志审计 | 调用链追踪、ELK 日志聚合、审计报告导出 |
|
||
| 权限管理 | RBAC、OAuth2.0、SSO 集成 |
|
||
| SDK & CLI | 多语言 SDK、CLI 工具、Mock 本地模式 |
|
||
| 运维工具 | 灾备脚本、升级回滚脚本、备份恢复脚本 |
|
||
|
||
---
|
||
|
||
### 7. 接口规范与示例
|
||
|
||
```yaml
|
||
openapi: 3.0.1
|
||
info:
|
||
title: LLMHub API
|
||
version: 1.0.0
|
||
paths:
|
||
/v1/models:
|
||
get:
|
||
summary: 列出可用模型
|
||
responses:
|
||
'200':
|
||
description: 模型列表
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ModelList'
|
||
|
||
/v1/deploy:
|
||
post:
|
||
summary: 部署模型
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DeployRequest'
|
||
responses:
|
||
'202':
|
||
description: 部署已接受
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/DeployResponse'
|
||
|
||
components:
|
||
schemas:
|
||
ModelList:
|
||
type: object
|
||
properties:
|
||
models:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Model'
|
||
|
||
Model:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
name:
|
||
type: string
|
||
description:
|
||
type: string
|
||
|
||
DeployRequest:
|
||
type: object
|
||
required:
|
||
- modelId
|
||
- cluster
|
||
properties:
|
||
modelId:
|
||
type: string
|
||
description: 要部署的模型 ID
|
||
cluster:
|
||
type: string
|
||
description: 目标集群名称
|
||
resources:
|
||
type: object
|
||
properties:
|
||
cpu:
|
||
type: integer
|
||
description: CPU 核数
|
||
gpu:
|
||
type: integer
|
||
description: GPU 卡数
|
||
env:
|
||
type: object
|
||
description: 环境变量列表
|
||
additionalProperties:
|
||
type: string
|
||
|
||
DeployResponse:
|
||
type: object
|
||
properties:
|
||
deploymentId:
|
||
type: string
|
||
description: 部署任务 ID
|
||
status:
|
||
type: string
|
||
description: 当前状态
|
||
startedAt:
|
||
type: string
|
||
format: date-time
|
||
description: 启动时间
|
||
```
|
||
|
||
---
|
||
|
||
### 7.2 样例请求与响应
|
||
|
||
#### 请求
|
||
|
||
```http
|
||
POST /v1/deploy HTTP/1.1
|
||
Host: api.llmhub.example.com
|
||
Authorization: Bearer <token>
|
||
Content-Type: application/json
|
||
|
||
```
|
||
|
||
#### 响应
|
||
|
||
```http
|
||
HTTP/1.1 202 Accepted
|
||
Content-Type: application/json
|
||
|
||
```
|
||
|
||
## 8. 非功能需求
|
||
|
||
1. **性能**:
|
||
- 平均响应时长 ≤ 200ms(P95);
|
||
- 系统峰值 QPS ≥ 2000;
|
||
2. **可用性**:
|
||
- SLA ≥ 99.9%(月度);
|
||
- 支持多 AZ 部署与链路故障切换;
|
||
3. **安全**:
|
||
- OAuth2.0 / JWT / RBAC;
|
||
- TLS 全链路加密;
|
||
- 日志审计覆盖 100% 调用;
|
||
4. **可扩展性**:
|
||
- 插件化适配器动态加载;
|
||
- 支持 0-100+ 模型实例线性扩容;
|
||
5. **可观测性**:
|
||
- Prometheus + Grafana 指标;
|
||
- ELK 日志搜索;
|
||
- 分布式追踪 (Jaeger);
|
||
6. **合规**:
|
||
- GDPR、ISO27001、等保二级;
|
||
- 数据脱敏与访问日志保留策略;
|
||
|
||
---
|
||
|
||
## 9. UX/UI 细节说明
|
||
|
||
- **部署向导**:多步骤分屏设计,当前步骤突出,支持中途保存;
|
||
- **仪表盘**:实时 QPS、延迟、资源利用率图表;
|
||
- **日志中心**:关键字搜索,高亮、过滤、导出;
|
||
- **权限控制**:角色列表页面,支持批量授权、权限树视图;
|
||
- **暗黑/明亮主题**:一键切换,跟随系统主题配置;
|
||
|
||
---
|
||
|
||
## 10. 测试与验收
|
||
|
||
1. 单元测试覆盖率 ≥ 90%;
|
||
2. 集成测试场景覆盖:部署、回滚、扩容、调用限流;
|
||
3. 安全渗透测试:无高危漏洞;
|
||
4. 性能压测:最大并发 2000 QPS 无误;
|
||
5. 用户验收:按用户故事完成演示并通过评审;
|
||
|
||
---
|
||
|
||
## 11. 风险与缓解措施
|
||
|
||
| 风险 | 概率 | 影响 | 缓解措施 |
|
||
|----------------|----|----|-----------------------------------------|
|
||
| 第三方模型接口变动 | 中 | 高 | 定期兼容性测试 + 自动化适配层升级 |
|
||
| 私有云网络隔离导致部署失败 | 中 | 高 | 与运维团队协作,提供脚本化网络检测与自动重试机制 |
|
||
| 多租户资源争抢 | 低 | 中 | 引入优先级调度与资源隔离(Namespace + ResourceQuota) |
|
||
| 审计日志量大导致存储成本上升 | 高 | 中 | 日志冷热分离,归档策略与压缩存储 |
|
||
|
||
---
|
||
|
||
## 12. 迭代计划与里程碑
|
||
|
||
| 阶段 | 时间范围 | 目标 |
|
||
|-------|--------------------|----------------------------------|
|
||
| Alpha | 2025-05-01 ~ 05-15 | 完成架构设计、API 抽象与一键部署 POC; |
|
||
| Beta | 2025-05-16 ~ 06-15 | 完成基础文本服务、多租户 & 权限系统、监控 & 告警集成; |
|
||
| RC | 2025-06-16 ~ 06-30 | 完成图像/语音多模态接入、系统性能 & 安全测试,Bug 修复; |
|
||
| GA | 2025-07-01 | 对外发布文档、部署指南、SDK & CLI,客服支持渠道就绪; |
|
||
| V1.1+ | 2025 Q3 ~ Q4 | 插件生态开放、多模态深度优化、行业解决方案模板; |
|
||
|
||
---
|
||
|
||
## 13. 附录
|
||
|
||
- **术语表**:[点击查看](../LLM-Hub-Glossary/LLM-Hub-Glossary.md)
|
||
- **部署指南**:
|
||
- **运维手册**:
|
||
- **用户手册(PDF)**:
|
||
|