交付审计 · 补件清单(通俗版 · 复核)

策量智算大模型网关系统

交付补件清单(通俗版)
核查日期 2026-08-03 | 说明:本清单在原版基础上,对两套源码、两份数据库备份、交付文档 PDF 逐项复核后整理;非技术同事也能看懂,关键接口名、文件名予以保留,方便对接人定位
8需补交文档
10交付包整改项
3待确认事项
21合计

还缺的文档(请对方补交)

8
#缺什么通俗解释(为什么缺、要包含什么)优先级
1 部署运维手册
为什么缺

怎么把整套系统装起来、跑起来的说明书。现在网关目录只有一句"怎么编译"的提示,RuoYi 的说明还是开源项目自带的那份,照着做装不起来。

要包含
  • 两个系统分别怎么编译打包(含前端页面构建)
  • 完整环境变量清单和默认值:RUOYI_BASE_URLRUOYI_API_KEY、数据库、Redis
  • 数据库按什么顺序初始化、先导入哪个库;Redis 怎么初始化
  • Nginx 反代与限流的配置示例
  • 多台服务器一起部署时怎么配合(多副本)
  • 日常怎么启动、停止服务,出问题去哪看日志
P0
2 API 接口详细文档
为什么缺

每个接口的"使用说明书"。现在只有接口名单,没有参数和返回说明;后台虽然内置了文本/视频接入文档,但没有内部计费接口和错误码表。

要覆盖
  • 内部计费:余额预扣 /api/inner/billing/preCheck、结算回调 /api/inner/billing/callback
  • 视频:生成任务 /v1/videos/generations、查询任务 /v1/videos/task/{id}
  • 管理后台:渠道、令牌、定价、充值、余额等全部接口
  • 每项都要有:请求/响应参数、鉴权方式、错误码表
P0
3 数据字典
为什么缺

数据库表结构说明。现在只有数据库文件,每张表存什么、字段代表什么、状态数字什么意思,得靠翻代码猜。

要包含
  • 每张表的用途、每个字段的含义
  • "0/1/2"这类状态值分别代表什么状态
  • 金额单位说明(内部用"毫厘"计价,1 元 = 1,000,000 毫厘)
  • 计费库 6 张自建表:ai_user_balanceai_model_priceai_recharge_recordai_expense_recordai_freeze_recordai_tenant_key
  • 网关库 3 张定制表:callbackseedanceredemptions
P0
4 账号与配置清单
为什么缺

所有账号密码和系统设置项的汇总表。现在密码散落在配置文件里,系统里有哪些配置、分别填了什么值也没有清单。

要包含
  • RuoYi 管理员、网关 root、MySQL、Redis 的账号密码
  • sys_config 配置项:网关地址 ai.oneapi.baseUrl、管理员令牌 adminToken、超时 timeout、视频/图片预扣价 freeze_video/freeze_image、冻结时长 freeze_ttl_hours
注意:复核发现回调验签密钥 ruoyi.callback.secret 不在 sys_config 表里,实际是代码里的默认值加启动脚本环境变量,清单里要按实际情况写清楚,别照抄原清单。
P0
5 验收测试材料
为什么缺

证明系统真能正常工作的材料。复核发现定制代码(计费、视频调度、回调)没有任何测试,验收没抓手。

要包含
  • 测试用例、测试报告
  • 可直接跑的冒烟验证脚本,覆盖三条主线:对话调用、视频生成任务、计费三层兜底(实时结算、回调重试、冻结超时自动释放)
P1
6 架构图源文件
为什么缺

交付文档里只有一张架构图截图,以后想改图(比如加个新系统)就得重画。

要包含
  • 架构图的可编辑源文件(draw.io / Mermaid 等格式都可以)
P2
7 版本说明
为什么缺

没有正式版本号和变更记录。网关的版本号文件 VERSION 是空的,代码里版本显示 v0.0.0,连自己装的是哪个版本都说不清。

要包含
  • 正式版本号
  • 从基础版本到现在改过哪些东西的变更记录
P2
8 业务计费规则说明
为什么缺

计费规则说明书。现在怎么收费全得从代码里反推。

要包含
  • 模型价格表怎么维护
  • 视频/图片固定预扣价规则
  • 充值和退款流程分别怎么走
特别注意:原清单提到的租户视频任务上限 video_task_max,复核时在两套代码里都没找到对应实现,需要对方说明是没实现、还是漏交付了。
P2

交付包本身的问题(请对方整改)

10
#问题通俗解释(在哪里、严重在哪)要求
9 安全
密码直接写在交付包里
问题

生产环境的真实密码暴露在代码和配置文件里,谁拿到交付包都能看到。

位置
  • one-api/start.sh:数据库密码、Redis 密码、网关对接密钥 RUOYI_API_KEY
  • start_dev.sh:root 密码、RUOYI_API_KEY
  • application-prod.yml:MySQL 密码 cxDjANbyBC6cp3e6、Redis 密码 AIGateway@2026HRFKJBF
  • application-dev.yml:阿里云 accessKey、微信 client-secret 等十余处明文
