feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Phase 3.5 Prompt蝞∠<E89D9E>蝟餌<E89D9F> - 摰峕<E691B0><E5B395>餌<EFBFBD>
|
||||
|
||||
> **完成日期:** 2026-01-11
|
||||
> **摰峕<EFBFBD><EFBFBD>交<EFBFBD>嚗?* 2026-01-11
|
||||
> **摰峕<E691B0>摨佗<E691A8>** 83%嚗㇊hase 3.5.1-3.5.4 撌脣<E6928C><E884A3>琜<EFBFBD>
|
||||
> **銝衤<E98A9D>甇伐<E79487>** Phase 3.5.5 RVW 璅∪<E79285><E288AA><EFBFBD><EFBFBD>
|
||||
|
||||
@@ -8,41 +8,41 @@
|
||||
|
||||
## <20><> 摰峕<E691B0>璁<EFBFBD><E79281>
|
||||
|
||||
| 阶段 | 工作量 | 状态 | 完成日期 |
|
||||
| <EFBFBD>嗆挾 | 撌乩<E6928C><E4B9A9>?| <20>嗆<EFBFBD>?| 摰峕<E691B0><E5B395>交<EFBFBD> |
|
||||
|------|--------|------|---------|
|
||||
| Phase 3.5.1: 基础设施搭建 | 7任务 | ✅ 完成 | 2026-01-11 |
|
||||
| Phase 3.5.2: PromptService 核心 | 5任务 | ✅ 完成 | 2026-01-11 |
|
||||
| Phase 3.5.3: 管理 API | 8接口 | ✅ 完成 | 2026-01-11 |
|
||||
| Phase 3.5.4: 前端管理界面 | 6组件 | ✅ 完成 | 2026-01-11 |
|
||||
| Phase 3.5.5: RVW 模块集成 | 3任务 | ⏳ 待开始 | - |
|
||||
| Phase 3.5.1: <EFBFBD>箇<EFBFBD>霈暹鴌<EFBFBD>剖遣 | 7隞餃𦛚 | <20>?摰峕<E691B0> | 2026-01-11 |
|
||||
| Phase 3.5.2: PromptService <EFBFBD>詨<EFBFBD> | 5隞餃𦛚 | <20>?摰峕<E691B0> | 2026-01-11 |
|
||||
| Phase 3.5.3: 蝞∠<EFBFBD> API | 8<EFBFBD>亙藁 | <20>?摰峕<E691B0> | 2026-01-11 |
|
||||
| Phase 3.5.4: <EFBFBD>滨垢蝞∠<EFBFBD><EFBFBD>屸𢒰 | 6蝏<36>辣 | <20>?摰峕<E691B0> | 2026-01-11 |
|
||||
| Phase 3.5.5: RVW 璅∪<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 3隞餃𦛚 | <20>?敺<><E695BA>憪?| - |
|
||||
|
||||
---
|
||||
|
||||
## <20>㴓 <20>詨<EFBFBD><E8A9A8>鞉<EFBFBD>
|
||||
|
||||
### 1. 数据库层(capability_schema)
|
||||
### 1. <EFBFBD>唳旿摨枏<EFBFBD>嚗Ếapability_schema嚗?
|
||||
|
||||
**新增表**
|
||||
**<EFBFBD>啣<EFBFBD>銵?*
|
||||
```sql
|
||||
-- Prompt 模板表
|
||||
-- Prompt 璅⊥踎銵?
|
||||
capability_schema.prompt_templates
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> id (銝駁睸)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> code (<EFBFBD>臭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗<EFBFBD><EFBFBD> 'RVW_EDITORIAL')
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> name (鈭箇掩<EFBFBD>航粉<EFBFBD>滨妍)
|
||||
├── module (所属模块: RVW, ASL, DC...)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> module (<EFBFBD><EFBFBD>撅墧芋<EFBFBD>? RVW, ASL, DC...)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> variables (<EFBFBD>㗛<EFBFBD><EFBFBD>𡑒”嚗𥇍SON)
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> versions (銝<EFBFBD>撖孵<EFBFBD>)
|
||||
|
||||
-- Prompt 版本表
|
||||
-- Prompt <EFBFBD><EFBFBD>𧋦銵?
|
||||
capability_schema.prompt_versions
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> id (銝駁睸)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> template_id (<EFBFBD>唾<EFBFBD>璅⊥踎)
|
||||
├── version (版本号)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> version (<EFBFBD><EFBFBD>𧋦<EFBFBD>?
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> content (Prompt <EFBFBD><EFBFBD>捆嚗𣊁EXT)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> model_config (璅∪<EFBFBD><EFBFBD>滨蔭嚗𥇍SON)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> status (DRAFT/ACTIVE/ARCHIVED)
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> changelog (<EFBFBD>䀹凒霂湔<EFBFBD>)
|
||||
└── created_by (创建人)
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> created_by (<EFBFBD>𥕦遣鈭?
|
||||
```
|
||||
|
||||
**<EFBFBD>啣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||||
@@ -54,26 +54,26 @@ prompt:publish - 发布Prompt
|
||||
```
|
||||
|
||||
**閫坿𠧧<E59DBF><F0A0A7A7><EFBFBD>**
|
||||
- `SUPER_ADMIN`: 全部权限(view + edit + debug + publish)
|
||||
- `PROMPT_ENGINEER`: 无 publish(view + edit + debug)
|
||||
- `SUPER_ADMIN`: <EFBFBD>券<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗ǒiew + edit + debug + publish嚗?
|
||||
- `PROMPT_ENGINEER`: <EFBFBD>?publish嚗ǒiew + edit + debug嚗?
|
||||
|
||||
**已迁移数据**
|
||||
- ✅ RVW_EDITORIAL(稿约规范性评估,5101字符,v1 ACTIVE)
|
||||
- ✅ RVW_METHODOLOGY(方法学质量评估,4891字符,v1 ACTIVE)
|
||||
**撌脰<EFBFBD>蝘餅㺭<EFBFBD>?*
|
||||
- <EFBFBD>?RVW_EDITORIAL嚗<EFBFBD>阮蝥西<EFBFBD><EFBFBD><EFBFBD><EFBFBD>扯<EFBFBD>隡堆<EFBFBD>5101摮㛖泵嚗綋1 ACTIVE嚗?
|
||||
- <EFBFBD>?RVW_METHODOLOGY嚗<EFBFBD>䲮瘜訫郎韐券<EFBFBD>霂<EFBFBD>摯嚗?891摮㛖泵嚗綋1 ACTIVE嚗?
|
||||
|
||||
---
|
||||
|
||||
### 2. 后端服务层
|
||||
### 2. <EFBFBD>𡒊垢<EFBFBD>滚𦛚撅?
|
||||
|
||||
**<EFBFBD><EFBFBD>辣皜<EFBFBD><EFBFBD>**
|
||||
```
|
||||
backend/src/common/prompt/
|
||||
├── prompt.types.ts (70行) - 类型定义
|
||||
├── prompt.service.ts (596行) - 核心服务 ⭐
|
||||
├── prompt.controller.ts (419行) - API控制器
|
||||
├── prompt.routes.ts (224行) - 路由定义
|
||||
├── prompt.fallbacks.ts (101行) - 兜底Prompt
|
||||
└── index.ts (34行) - 模块导出
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> prompt.types.ts (70銵? - 蝐餃<EFBFBD>摰帋<EFBFBD>
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> prompt.service.ts (596銵? - <EFBFBD>詨<EFBFBD><EFBFBD>滚𦛚 潃?
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> prompt.controller.ts (419銵? - API<EFBFBD>批<EFBFBD><EFBFBD>?
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> prompt.routes.ts (224銵? - 頝舐眏摰帋<EFBFBD>
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> prompt.fallbacks.ts (101銵? - <EFBFBD>𨅯<EFBFBD>Prompt
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> index.ts (34銵? - 璅∪<EFBFBD>撖澆枂
|
||||
```
|
||||
|
||||
**<EFBFBD>詨<EFBFBD><EFBFBD>蠘<EFBFBD>**
|
||||
@@ -81,22 +81,22 @@ backend/src/common/prompt/
|
||||
| <20>蠘<EFBFBD> | <20>寞<EFBFBD> | 霂湔<E99C82> |
|
||||
|------|------|------|
|
||||
| <20>啣漲憸<E6BCB2><E686B8> | `get(code, variables, userId)` | 靚<><E99D9A><EFBFBD><EFBFBD><EFBFBD>DRAFT嚗𣬚鍂<F0A3AC9A>瑞<EFBFBD>ACTIVE |
|
||||
| 模块级调试 | `setDebugMode(userId, modules, enabled)` | 可指定['RVW']或['ALL'] |
|
||||
| 璅∪<EFBFBD>蝥扯<EFBFBD>霂?| `setDebugMode(userId, modules, enabled)` | <EFBFBD>舀<EFBFBD>摰靀'RVW']<EFBFBD>釥'ALL'] |
|
||||
| 璅⊥踎皜脫<E79A9C> | `render(template, variables)` | Handlebars 撘閙<E69298> |
|
||||
| 变量提取 | `extractVariables(content)` | 从 `{{xxx}}` 自动提取 |
|
||||
| 变量校验 | `validateVariables(content, vars)` | 检查缺失/多余变量 |
|
||||
| 三级容灾 | `getActiveVersion() + cache + fallback` | 数据库→缓存→兜底 |
|
||||
| <EFBFBD>㗛<EFBFBD><EFBFBD>𣂼<EFBFBD> | `extractVariables(content)` | 隞?`{{xxx}}` <EFBFBD>芸𢆡<EFBFBD>𣂼<EFBFBD> |
|
||||
| <EFBFBD>㗛<EFBFBD><EFBFBD>⊿<EFBFBD> | `validateVariables(content, vars)` | 璉<EFBFBD><EFBFBD>亦撩憭?憭帋<E686AD><E5B88B>㗛<EFBFBD> |
|
||||
| 銝厩漣摰寧<EFBFBD> | `getActiveVersion() + cache + fallback` | <EFBFBD>唳旿摨𣏾<EFBFBD>蝻枏<EFBFBD><EFBFBD>鍦<EFBFBD>摨?|
|
||||
|
||||
**API <20>亙藁**
|
||||
|
||||
| 蝡舐<E89DA1> | <20>寞<EFBFBD> | <20>蠘<EFBFBD> |
|
||||
|------|------|------|
|
||||
| `/api/admin/prompts` | GET | 列表(支持 ?module=RVW 筛选)|
|
||||
| `/api/admin/prompts` | GET | <EFBFBD>𡑒”嚗<EFBFBD>𣈲<EFBFBD>??module=RVW 蝑偦<EFBFBD>㚁<EFBFBD>|
|
||||
| `/api/admin/prompts/:code` | GET | 霂行<E99C82>+<2B><>𧋦<EFBFBD><F0A78BA6>蟮 |
|
||||
| `/api/admin/prompts/:code/draft` | POST | 靽嘥<E99DBD><E598A5>厩阮 |
|
||||
| `/api/admin/prompts/:code/publish` | POST | <20>穃<EFBFBD>嚗<EFBFBD><E59A97> prompt:publish嚗车
|
||||
| `/api/admin/prompts/:code/rollback` | POST | 回滚到指定版本 |
|
||||
| `/api/admin/prompts/debug` | GET | 获取调试状态 |
|
||||
| `/api/admin/prompts/:code/rollback` | POST | <EFBFBD>墧<EFBFBD><EFBFBD>唳<EFBFBD>摰𡁶<EFBFBD><EFBFBD>?|
|
||||
| `/api/admin/prompts/debug` | GET | <EFBFBD>瑕<EFBFBD>靚<EFBFBD><EFBFBD><EFBFBD>嗆<EFBFBD>?|
|
||||
| `/api/admin/prompts/debug` | POST | 霈曄蔭靚<E894AD><E99D9A>璅∪<E79285> |
|
||||
| `/api/admin/prompts/test-render` | POST | 瘚贝<E7989A>皜脫<E79A9C> |
|
||||
|
||||
@@ -108,52 +108,52 @@ backend/src/common/prompt/
|
||||
```
|
||||
frontend-v2/src/
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> framework/layout/
|
||||
│ ├── AdminLayout.tsx (237行) ✅ 运营管理端布局(浅色主题)
|
||||
│ ├── OrgLayout.tsx (260行) ✅ 机构管理端布局(浅色主题)
|
||||
│ └── TopNavigation.tsx (171行) ✅ 更新(添加切换入口)
|
||||
│
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> AdminLayout.tsx (237銵? <20>?餈鞱𨯫蝞∠<E89D9E>蝡臬<E89DA1>撅<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>脖蜓憸矋<E686B8>
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> OrgLayout.tsx (260銵? <20>?<3F>箸<EFBFBD>蝞∠<E89D9E>蝡臬<E89DA1>撅<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>脖蜓憸矋<E686B8>
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> TopNavigation.tsx (171銵? <20>?<3F>湔鰵嚗<E9B0B5>溶<EFBFBD>惩<EFBFBD><E683A9>W<EFBFBD><EFBCB7><EFBFBD><EFBFBD>
|
||||
<EFBFBD>?
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> pages/
|
||||
<20>鎿<EFBFBD><E98EBF><EFBFBD> admin/
|
||||
│ ├── AdminDashboard.tsx (147行) ✅ 运营概览
|
||||
│ ├── PromptListPage.tsx (254行) ✅ Prompt列表
|
||||
│ ├── PromptEditorPage.tsx (399行) ✅ Prompt编辑器
|
||||
│ ├── components/
|
||||
│ │ └── PromptEditor.tsx (245行) ✅ CodeMirror 6
|
||||
│ └── api/
|
||||
│ └── promptApi.ts (172行) ✅ API调用
|
||||
│
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> AdminDashboard.tsx (147銵? <20>?餈鞱𨯫璁<F0A8AFAB><E79281>
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> PromptListPage.tsx (254銵? <20>?Prompt<EFBFBD>𡑒”
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> PromptEditorPage.tsx (399銵? <20>?Prompt蝻𤥁<EFBFBD><EFBFBD>?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> components/
|
||||
<EFBFBD>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> PromptEditor.tsx (245銵? <20>?CodeMirror 6
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> api/
|
||||
<EFBFBD>? <EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> promptApi.ts (172銵? <20>?API靚<49>鍂
|
||||
<EFBFBD>?
|
||||
<20>婙<EFBFBD><E5A999><EFBFBD> org/
|
||||
└── OrgDashboard.tsx (164行) ✅ 机构概览
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD> OrgDashboard.tsx (164銵? <20>?<3F>箸<EFBFBD>璁<EFBFBD><E79281>
|
||||
```
|
||||
|
||||
**頝舐眏蝟餌<E89D9F>**
|
||||
```
|
||||
/ → 业务应用端(MainLayout,蓝色主题)
|
||||
/admin/* → 运营管理端(AdminLayout,翠绿主题 #10b981)
|
||||
/org/* → 机构管理端(OrgLayout,深蓝主题 #003a8c)
|
||||
/ <EFBFBD>?銝𡁜𦛚摨𠉛鍂蝡荔<E89DA1>MainLayout嚗諹<EFBFBD><EFBFBD>脖蜓憸矋<EFBFBD>
|
||||
/admin/* <EFBFBD>?餈鞱𨯫蝞∠<E89D9E>蝡荔<E89DA1>AdminLayout嚗𣬚<EFBFBD>蝏蹂蜓憸?#10b981嚗?
|
||||
/org/* <EFBFBD>?<3F>箸<EFBFBD>蝞∠<E89D9E>蝡荔<E89DA1>OrgLayout嚗峕楛<EFBFBD>苷蜓憸?#003a8c嚗?
|
||||
```
|
||||
|
||||
**CodeMirror 6 简化配置**
|
||||
- ✅ 行号 + 自动换行
|
||||
- ✅ 变量高亮(`{{xxx}}` 淡蓝背景)
|
||||
- ✅ 撤销/重做(Ctrl+Z/Y)
|
||||
- ✅ 搜索(Ctrl+F)
|
||||
- ✅ 字符计数 + 变量统计
|
||||
- ✅ 中文友好字体(15px,行高1.8)
|
||||
- ✅ 保存快捷键(Ctrl+S)
|
||||
**CodeMirror 6 蝞<EFBFBD><EFBFBD>㚚<EFBFBD>蝵?*
|
||||
- <EFBFBD>?銵<>噡 + <20>芸𢆡<E88AB8>Z<EFBFBD>
|
||||
- <EFBFBD>?<3F>㗛<EFBFBD>擃䀝漁嚗Ǒ{{xxx}}` 瘛∟<E7989B><E2889F>峕艶嚗?
|
||||
- <EFBFBD>?<3F>日<EFBFBD>/<2F>滚<EFBFBD>嚗㇃trl+Z/Y嚗?
|
||||
- <EFBFBD>?<3F>𦦵揣嚗㇃trl+F嚗?
|
||||
- <EFBFBD>?摮㛖泵霈⊥㺭 + <20>㗛<EFBFBD>蝏蠘恣
|
||||
- <EFBFBD>?銝剜<E98A9D><E5899C>见末摮𦯀<E691AE>嚗?5px嚗諹<E59A97>擃?.8嚗?
|
||||
- <EFBFBD>?靽嘥<E99DBD>敹急㭘<E680A5>殷<EFBFBD>Ctrl+S嚗?
|
||||
|
||||
**<EFBFBD><EFBFBD><EFBFBD>UI雿梶緵**
|
||||
- PROMPT_ENGINEER 看到"发布"按钮是禁用状态 + 提示"需要SUPER_ADMIN权限"
|
||||
- PROMPT_ENGINEER <EFBFBD>见<EFBFBD>"<22>穃<EFBFBD>"<22>厰僼<E58EB0>舐<EFBFBD><E88890>函𠶖<E587BD>?+ <20>鞟內"<22><>閬<EFBFBD>UPER_ADMIN<EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
---
|
||||
|
||||
## 🔑 关键设计点
|
||||
## <EFBFBD><EFBFBD> <20>喲睸霈曇恣<E69B87>?
|
||||
|
||||
### 1. <20>㗛<EFBFBD><E3979B>⊿<EFBFBD><E28ABF>箏<EFBFBD>嚗<EFBFBD>鰵憓痹<E68693>
|
||||
|
||||
**<EFBFBD>𡒊垢<EFBFBD>芸𢆡<EFBFBD>𣂼<EFBFBD>**
|
||||
```typescript
|
||||
// 保存草稿时自动提取变量
|
||||
// 靽嘥<EFBFBD><EFBFBD>厩阮<EFBFBD>嗉䌊<EFBFBD>冽<EFBFBD><EFBFBD>硋<EFBFBD><EFBFBD>?
|
||||
const variables = extractVariables(content); // ['title', 'author']
|
||||
await prisma.prompt_templates.update({
|
||||
where: { code },
|
||||
@@ -163,71 +163,71 @@ await prisma.prompt_templates.update({
|
||||
|
||||
**<EFBFBD>滨垢<EFBFBD>芸𢆡<EFBFBD><EFBFBD><EFBFBD>銵典<EFBFBD>**
|
||||
```tsx
|
||||
// 根据 variables 生成测试输入框
|
||||
// <EFBFBD>寞旿 variables <EFBFBD><EFBFBD><EFBFBD>瘚贝<EFBFBD>颲枏<EFBFBD>獢?
|
||||
{variables.map(varName => (
|
||||
<Input label={varName} placeholder={`颲枏<EFBFBD> ${varName} <20><><EFBFBD>嬋} />
|
||||
))}
|
||||
```
|
||||
|
||||
### 2. 灰度预览工作流
|
||||
### 2. <EFBFBD>啣漲憸<EFBFBD><EFBFBD>撌乩<EFBFBD>瘚?
|
||||
|
||||
```
|
||||
Prompt工程师:
|
||||
① 编辑 RVW_EDITORIAL,保存草稿(DRAFT)
|
||||
② 开启调试模式:选择 RVW 模块
|
||||
③ 切换到业务端 /rvw,使用真实数据测试
|
||||
→ 系统自动加载 DRAFT 版本
|
||||
→ 普通用户仍使用 ACTIVE 版本
|
||||
④ 测试通过,关闭调试模式
|
||||
⑤ 提交发布请求
|
||||
Prompt撌亦<EFBFBD>撣?
|
||||
<EFBFBD>?蝻𤥁<E89DBB> RVW_EDITORIAL嚗䔶<EFBFBD>摮䁅<EFBFBD>蝔選<EFBFBD>DRAFT嚗?
|
||||
<EFBFBD>?撘<><E69298>航<EFBFBD>霂閙芋撘𧶏<E69298><F0A7B68F>㗇𥋘 RVW 璅∪<EFBFBD>
|
||||
<EFBFBD>?<3F><>揢<EFBFBD>唬<EFBFBD><E594AC>∠垢 /rvw嚗䔶蝙<E494B6>函<EFBFBD>摰墧㺭<E5A2A7>格<EFBFBD>霂?
|
||||
<EFBFBD>?蝟餌<E89D9F><E9A48C>芸𢆡<E88AB8>㰘蝸 DRAFT <EFBFBD><EFBFBD>𧋦
|
||||
<EFBFBD>?<3F>桅<EFBFBD>𡁶鍂<F0A181B6>瑚<EFBFBD>雿輻鍂 ACTIVE <EFBFBD><EFBFBD>𧋦
|
||||
<EFBFBD>?瘚贝<E7989A><E8B49D>朞<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>剛<EFBFBD>霂閙芋撘?
|
||||
<EFBFBD>?<3F>𣂷漱<F0A382B7>穃<EFBFBD>霂瑟<E99C82>
|
||||
|
||||
SUPER_ADMIN:
|
||||
⑥ 审核并点击"发布"(DRAFT → ACTIVE)
|
||||
⑦ 新版本生效,所有用户使用新 Prompt
|
||||
<EFBFBD>?摰⊥瓲撟嗥<E6929F><E597A5>?<3F>穃<EFBFBD>"嚗㇄RAFT <EFBFBD>?ACTIVE嚗?
|
||||
<EFBFBD>?<3F>啁<EFBFBD><E59581>祉<EFBFBD><E7A589><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>厩鍂<E58EA9>瑚蝙<E7919A>冽鰵 Prompt
|
||||
```
|
||||
|
||||
### 3. 銝厩漣摰寧<E691B0><E5AFA7>箏<EFBFBD>
|
||||
|
||||
```
|
||||
Level 1: 数据库(正常)
|
||||
└─> 从 capability_schema.prompt_versions 获取
|
||||
Level 1: <EFBFBD>唳旿摨橒<EFBFBD>甇<EFBFBD>虜嚗?
|
||||
<EFBFBD>婙<EFBFBD>> 隞?capability_schema.prompt_versions <EFBFBD>瑕<EFBFBD>
|
||||
|
||||
Level 2: <20><><EFBFBD>蝻枏<E89DBB>嚗<EFBFBD>㺭<EFBFBD>桀<EFBFBD>銝滚虾<E6BB9A>剁<EFBFBD>
|
||||
└─> 从 PromptService.cache 获取
|
||||
<EFBFBD>婙<EFBFBD>> 隞?PromptService.cache <EFBFBD>瑕<EFBFBD>
|
||||
|
||||
Level 3: 兜底Prompt(缓存也失效)
|
||||
└─> 从 prompt.fallbacks.ts 硬编码获取
|
||||
Level 3: <EFBFBD>𨅯<EFBFBD>Prompt嚗<EFBFBD><EFBFBD>摮䀝<EFBFBD>憭望<EFBFBD>嚗?
|
||||
<EFBFBD>婙<EFBFBD>> 隞?prompt.fallbacks.ts 蝖祉<EFBFBD><EFBFBD><EFBFBD>繮<EFBFBD>?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <20>𣑐 隞<><E99A9E>蝏蠘恣
|
||||
|
||||
| 类别 | 文件数 | 代码行数 |
|
||||
| 蝐餃<EFBFBD> | <20><>辣<EFBFBD>?| 隞<><E99A9E>銵峕㺭 |
|
||||
|------|--------|---------|
|
||||
| 后端服务 | 6 | ~2,044行 |
|
||||
| 前端界面 | 9 | ~1,735行 |
|
||||
| 脚本工具 | 4 | ~473行 |
|
||||
| **合计** | **19** | **~4,252行** |
|
||||
| <EFBFBD>𡒊垢<EFBFBD>滚𦛚 | 6 | ~2,044銵?|
|
||||
| <EFBFBD>滨垢<EFBFBD>屸𢒰 | 9 | ~1,735銵?|
|
||||
| <EFBFBD>𡁏𧋦撌亙<EFBFBD> | 4 | ~473銵?|
|
||||
| **<EFBFBD><EFBFBD>恣** | **19** | **~4,252銵?* |
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试状态
|
||||
## <EFBFBD>妒 瘚贝<E7989A><E8B49D>嗆<EFBFBD>?
|
||||
|
||||
### ✅ 已测试
|
||||
### <EFBFBD>?撌脫<E6928C>霂?
|
||||
|
||||
**<EFBFBD>𡒊垢<EFBFBD>訫<EFBFBD>瘚贝<EFBFBD>**
|
||||
- ✅ `test-prompt-service.ts` - PromptService 核心功能测试(7项全通过)
|
||||
- ✅ `test-prompt-api.ts` - API 接口测试(5项全通过)
|
||||
- <EFBFBD>?`test-prompt-service.ts` - PromptService <EFBFBD>詨<EFBFBD><EFBFBD>蠘<EFBFBD>瘚贝<EFBFBD>嚗?憿孵<E686BF><E5ADB5>朞<EFBFBD>嚗?
|
||||
- <EFBFBD>?`test-prompt-api.ts` - API <EFBFBD>亙藁瘚贝<EFBFBD>嚗?憿孵<E686BF><E5ADB5>朞<EFBFBD>嚗?
|
||||
|
||||
**<EFBFBD>滨垢<EFBFBD>蠘<EFBFBD>瘚贝<EFBFBD>**
|
||||
- ⏳ 待用户手动测试
|
||||
- <EFBFBD>?敺<>鍂<EFBFBD>瑟<EFBFBD><E7919F>冽<EFBFBD>霂?
|
||||
|
||||
### ⏳ 待测试(Phase 3.5.5)
|
||||
### <EFBFBD>?敺<><E695BA>霂𤏪<E99C82>Phase 3.5.5嚗?
|
||||
|
||||
- [ ] RVW 璅∪<E79285><E288AA><EFBFBD><EFBFBD>瘚贝<E7989A>
|
||||
- [ ] 端到端灰度预览测试
|
||||
- [ ] 多用户并发调试测试
|
||||
- [ ] 蝡臬<EFBFBD>蝡舐<EFBFBD>摨阡<EFBFBD>閫<EFBFBD><EFBFBD>霂?
|
||||
- [ ] 憭𡁶鍂<EFBFBD>瑕僎<EFBFBD>𤏸<EFBFBD>霂閙<EFBFBD>霂?
|
||||
|
||||
---
|
||||
|
||||
@@ -235,25 +235,25 @@ Level 3: 兜底Prompt(缓存也失效)
|
||||
|
||||
### 隞餃𦛚皜<F0A69B9A><E79A9C>
|
||||
|
||||
1. **改造 RVW 服务**
|
||||
- 修改 `editorialService.ts`:使用 `promptService.get('RVW_EDITORIAL')`
|
||||
- 修改 `methodologyService.ts`:使用 `promptService.get('RVW_METHODOLOGY')`
|
||||
1. **<EFBFBD>寥<EFBFBD>?RVW <20>滚𦛚**
|
||||
- 靽格㺿 `editorialService.ts`嚗帋蝙<EFBFBD>?`promptService.get('RVW_EDITORIAL')`
|
||||
- 靽格㺿 `methodologyService.ts`嚗帋蝙<EFBFBD>?`promptService.get('RVW_METHODOLOGY')`
|
||||
- <20>𣳇膄<F0A3B387><E88684>辣霂餃<E99C82><E9A483>餉<EFBFBD>
|
||||
|
||||
2. **端到端测试**
|
||||
- Prompt 工程师编辑 → 保存草稿
|
||||
- 开启调试 → 切换到 RVW → 测试真实数据
|
||||
- 关闭调试 → 发布 → 验证生效
|
||||
2. **蝡臬<EFBFBD>蝡舀<EFBFBD>霂?*
|
||||
- Prompt 撌亦<EFBFBD>撣<EFBFBD><EFBFBD>颲?<3F>?靽嘥<E99DBD><E598A5>厩阮
|
||||
- 撘<EFBFBD><EFBFBD>航<EFBFBD>霂?<3F>?<3F><>揢<EFBFBD>?RVW <20>?瘚贝<E7989A><E8B49D>笔<EFBFBD><E7AC94>唳旿
|
||||
- <EFBFBD>喲𡡒靚<EFBFBD><EFBFBD> <20>?<3F>穃<EFBFBD> <20>?撉諹<E69289><E8ABB9><EFBFBD><EFBFBD>
|
||||
|
||||
3. **<EFBFBD><EFBFBD>﹝<EFBFBD>湔鰵**
|
||||
- 更新 RVW 模块开发指南
|
||||
- <EFBFBD>湔鰵 RVW 璅∪<EFBFBD>撘<EFBFBD><EFBFBD>烐<EFBFBD><EFBFBD>?
|
||||
- 瘛餃<E7989B> Prompt 蝞∠<E89D9E>雿輻鍂<E8BCBB>见<EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## <20><> 瘜冽<E7989C>鈭钅★
|
||||
|
||||
### 给新 AI 助手的提示
|
||||
### 蝏蹱鰵 AI <EFBFBD>拇<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝷?
|
||||
|
||||
1. **隞<><E99A9E>雿滨蔭**
|
||||
- <20>𡒊垢嚗䫤backend/src/common/prompt/`
|
||||
@@ -261,12 +261,12 @@ Level 3: 兜底Prompt(缓存也失效)
|
||||
- <20>𡁏𧋦嚗䫤backend/scripts/`
|
||||
|
||||
2. **<EFBFBD>喲睸<EFBFBD><EFBFBD>辣**
|
||||
- `prompt.service.ts`:核心逻辑,596行,灰度预览的核心
|
||||
- `PromptEditorPage.tsx`:前端编辑器,399行,完整功能
|
||||
- `prompt.service.ts`嚗𡁏瓲敹<EFBFBD><EFBFBD>餉<EFBFBD>嚗?96銵䕘<E98AB5><E49598>啣漲憸<E6BCB2><E686B8><EFBFBD><EFBFBD>瓲敹?
|
||||
- `PromptEditorPage.tsx`嚗𡁜<EFBFBD>蝡舐<EFBFBD>颲穃膥嚗?99銵䕘<E98AB5>摰峕㟲<E5B395>蠘<EFBFBD>
|
||||
|
||||
3. **已安装依赖**
|
||||
3. **撌脣<EFBFBD>鋆<EFBFBD><EFBFBD>韏?*
|
||||
- <20>𡒊垢嚗䫤handlebars@^4.7.8`嚗<>歇<EFBFBD>㚁<EFBFBD>
|
||||
- 前端:`codemirror@^6.x` + `@codemirror/*`(2026-01-11 已安装)
|
||||
- <EFBFBD>滨垢嚗䫤codemirror@^6.x` + `@codemirror/*`嚗?026-01-11 撌脣<EFBFBD>鋆<EFBFBD><EFBFBD>
|
||||
|
||||
4. **瘚贝<E7989A>韐血噡**
|
||||
- SUPER_ADMIN: `13800000001` / `123456`
|
||||
@@ -274,23 +274,24 @@ Level 3: 兜底Prompt(缓存也失效)
|
||||
|
||||
5. **API 頝舐眏**
|
||||
- 撌脫釣<E884AB>䕘<EFBFBD>`/api/admin/prompts`
|
||||
- 已测试:8个接口全部正常
|
||||
- 撌脫<EFBFBD>霂𤏪<EFBFBD>8銝芣𦻖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>冽迤撣?
|
||||
|
||||
---
|
||||
|
||||
## 🎉 里程碑
|
||||
## <EFBFBD><EFBFBD> <20>𣬚<EFBFBD>蝣?
|
||||
|
||||
**这是 AI临床研究平台的重要里程碑:**
|
||||
**餈蹱糓 AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱<E596B3><E89DB1><EFBFBD>閬<EFBFBD><E996AC>蝔讠<E89D94>嚗?*
|
||||
|
||||
1. ✅ **首个生产环境灰度预览系统** - 允许专业人员安全调试 Prompt
|
||||
2. ✅ **Prompt 与代码分离** - 临床专家可独立调整,无需开发人员
|
||||
3. ✅ **三端架构初步形成** - 业务端 + 机构管理端 + 运营管理端
|
||||
4. ✅ **权限体系完善** - 6个角色 + 细粒度权限控制
|
||||
1. <EFBFBD>?**擐碶葵<E7A2B6>煺漣<E785BA>臬<EFBFBD><E887AC>啣漲憸<E6BCB2><E686B8>蝟餌<E89D9F>** - <EFBFBD><EFBFBD>捂銝㮖<EFBFBD>鈭箏<EFBFBD>摰匧<EFBFBD>靚<EFBFBD><EFBFBD> Prompt
|
||||
2. <EFBFBD>?**Prompt 銝𦒘誨<EFBFBD><EFBFBD><EFBFBD>蝳?* - 銝游<E98A9D>銝枏振<E69E8F>舐𡠺蝡贝<E89DA1><E8B49D>湛<EFBFBD><E6B99B>𣳇<EFBFBD>撘<EFBFBD><E69298>睲犖<E79DB2>?
|
||||
3. <EFBFBD>?**銝厩垢<E58EA9>嗆<EFBFBD><E59786>脲郊敶X<E695B6>** - 銝𡁜𦛚蝡?+ <20>箸<EFBFBD>蝞∠<E89D9E>蝡?+ 餈鞱𨯫蝞∠<E89D9E>蝡?
|
||||
4. <EFBFBD>?**<2A><><EFBFBD>雿梶頂摰<E9A082><E691B0>** - 6銝芾<EFBFBD><EFBFBD>?+ 蝏<><E89D8F>摨行<E691A8><E8A18C>鞉綉<E99E89>?
|
||||
|
||||
---
|
||||
|
||||
*文档生成:2026-01-11*
|
||||
*下次对话请阅读:`04-开发计划/01-TODO清单(可追踪).md` 了解详细任务*
|
||||
*<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD><EFBFBD>嚗?026-01-11*
|
||||
*銝𧢲活撖寡<EFBFBD>霂琿<EFBFBD>霂鳴<EFBFBD>`04-撘<><E69298>𤏸恣<F0A48FB8>?01-TODO皜<4F><E79A9C>嚗<EFBFBD>虾餈質葵嚗?md` 鈭<>圾霂衣<E99C82>隞餃𦛚*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user