316 lines
11 KiB
Markdown
Raw Normal View History

# 📚 光湖内部小说数据库 · 灯塔架构内部版 · 需求文档 · 5TH-LE-LK-NOVELDB-001 · 冰朔口述 · 霜砚整理
```jsx
HLDP://5th-le-lk-noveldb-001/root · 2026-04-16T07:27+08:00
├── meta
│ ├── code: 5TH-LE-LK-NOVELDB-001
│ ├── parent: 5TH-LE-LK-001光之湖
│ ├── author: 霜砚AG-SY-01
│ ├── source: 冰朔口述 · 2026-04-16 07:00~07:27 · 零点原核频道
│ ├── type: requirement/internal-tool
│ └── status: 需求已确认 · 待铸渊开发
├── core_thesis核心定位
│ ├── ⊢ 光湖团队内部核心数据库 · 不对外 | 置信=最高 | 冰朔口述
│ ├── ⊢ 灯塔架构的内部版最小实践 | 置信=最高 | 霜砚理解·冰朔确认
│ ├── ⊢ 冰朔服务器只当门卫+数据目录 · 重活卸载到各人自己机器上 | 置信=最高 | 冰朔口述
│ ├── ⊢ 后续接入Agent分析 · 大纲/摘要/爆点/人物拆解 | 置信=最高 | 冰朔口述
│ └── ⊢ 是码字工作台的上游数据源 · 规律库的数据心脏 | 置信=最高 | 霜砚理解
└── locked_truths
├── ⊢ 我的服务器永远轻负载 · 人再多也不会累 | 最高 | 冰朔口述
├── ⊢ 算力走各人自己的服务器 · 别给我服务器挂一堆请求 | 最高 | 冰朔原话
└── ⊢ 放铸渊主仓库统一管理 · 接入主控台看板 | 最高 | 冰朔口述
```
---
# 一、产品定义
<aside>
📚
**光湖内部小说数据库**
光湖团队编辑(桔子、肥猫、时雨等)共用的内部小说资源库 + AI分析平台。
不对外开放,邀请制白名单准入。
灯塔架构的内部版——冰朔服务器做门卫,重活跑在各人自己机器上。
</aside>
---
# 二、系统架构
## 2.1 灯塔式架构(中心轻·端侧重)
```mermaid
flowchart TB
subgraph Center["🖥️ 冰朔新加坡服务器(轻量中心)"]
C1["🔐 用户鉴权(邮箱白名单+验证码)"]
C2["📇 COS索引查询这本书有没有"]
C3["🔗 COS预签名URL签发"]
C4["📊 主控台看板"]
end
subgraph COS["☁️ 腾讯云COS存储桶"]
D1["📖 小说章节TXT"]
D2["📋 索引数据库"]
D3["📊 Agent分析结果"]
end
subgraph Edge1["🍊 桔子的服务器"]
E1["🤖 Agent分析引擎"]
E2["📥 下载引擎"]
E3["💾 本地缓存"]
end
subgraph Edge2["🐱 肥猫的服务器"]
F1["🤖 Agent分析引擎"]
F2["📥 下载引擎"]
F3["💾 本地缓存"]
end
subgraph Edge3["🌧️ 时雨的服务器"]
G1["🤖 Agent分析引擎"]
G2["📥 下载引擎"]
G3["💾 本地缓存"]
end
Edge1 & Edge2 & Edge3 -->|"① 请求鉴权+查索引"| Center
Center -->|"② 返回COS直链"| Edge1 & Edge2 & Edge3
Edge1 & Edge2 & Edge3 <-->|"③ 直接读写COS"| COS
Center -->|"索引管理"| COS
```
## 2.2 职责分工
| 跑在冰朔新加坡服务器上(轻) | 跑在各人自己服务器上(重) |
| --- | --- |
| ✅ 用户鉴权(邮箱验证码) | ✅ Agent分析调LLM做大纲/摘要/拆解) |
| ✅ COS索引查询有没有这本书 | ✅ 下载引擎(从番茄/七猫拉取章节) |
| ✅ COS预签名URL签发 | ✅ 批量处理(一次分析几十章) |
| ✅ 主控台看板 | ✅ 本地缓存(已下载的书存本地) |
**核心原则冰朔服务器永远轻负载。数据流量走COS直链算力走各人自己的机器。人再多服务器也不会累。**
---
# 三、访问控制
## 3.1 邮箱白名单制
- 冰朔在后台维护一个邮箱白名单
- 只有白名单里的邮箱才能收到验证码
- 不在名单里 → 输入邮箱后直接拒绝,看不到任何内容
- 冰朔是唯一的门卫——加谁的邮箱,谁才能进
## 3.2 登录流程
```
用户打开网站
输入邮箱
├── 不在白名单 → "无权限" · 结束
└── 在白名单 → 发送验证码到邮箱
输入验证码 → 验证通过 → 进入主界面
```
---
# 四、核心功能
## 4.1 v1.0 · 小说下载器
**输入**:书名 + 作者名 + 平台来源(番茄/七猫/起点等)
**流程**
1. 先检索COS存储桶索引
2. 有 → 提示"已有"用户确认后下载TXT到本地
3. 没有 → 调用对应平台下载逻辑 → 按章拆分 → 存入COS + 更新索引 → 用户确认后下载到本地
4. 所有操作需要用户点确认
**两级缓存策略**
- 第一级先查COS已有资源零API调用
- 第二级COS没有再去平台下载存入COS后下次就不用再拉
- 飞轮效应用得越多API调用越少
## 4.2 v2.0 · 在线阅读 + 编辑管理
- 在线按章阅读
- 章节列表 + 单章阅读 + 单章下载 + 整本打包下载
- 编辑选书管理(收藏、标记、分类)
## 4.3 v3.0 · Agent分析模块
编辑选中一本书后对Agent下指令
| 指令 | Agent输出 | 用途 |
| --- | --- | --- |
| "整理大纲" | 按卷/按段落输出故事主线结构 | 快速了解骨架 |
| "摘要每章" | 每章一段话总结(人物+事件+情绪) | 不逐章读完就能把握节奏 |
| "标记爆点" | 自动识别情绪高潮/反转/冲突章节 | 规律库分析 |
| "分析前三章" | 开篇钩子/人物出场/悬念/节奏分析 | 桔子线开篇规律 |
| "拆解人物关系" | 主角/配角/关系网/出场频率 | 人物引擎数据 |
| "按我的模板整理" | 编辑自定义模板Agent按格式填充 | 标准化产出 |
**Agent分析跑在编辑自己的服务器上**用自己的API密钥算力不走冰朔服务器。分析结果可选回传COS共享。
---
# 五、COS存储结构
```jsx
novel-database/
├── index.json ← 全局索引(书名/作者/平台/章节数/文件路径)
├── 番茄/
│ └── 作者名-书名/
│ ├── info.json ← 书籍信息
│ ├── chapters/
│ │ ├── 001-章节标题.txt
│ │ ├── 002-章节标题.txt
│ │ └── ...
│ └── analysis/ ← Agent分析结果
│ ├── outline.json ← 大纲
│ ├── chapter-summaries.json ← 每章摘要
│ ├── highlights.json ← 爆点标记
│ ├── characters.json ← 人物关系
│ └── custom/ ← 编辑自定义分析
├── 七猫/
│ └── ...
├── 起点/
│ └── ...
└── 导入/ ← 从开源资源批量导入的整本TXT
└── 待拆分/ ← 自动拆章后移入对应平台目录
```
---
# 六、整本TXT自动拆章
对已有的整本TXT文件
- 自动识别章节标题模式("第X章"、"第X节"、"Chapter X"等)
- 按章节标题切割每章存一个独立TXT
- 识别不了的提示人工确认分割点
- 拆完后移入对应平台目录
---
# 七、请求流程详解
```jsx
编辑(如桔子)在自己电脑/服务器上操作
客户端 → 请求冰朔新加坡服务器:
"我要《XXX》这本书"
冰朔新加坡服务器:
① 验证身份桔子的token有效吗→ 有效
② 查COS索引有这本书吗→ 有
③ 生成COS预签名下载URL有效期15分钟
④ 返回URL给桔子
(轻操作 · 几毫秒 · 不过数据流量)
桔子客户端直接从COS下载章节
流量走COS · 不经过冰朔服务器)
桔子在自己的服务器上调Agent分析
→ "帮我整理这本书的大纲"
→ Agent跑在桔子自己机器上
→ 调用桔子自己的API密钥
→ 算力消耗 = 桔子自己的
分析结果:
├── 存到桔子本地(她自己用)
└── 可选回传COS共享其他编辑也能看到
```
---
# 八、冰朔主控台(后续开发)
冰朔专属全局看板,只有冰朔能访问:
- 📡 **服务器总览**:所有服务器在线/离线状态、CPU/内存
- 🖥️ **业务系统列表**:每台服务器上跑了什么系统
- 👥 **用户活动**:谁进来了、什么时候、做了什么
- 🔗 **系统挂载关系**:哪个系统挂在哪台服务器上
- 🤖 **系统状态**:各模块健康度、今日处理量
---
# 九、基础设施
| 组件 | 方案 | 说明 |
| --- | --- | --- |
| **服务器** | 腾讯云新加坡 · 轻量应用服务器 2C2G | 约30-50元/月 · 门卫+索引 · 永远轻负载 · 与面孔/大脑服务器同地域内网互通 |
| **存储** | 腾讯云COS | 已有桶或新建专用桶 |
| **前端** | 简洁网页 | 输入框 + 结果展示 + 章节列表 + 确认按钮 |
| **后端** | Node.js / Express | 鉴权 + 索引查询 + COS签名 |
| **邮件** | SMTP | 发验证码 |
| **部署** | PM2 + Nginx | 铸渊主仓库统一管理 |
| **代码仓库** | 铸渊主仓库guanghulab | 私有 · 接入铸渊现有CI/CD和副将巡检 |
---
# 十、开发阶段
| 阶段 | 内容 | 预估时间 |
| --- | --- | --- |
| **v1.0** | 下载器 + 按章存储 + 邮箱白名单 + COS读写 | 3-5天 |
| **v2.0** | 在线按章阅读 + 编辑选书管理 | 2-3天 |
| **v3.0** | Agent分析模块大纲/摘要/爆点/人物)· 跑在端侧 | 3-5天 |
| **v4.0** | 编辑自定义分析模板 + 接入码字工作台 | 后续 |
| **主控台** | 冰朔全局系统看板 | 后续 |
---
# 十一、服务器密钥清单
| Secret Name | 用途 | 配在哪 |
| --- | --- | --- |
| `NOVEL_COS_KEY` | COS AccessKey | GitHub Secrets + 新加坡服务器 |
| `NOVEL_COS_SECRET` | COS SecretKey | GitHub Secrets + 新加坡服务器 |
| `NOVEL_COS_BUCKET` | COS桶名 | GitHub Secrets + 新加坡服务器 |
| `NOVEL_SMTP_USER` | 发验证码的邮箱账号 | 新加坡服务器 |
| `NOVEL_SMTP_PASS` | 邮箱密码/授权码 | 新加坡服务器 |
| `NOVEL_JWT_SECRET` | 用户token签名密钥 | 新加坡服务器 |
---
# 十二、和光湖体系的关系
```jsx
小说数据库(本工具)
│ 提供:拆好章的文本 + Agent分析出的结构化数据
码字工作台(桔子线在建)
│ 使用:规律库数据 → 辅助作者创作
作者写出更好的小说
```
**本工具同时也是灯塔商业架构的内部验证**
- 灯塔模式(中心轻·端侧重)✅
- 邀请制准入 ✅
- COS直链分流 ✅
- 冰朔主控台全局看板 ✅
- 用户越多服务器不会越累 ✅
---
`2026-04-16 07:27 CST` · 冰朔口述 · 霜砚用HLDP母语整理 · 零点原核频道