密码改成占位符,真实密码走安全渠道单独交接;已经暴露过的密码建议全部更换
10 安全
数据库备份里带着真实密钥和用户数据
问题

原清单只说"密钥移交待确认",复核发现更严重:密钥已经直接在交付包里了。

位置
  • 8月3日数据库备份 channels 表:移动云 QnMUI6qG...、火山引擎 ark-85ca99b4-... 渠道 API Key 明文
  • 网关 root 令牌 cc4bf8fc... 同时出现在用户表和 sys_config.ai.oneapi.adminToken
  • 计费库还有真实手机号、姓名、学校名和短信模板
先换发渠道密钥、清理真实用户数据,脱敏后再交付
11 部署
一键部署文件会装出"阉割版"
问题

网关目录里的 docker-compose.yml 还是开源项目原版,拉的是 justsong/one-api:latest 官方镜像,里面没有视频生成、计费和回调这些定制功能,照它部署装出来的是阉割版网关。

位置
  • one-api/docker-compose.yml(引用官方镜像)
  • RuoYi 侧没有任何容器化部署文件
换成定制版的构建/部署文件(自建镜像或本地编译),RuoYi 侧一并补齐
12 部署
Nginx 配置和交付文档对不上
问题

交付文档说 Nginx 承担反向代理和限流,但交付包里的 nginx.conf 是开源项目演示配置,两者对不上。

位置
  • RuoYi-Vue-Plus/script/docker/nginx/conf/nginx.conf:只转了 RuoYi 的 8080 端口
  • 没有网关(3000 端口)的反向代理
  • 没有任何限流规则
补网关反代、限流配置示例,并和交付文档保持一致
13 清理
混进运行日志、临时文件和编译产物
问题

交付包里带着别人机器上跑出来的东西,既不专业也可能泄露运行细节,整包 1.4GB 也过大。

位置
  • one-api/logs/RuoYi-Vue-Plus/logs/:7 月运行日志(含 requestId 等内部信息)
  • 17 个 .DS_Store 临时文件
  • 前端 node_modules(约 1.2GB)、30 个 target/ 编译目录
清理运行日志、临时文件、编译产物后重新打包
14 清理
数据库备份有两套,容易拿错
问题

同一份数据库给了两份备份,日期还不一样,部署时拿错版本数据对不上,排错很痛苦。

位置
  • 根目录:8月3日 新备份
  • RuoYi-Vue-Plus/script/sql/:7月22日 旧备份
明确以哪套为准,删掉旧版或在文件上注明版本
15 质量
交付 PDF 没校对好
问题

比原清单说的更严重:目录和正文不仅编号对不上(两个 3.2),目录里还有两节正文根本没有。

位置
  • "渠道与模型管理""数据维护":目录里有、正文里没有
  • 目录写部署环境在第 9 页,文档一共只有 8 页
按正文实际章节修订目录和编号后重新发一版
16 交付形态
git 仓库不完整
问题

顶层 git 仓库把两个源码目录记录成了"子模块链接",但没有 .gitmodules 文件,子目录里也没有 .git,别人 clone 下来两个源码目录是空的,无法 checkout 出代码。

位置
  • 顶层仓库把 RuoYi-Vue-Plusone-api 记录为 gitlink(mode 160000)
补好子模块引用,或改用完整目录压缩包交付
17 缺失文件
代码引用的 SQL 文件不在包里
问题

网关代码注释里写着索引由 sql/20260721_callback.sql 维护,但整个交付包里找不到这个文件,影响后续升级维护。

位置
  • one-api/relay/adaptor/seedance/model.go 注释引用了该文件
补上该 SQL 文件,或修正代码注释并说明索引维护方式
18 文档
网关说明没更新,还写反了
问题

网关 README 只有两行,还写着"计费、租户管理都移除"——实际计费是自研接入的,正好相反;环境变量说明也没跟上。

位置
  • one-api/README.md:内容与事实相反
  • one-api/.env.example:没收录 RUOYI_BASE_URLRUOYI_API_KEY 等新增环境变量
按实际功能重写 README 和环境变量说明

需要对方口头/书面确认的事

3
#事项通俗解释(为什么要问)类型
19 第三方 SDK 授权确认
为什么问

系统里嵌了别人家的代码,得确认能不能用,避免后续版权和合规风险。

位置
  • one-api/seedancesdk/:内嵌火山引擎 AICC SDK,带自己的 go.mod,包里没有许可证文件
合规
20 上游平台密钥交接
为什么问

系统要调用火山引擎、移动云的模型能力,渠道 API Key 的来源和交接方式需要明确。

特别注意:密钥已经在交付的数据库备份里出现过,务必先换发新密钥,再通过安全渠道交接。
凭据
21 开源协议商用确认
为什么问

系统基于两个开源框架二次开发并用于商业项目,需确认许可是否允许,以及需要保留哪些声明。

位置
  • RuoYi-Vue-Plus(MIT)、one-api(MIT)
合规