shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/✍️ 铸渊指令|AI写网文平台·Phase B · 平台首页 + 用户登录注册 + AI伙伴对话框( b47c2b3668c747ed8fc682b41088f2eb.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

725 lines
27 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
belongs_to:
- "[[INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议]]"
---
# ✍️ 铸渊指令AI写网文平台·Phase B · 平台首页 + 用户登录注册 + AI伙伴对话框ZY-WRITING-PLATFORM-2026-0325-001· 霜砚签发 · 冰朔授权
<aside>
🔴
**指令编号**ZY-WRITING-PLATFORM-2026-0325-001
**指令等级**P0 · 网文平台首期功能
**签发者**霜砚AG-SY-01
**授权者**冰朔TCS-0002∞
**发起人**肥猫TCS-GL-07∞ / DEV-002
**签发时间**2026-03-25 19:55 CST
**需求来源**[📘 中国网文行业·光湖纪元语言人格平台|完整说明书](../%F0%9F%8C%8A%20%E6%9B%9C%E5%86%A5%E7%BA%AA%E5%85%83%20%C2%B7%20HoloLake%20Era%20%C2%B7%20AGE%20OS%20v1%200/%F0%9F%8C%80%20%E9%9B%B6%E6%84%9F%E5%9F%9F%20%C2%B7%20Zero-Sense%20Domain/%F0%9F%8C%80%20%E9%9B%B6%E6%84%9F%E5%9F%9F%20%C2%B7%20%E6%80%BB%E5%AF%BC%E8%88%AA%E5%8F%B0%EF%BC%88Zero-Sense%20Domain%20%C2%B7%20Navigation%20Hub%EF%BC%89/%F0%9F%92%BC%20%E5%9B%9B%E3%80%81%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%96%BD%E5%8C%BA/%F0%9F%93%98%20%E4%B8%AD%E5%9B%BD%E7%BD%91%E6%96%87%E8%A1%8C%E4%B8%9A%C2%B7%E5%85%89%E6%B9%96%E7%BA%AA%E5%85%83%E8%AF%AD%E8%A8%80%E4%BA%BA%E6%A0%BC%E5%B9%B3%E5%8F%B0%EF%BD%9C%E5%AE%8C%E6%95%B4%E8%AF%B4%E6%98%8E%E4%B9%A6%202f0fb92f383181e781c7dafe728ae4b3.md)
**架构参考**[🏗️ 光湖网站架构设计 + 部署推进规划 v3.02026-03-15·曜冥签发](../%F0%9F%8C%8A%20%E6%9B%9C%E5%86%A5%E7%BA%AA%E5%85%83%20%C2%B7%20HoloLake%20Era%20%C2%B7%20AGE%20OS%20v1%200/%E2%9A%A1%20%E5%85%89%E6%B9%96%E4%B8%AD%E5%A4%AE%E6%9E%A2%E7%BA%BD%20%C2%B7%20HoloLake%20Central%20Hub/%F0%9F%8C%8A%20%E5%85%89%E6%B9%96%E7%B3%BB%E7%BB%9F%C2%B7%E6%9B%9C%E5%86%A5%E4%B8%BB%E6%8E%A7%E5%8F%B0%C2%B7%E5%BD%93%E5%89%8D%E7%8A%B6%E6%80%81%EF%BC%88%E5%8D%B71%20%C2%B7%20%E5%B7%B2%E5%B0%81%E5%8D%B7%EF%BC%89/%F0%9F%8F%97%EF%B8%8F%20%E5%85%89%E6%B9%96%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%20+%20%E9%83%A8%E7%BD%B2%E6%8E%A8%E8%BF%9B%E8%A7%84%E5%88%92%20v3%200%EF%BC%882026-03-15%C2%B7%E6%9B%9C%E5%86%A5%E7%AD%BE%E5%8F%91%EF%BC%89%2031efb92f3831818cbd0ee43c1be2fd90.md)
**仓库参考**[🗂️ GitHub 仓库最新路径索引Notion↔仓库 实时对照表2026-03-24 · 霜砚整理)](%F0%9F%97%82%EF%B8%8F%20GitHub%20%E4%BB%93%E5%BA%93%E6%9C%80%E6%96%B0%E8%B7%AF%E5%BE%84%E7%B4%A2%E5%BC%95%EF%BD%9CNotion%E2%86%94%E4%BB%93%E5%BA%93%20%E5%AE%9E%E6%97%B6%E5%AF%B9%E7%85%A7%E8%A1%A8%EF%BC%882026-03-24%20%C2%B7%20%E9%9C%9C%E7%A0%9A%2012df1cbf6c454a08b2946652ec70d865.md)
**前置依赖**ZY-FULLSITE-DEPLOY-2026-0325-001全站部署令 · 网站已上线)
**回执要求**:每个 Phase 完成后写回执到 GitHub Issue
</aside>
---
## 〇、指令总览
本指令要求铸渊在 [guanghulab.com](http://guanghulab.com) 上构建 **「AI写网文」平台首期功能**,实现三大核心:
1. **平台首页Landing Page** — 光湖码字平台入口,对话式设计,不是传统菜单式
2. **用户注册/登录系统** — 手机号+验证码,三种角色(作者/编辑/运营JWT 鉴权
3. **AI伙伴对话框** — 登录后分配专属AI伙伴WebSocket实时对话人格化交互
### 核心设计理念
<aside>
**用户全程不点菜单只跟AI伙伴说话。**
AI伙伴理解意图 → 系统动态渲染对应模块 → 用户感觉整个网站只有自己一个人。
这不是传统网站。这是**语言驱动的创作平台**。
</aside>
---
## 一、技术选型(锁定)
| **层级** | **技术** | **版本** | **用途** |
| --- | --- | --- | --- |
| 前端框架 | React 18 + TypeScript | 18.2+ | UI 组件化 |
| 构建工具 | Vite | 5.0+ | 快速构建 |
| 样式框架 | Tailwind CSS | 3.3+ | 响应式 + 快速开发 |
| UI 组件库 | shadcn/ui + Radix UI | latest | 现代无障碍组件 |
| 实时通信 | [Socket.io](http://Socket.io) | 4.x | AI伙伴实时对话 |
| 后端框架 | Node.js + Express | 20 LTS + 4.18 | API 服务 |
| 身份认证 | JWT + Passport.js | latest | Token 鉴权 |
| AI 接入 | OpenAI SDK + Anthropic SDK | latest | GPT-4 / Claude |
| 数据库 | Notion API+ Redis缓存 | latest | 数据存储 + 会话缓存 |
| 部署 | 阿里云 ECS8.155.62.235 | - | 正式站 [guanghulab.com](http://guanghulab.com) |
---
## 二、仓库路径规划
在主仓库 `qinfendebingshuo/guanghulab` 下新建以下目录:
```
guanghulab/
└── writing-platform/ ← AI写网文平台根目录
├── frontend/ ← 前端React + Vite
│ ├── src/
│ │ ├── pages/
│ │ │ ├── LandingPage.tsx ← 平台首页
│ │ │ ├── LoginPage.tsx ← 登录页
│ │ │ ├── RegisterPage.tsx ← 注册页
│ │ │ └── DashboardPage.tsx ← 登录后主界面AI伙伴
│ │ ├── components/
│ │ │ ├── AICompanion.tsx ← AI伙伴头像 + 对话框组件
│ │ │ ├── ChatBubble.tsx ← 聊天气泡
│ │ │ ├── RoleSelector.tsx ← 角色选择器(作者/编辑/运营)
│ │ │ ├── PhoneLogin.tsx ← 手机号登录组件
│ │ │ └── Navbar.tsx ← 导航栏
│ │ ├── hooks/
│ │ │ ├── useAuth.ts ← 认证状态管理
│ │ │ └── useSocket.ts ← WebSocket 连接
│ │ ├── services/
│ │ │ ├── api.ts ← API 调用封装
│ │ │ └── socket.ts ← Socket.io 客户端
│ │ ├── stores/
│ │ │ └── authStore.ts ← Zustand 状态管理
│ │ ├── App.tsx
│ │ └── main.tsx
│ ├── public/
│ │ └── assets/ ← 静态资源AI伙伴头像等
│ ├── index.html
│ ├── vite.config.ts
│ ├── tailwind.config.ts
│ ├── tsconfig.json
│ └── package.json
├── backend/ ← 后端Express
│ ├── src/
│ │ ├── routes/
│ │ │ ├── auth.ts ← 注册/登录/验证码
│ │ │ ├── user.ts ← 用户信息
│ │ │ └── ai.ts ← AI对话代理
│ │ ├── middleware/
│ │ │ ├── authMiddleware.ts ← JWT 验证中间件
│ │ │ └── rateLimiter.ts ← 限流
│ │ ├── services/
│ │ │ ├── smsService.ts ← 短信验证码阿里云SMS
│ │ │ ├── aiService.ts ← AI模型调用封装
│ │ │ ├── notionService.ts ← Notion API 封装
│ │ │ └── socketService.ts ← WebSocket 服务
│ │ ├── models/
│ │ │ └── userModel.ts ← 用户数据模型
│ │ └── server.ts ← 入口
│ ├── tsconfig.json
│ └── package.json
└── README.md ← 模块说明
```
---
## 三、Phase 0 · 平台首页Landing Page
### 3.1 设计要求
<aside>
🎨
**核心:对话式,不是菜单式。**
页面打开后,屏幕中央是一个 AI 伙伴头像 + 欢迎语 + 对话框。
用户不是在「浏览网站」而是在「遇见自己的AI创作伙伴」。
</aside>
### 3.2 页面结构
```
┌─────────────────────────────────────────────────────────┐
│ 🌟 光湖码字 · AI创作伙伴平台 [登录] [注册] │
├─────────────────────────────────────────────────────────┤
│ │
│ 🤖 │
│ AI伙伴头像动态
│ │
│ "你好我是你的AI创作伙伴。 │
│ 无论你是作者、编辑还是运营, │
│ 我都能陪你一起工作。" │
│ │
│ [我是作者] [我是编辑] [我是运营] │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ ✨ 三大核心能力 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 🖊️ AI码字 │ │ 📊 透明追踪│ │ 🤝 跨平台 │ │
│ │ AI陪你写 │ │ 全程留痕 │ │ 自由合作 │ │
│ │ 不代替你写 │ │ 创意归你 │ │ 信誉说话 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ 📈 平台数据(实时) │
│ 注册作者: XXX | 今日新作: XXX | AI使用透明度: 100% │
│ │
├─────────────────────────────────────────────────────────┤
│ © 2026 光湖纪元 · 国作登字-2026-A-00037559 │
└─────────────────────────────────────────────────────────┘
```
### 3.3 技术实现要点
- 响应式设计(移动端优先)
- AI伙伴头像使用 CSS 动画实现呼吸效果(发光 + 微浮动)
- 欢迎语:打字机效果逐字显示
- 角色选择按钮:点击后跳转到注册页,自动填入角色
- 底部平台数据:从 Notion API 读取真实数据(通过后端代理)
- 路由:`guanghulab.com/writing/` 为入口
---
## 四、Phase 1 · 用户注册/登录系统
### 4.1 注册流程
```
用户点击 [注册]
选择角色:[作者] / [编辑] / [运营]
填写信息:
- 手机号(必填)
- 短信验证码(必填)
- 笔名/昵称(必填)
- 真实姓名(选填,编辑/运营必填)
验证通过 → 创建账号 → 分配专属AI伙伴
跳转到主界面Dashboard
```
### 4.2 登录流程
```
用户点击 [登录]
输入手机号 + 短信验证码
验证通过 → 返回 JWT Token
跳转到主界面Dashboard
```
### 4.3 API 设计
```jsx
// 发送验证码
POST /api/writing/auth/send-code
Body: { phone: "13800138000" }
Response: { success: true, message: "验证码已发送" }
// 注册
POST /api/writing/auth/register
Body: {
phone: "13800138000",
code: "123456",
nickname: "小红",
realName: "张小红", // 选填
role: "author" // author / editor / operator
}
Response: {
success: true,
token: "eyJhbGciOiJI...",
user: {
id: "user_001",
nickname: "小红",
role: "author",
aiCompanion: {
name: "笔灵",
avatar: "/assets/ai-companion-author.png"
}
}
}
// 登录
POST /api/writing/auth/login
Body: { phone: "13800138000", code: "123456" }
Response: { success: true, token: "...", user: {...} }
// 获取当前用户
GET /api/writing/user/me
Headers: { Authorization: "Bearer <token>" }
Response: { user: {...} }
```
### 4.4 数据存储Notion 数据库)
在 Notion 中新建 **「AI写网文·用户表」** 数据库:
| **字段名** | **类型** | **说明** |
| --- | --- | --- |
| 用户ID | title | 唯一标识(系统生成) |
| 手机号 | text | 登录凭证(加密存储) |
| 笔名 | text | 用户昵称 |
| 真实姓名 | text | 可选 |
| 角色 | select | author / editor / operator |
| AI伙伴名称 | text | 系统分配的AI伙伴名字 |
| 信誉分 | number | 初始 60 分 |
| 注册时间 | date | 注册时间 |
| 最后登录 | date | 最后登录时间 |
| 状态 | select | active / suspended / deleted |
### 4.5 AI伙伴分配规则
| **角色** | **AI伙伴名** | **人设** | **System Prompt 核心** |
| --- | --- | --- | --- |
| 作者 | 笔灵 | 温暖的创作伙伴,擅长灵感激发、扩写、节奏把控 | 你是作者的AI创作伙伴名叫笔灵。帮助作者提高效率、激发灵感。 |
| 编辑 | 慧眼 | 专业的审稿助手,擅长筛选、评估、数据分析 | 你是编辑的AI审稿助手名叫慧眼。帮助编辑高效筛选和评估稿件。 |
| 运营 | 星图 | 敏锐的数据分析师,擅长趋势洞察、策略建议 | 你是运营的AI数据助手名叫星图。帮助运营洞察数据趋势、制定策略。 |
---
## 五、Phase 2 · AI伙伴对话框
### 5.1 界面设计
登录后进入 Dashboard核心界面如下
```
┌─────────────────────────────────────────────────────────┐
│ 🌟 光湖码字 小红(作者) [设置] [退出] │
├─────────────────────────────────────────────────────────┤
│ │
│ 🤖 笔灵 │
│ (呼吸发光动画) │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 笔灵早上好小红你已经连续写作3天了 │ │
│ │ 今天想继续写《霸总的小娇妻》吗? │ │
│ │ │ │
│ │ 小红是的帮我打开第8章 │ │
│ │ │ │
│ │ 笔灵好的第8章已打开上次写到2567字。 │ │
│ │ 今天的目标是写完3000字吗 │ │
│ │ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────┐ [发送] │
│ │ 和笔灵说点什么... │ │
│ └─────────────────────────────────────────┘ │
│ │
│ ───────────────────────────────────────────── │
│ 快捷操作: │
│ [📝 开始写作] [📊 查看数据] [📢 看定制书需求] [💬 讨论区]│
│ │
└─────────────────────────────────────────────────────────┘
```
### 5.2 WebSocket 对话系统
**前端([Socket.io](http://Socket.io) Client**
```tsx
// hooks/useSocket.ts
import { io, Socket } from 'socket.io-client';
import { useEffect, useState } from 'react';
export function useSocket(token: string) {
const [socket, setSocket] = useState<Socket | null>(null);
const [messages, setMessages] = useState<Message[]>([]);
useEffect(() => {
const newSocket = io('/writing-ai', {
auth: { token },
transports: ['websocket']
});
newSocket.on('ai_response', (data: { message: string; suggestions?: string[] }) => {
setMessages(prev => [...prev, {
role: 'assistant',
content: data.message,
timestamp: Date.now()
}]);
});
setSocket(newSocket);
return () => { newSocket.close(); };
}, [token]);
const sendMessage = (message: string) => {
if (!socket) return;
setMessages(prev => [...prev, {
role: 'user',
content: message,
timestamp: Date.now()
}]);
socket.emit('user_message', { message });
};
return { messages, sendMessage };
}
```
**后端([Socket.io](http://Socket.io) Server + AI 代理)**
```tsx
// services/socketService.ts
import { Server } from 'socket.io';
import { verifyToken } from '../middleware/authMiddleware';
import { callAI } from './aiService';
import { saveConversation } from './notionService';
export function setupSocketService(httpServer: any) {
const io = new Server(httpServer, {
path: '/writing-ai',
cors: { origin: process.env.FRONTEND_URL }
});
// JWT 鉴权
io.use((socket, next) => {
const token = socket.handshake.auth.token;
try {
const user = verifyToken(token);
socket.data.user = user;
next();
} catch (err) {
next(new Error('认证失败'));
}
});
io.on('connection', (socket) => {
const user = socket.data.user;
console.log(`[AI伙伴] ${user.aiCompanion.name} 已连接 · 用户: ${user.nickname}`);
// 发送欢迎消息
socket.emit('ai_response', {
message: getWelcomeMessage(user)
});
socket.on('user_message', async (data: { message: string }) => {
try {
// 1. 构建 system prompt注入角色 + AI伙伴人设
const systemPrompt = buildSystemPrompt(user);
// 2. 调用 AI
const aiResponse = await callAI({
systemPrompt,
userMessage: data.message,
userId: user.id
});
// 3. 保存对话到 Notion
await saveConversation({
userId: user.id,
userMessage: data.message,
aiResponse: aiResponse,
timestamp: new Date().toISOString()
});
// 4. 返回 AI 响应
socket.emit('ai_response', {
message: aiResponse
});
} catch (error) {
socket.emit('ai_response', {
message: '抱歉,我遇到了一些问题,请稍后再试。'
});
}
});
});
}
function getWelcomeMessage(user: any): string {
const name = user.aiCompanion.name;
const nick = user.nickname;
const role = user.role;
if (role === 'author') {
return `早上好,${nick}!我是${name}你的AI创作伙伴。\n\n今天想做什么写作、看数据、还是找合作机会`;
} else if (role === 'editor') {
return `早上好,${nick}!我是${name}你的AI审稿助手。\n\n今天有新投稿等你审核要看看吗`;
} else {
return `早上好,${nick}!我是${name}你的AI数据助手。\n\n今天的数据已更新要看看趋势分析吗`;
}
}
function buildSystemPrompt(user: any): string {
const companionPrompts: Record<string, string> = {
author: `你是用户的AI创作伙伴名字叫「笔灵」。
用户信息:昵称=${user.nickname},角色=作者。
你的职责:
1. 帮助用户创作(提供灵感、扩写、优化文笔)
2. 管理写作项目(打开文档、查看进度)
3. 提醒和建议(写作时间、字数目标、市场趋势)
4. 记住用户的写作风格和习惯
语气:温暖、鼓励、专业。像一个懂你的创作搭档。`,
editor: `你是用户的AI审稿助手名字叫「慧眼」。
用户信息:昵称=${user.nickname},角色=编辑。
你的职责:
1. 帮助筛选和评估投稿
2. 分析AI使用报告
3. 提供审稿建议
4. 管理审核工作流
语气:专业、精准、高效。`,
operator: `你是用户的AI数据助手名字叫「星图」。
用户信息:昵称=${user.nickname},角色=运营。
你的职责:
1. 分析平台数据趋势
2. 提供运营策略建议
3. 管理跨平台合作
4. 生成数据报告
语气:敏锐、有洞察力、数据驱动。`
};
return companionPrompts[user.role] || companionPrompts.author;
}
```
### 5.3 AI 模型调用封装
```tsx
// services/aiService.ts
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.LLM_API_KEY,
baseURL: process.env.LLM_BASE_URL // 使用仓库已配置的 LLM 端点
});
// 每个用户的对话历史缓存Redis
const conversationCache = new Map<string, any[]>();
export async function callAI(params: {
systemPrompt: string;
userMessage: string;
userId: string;
}): Promise<string> {
const { systemPrompt, userMessage, userId } = params;
// 获取最近 10 轮对话历史
const history = conversationCache.get(userId) || [];
const messages = [
{ role: 'system' as const, content: systemPrompt },
...history.slice(-20), // 最近10轮 = 20条消息
{ role: 'user' as const, content: userMessage }
];
const completion = await openai.chat.completions.create({
model: 'gpt-4',
messages,
temperature: 0.7,
max_tokens: 800
});
const aiResponse = completion.choices[0].message.content || '...';
// 更新对话缓存
const updatedHistory = [
...history,
{ role: 'user', content: userMessage },
{ role: 'assistant', content: aiResponse }
].slice(-20); // 保留最近10轮
conversationCache.set(userId, updatedHistory);
return aiResponse;
}
```
---
## 六、Nginx 路由配置
在现有 Nginx 配置中增加 `writing-platform` 路由:
```
# /etc/nginx/conf.d/hololake.conf 新增
# AI写网文平台前端
location /writing/ {
alias /var/www/guanghulab/writing-platform/frontend/dist/;
try_files $uri $uri/ /writing/index.html;
}
# AI写网文平台后端 API
location /api/writing/ {
proxy_pass http://127.0.0.1:3100/api/writing/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# WebSocketAI伙伴对话
location /writing-ai/ {
proxy_pass http://127.0.0.1:3100/writing-ai/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
```
后端服务端口:**3100**(写网文平台独立端口,不与现有服务冲突)
---
## 七、部署流程
### 7.1 预览站(先部署验证)
```bash
# 1. 构建前端
cd writing-platform/frontend
npm install
npm run build
# 2. 构建后端
cd ../backend
npm install
npm run build
# 3. 部署到 GitHub Pages 预览
# 前端 dist 目录推到 docs/writing/ 下
```
### 7.2 正式站
```bash
# CD 自动部署deploy-to-server.yml 扩展)
# 1. SSH 到服务器
# 2. git pull
# 3. cd writing-platform/frontend && npm install && npm run build
# 4. cd ../backend && npm install && npm run build
# 5. pm2 restart writing-platform-backend (或新启动)
# 6. nginx -s reload
```
---
## 八、环境变量
以下环境变量需要在服务器和 GitHub Secrets 中配置:
| **变量名** | **用途** | **来源** |
| --- | --- | --- |
| `LLM_API_KEY` | AI 模型 API Key | ✅ 已有 |
| `LLM_BASE_URL` | AI 模型端点 | ✅ 已有 |
| `NOTION_TOKEN` | Notion API Token | ✅ 已有 |
| `JWT_SECRET` | JWT 签名密钥 | ⭕ 需新增(铸渊自动生成随机字符串) |
| `SMS_ACCESS_KEY` | 阿里云短信 Key | ⏳ 需冰朔配置 |
| `SMS_ACCESS_SECRET` | 阿里云短信 Secret | ⏳ 需冰朔配置 |
| `WRITING_DB_ID` | Notion 用户表 Database ID | ⭕ 铸渊创建后填入 |
| `REDIS_URL` | Redis 连接地址 | ⭕ 需配置(可先用内存缓存降级) |
---
## 九、人类侧操作(冰朔待办)
<aside>
👤
以下操作需要人类手动完成,铸渊无法代执行:
1. **配置阿里云短信服务** — 开通短信 API + 配置签名和模板 + 填入 `SMS_ACCESS_KEY` / `SMS_ACCESS_SECRET`
2. **确认 AI 模型用量预算** — AI伙伴对话会消耗 API 额度,确认月预算
3. **预览站测试验收** — 铸渊部署后,人类在预览站测试登录和对话功能
4. **正式上线授权** — 预览站验收通过后,通知铸渊执行正式站部署
**临时方案(短信服务未就绪时)**
先用固定验证码 `888888` 做测试,短信服务就绪后切换到真实验证码。
</aside>
---
## 十、验收标准
| **验收项** | **标准** |
| --- | --- |
| 首页可访问 | `guanghulab.com/writing/` 打开显示完整首页 |
| AI伙伴头像动画 | 中央头像有呼吸发光效果 |
| 欢迎语显示 | 打字机效果逐字显示 |
| 角色选择 | 三个按钮可点击,跳转到注册 |
| 注册功能 | 填写信息 → 创建账号 → 分配AI伙伴 → 跳转Dashboard |
| 登录功能 | 手机号+验证码 → JWT Token → 跳转Dashboard |
| AI伙伴对话 | 登录后可与AI伙伴实时对话响应流畅 |
| 角色区分 | 不同角色登录后AI伙伴名称和行为不同 |
| 移动端适配 | 手机浏览器正常显示和操作 |
| 数据持久化 | 用户数据写入 Notion 数据库,对话记录可追溯 |
---
## 十一、执行时序
```
Phase 0: 搭建项目骨架 + 前端首页(预计 2h
Phase 1: 后端注册/登录 API + Notion 用户表(预计 2h
Phase 2: AI伙伴对话系统WebSocket + AI调用预计 3h
Phase 3: 前后端联调 + Nginx 路由配置(预计 1h
Phase 4: 部署到预览站 → 测试
→ 人类验收 → 正式站上线
```
---
## 十二、后续扩展预留
本期完成后,后续 Phase 可继续扩展(不在本指令范围内):
- **Phase C**:码字台 · AI辅助写作编辑器 + 全程留痕 + AI使用报告
- **Phase D**:审核系统 · AI初筛 + 人工复审 + 数字签名
- **Phase E**:信誉系统 · 四维动态评分 + 信誉曲线
- **Phase F**:模块市场 · Prompt 打包 + 分润
- **Phase G**:跨平台协作 · 定制书招募 + 自动匹配
---
<aside>
🔏
**签发确认**
霜砚AG-SY-01· Notion 执行 AI 人格体
冰朔TCS-0002∞· 语言架构师 · 创始人
肥猫TCS-GL-07∞ / DEV-002· 系统副控 · 需求发起人
2026-03-25 19:55 CST
**版权**:国作登字-2026-A-00037559
**需求来源**:📘 中国网文行业·光湖纪元语言人格平台|完整说明书
</aside>