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:
2026-01-14 19:15:01 +08:00
parent 3d35e9c58b
commit 1b53ab9d52
386 changed files with 52096 additions and 65238 deletions

View File

@@ -1,9 +1,9 @@
# PKB - 个人知识库模块:数据库设计
# PKB - <EFBFBD>汉鐭ヨ瘑搴撴ā鍧楋細鏁版嵁搴撹<EFBFBD>璁?
> **版本:** v1.0
> **更新时间:** 2025-11-12
> **数据库Schema** `pkb_schema`
> **状态:** ✅ 已实施并迁移
> **鐗堟湰锛?* v1.0
> **鏇存柊鏃堕棿锛?* 2025-11-12
> **鏁版嵁搴揝chema锛?* `pkb_schema`
> **鐘舵€侊細** 鉁?宸插疄鏂藉苟杩佺Щ
---
@@ -23,25 +23,25 @@
### 鍔熻兘瀹氫綅
**PKBPersonal Knowledge Base- 个人知识库模块**提供文献管理和智能问答能力,核心功能:
**PKB锛圥ersonal Knowledge Base锛? 涓<>汉鐭ヨ瘑搴撴ā鍧?*鎻愪緵鏂囩尞绠$悊鍜屾櫤鑳介棶绛旇兘鍔涳紝鏍稿績鍔熻兘锛?
1. **知识库管理** - 创建和管理个人知识库
2. **文档上传** - 支持PDF/Word/TXT等格式文档
1. **鐭ヨ瘑搴撶<EFBFBD>鐞?* - 鍒涘缓鍜岀<E98D9C>鐞嗕釜浜虹煡璇嗗簱
2. **鏂囨。涓婁紶** - <EFBFBD>PDF/Word/TXT绛夋牸寮忔枃妗?
3. **鏅鸿兘闂<E58598>** - 鍩轰簬鐭ヨ瘑搴撶殑RAG锛堟<E9949B>绱㈠<E7BBB1>寮虹敓鎴愶級瀵硅瘽
4. **批处理任务** - 批量处理文献提取Phase 3
5. **任务模板** - 预定义的批处理任务模板(Phase 3
4. **鎵瑰<EFBFBD>鐞嗕换鍔?* - 鎵归噺澶勭悊鏂囩尞鎻愬彇锛圥hase 3锛?
5. **浠诲姟妯℃澘** - 棰勫畾涔夌殑鎵瑰<EFBFBD>鐞嗕换鍔℃ā鏉匡紙Phase 3锛?
### 鏍稿績涓氬姟鍦烘櫙
- 用户创建知识库(如"CLL相关知识库"
- 鐢ㄦ埛鍒涘缓鐭ヨ瘑搴擄紙濡?CLL鐩稿叧鐭ヨ瘑搴?锛?
- 涓婁紶PDF鏂囩尞鍒扮煡璇嗗簱
-<>姩鎻愬彇鏂囨湰骞跺悜閲忓寲
- 基于知识库进行智能问答
- 批量提取文献中的结构化信息
- 鍩轰簬鐭ヨ瘑搴撹繘琛屾櫤鑳介棶绛?
- 鎵归噺鎻愬彇鏂囩尞涓<EFBFBD>殑缁撴瀯鍖栦俊鎭?
### 涓嶥ify骞冲彴闆嗘垚
PKB模块深度集成Dify平台
PKB妯″潡娣卞害闆嗘垚Dify骞冲彴锛?
- 姣忎釜鐭ヨ瘑搴撳<E690B4>搴斾竴涓狣ify Dataset
- 姣忎釜鏂囨。瀵瑰簲涓€涓狣ify Document
- 浣跨敤Dify鐨勫悜閲忔<E996B2>绱㈠拰RAG鑳藉姏
@@ -62,26 +62,26 @@ GRANT ALL ON SCHEMA pkb_schema TO aiclinical_admin;
```
### 鏁版嵁杩佺Щ
- **迁移时间:** 2025-11-12
- **源Schema** public
- **迁移脚本:** `docs/09-架构实施/migration-scripts/004-migrate-pkb.sql`
- **数据完整性:** 100%迁移成功
- **杩佺Щ鏃堕棿锛?* 2025-11-12
- **婧怱chema锛?* public
- **杩佺Щ鑴氭湰锛?* `docs/09-鏋舵瀯瀹炴柦/migration-scripts/004-migrate-pkb.sql`
- **鏁版嵁瀹屾暣鎬э細** 鉁?100%杩佺Щ鎴愬姛
---
## 鏁版嵁搴撹〃璁捐<E79281>
### 表列表
### 琛ㄥ垪琛?
| 表名 | 用途 | 行数(估计) | 状态 |
| 琛ㄥ悕 | 鐢ㄩ€?| 琛屾暟锛堜及璁★級 | 鐘舵€?|
|------|------|------------|------|
| `knowledge_bases` | 知识库 | 5-50/用户 | ✅ 已部署 |
| `documents` | 文档 | 10-1000/知识库 | ✅ 已部署 |
| `batch_tasks` | 批处理任务 | 1-100/知识库 | ✅ Phase 3 |
| `batch_results` | 批处理结果 | N条/任务 | Phase 3 |
| `task_templates` | 任务模板 | 10-50/用户 | Phase 3(预留) |
| `knowledge_bases` | 鐭ヨ瘑搴?| 5-50/鐢ㄦ埛 | 鉁?宸查儴缃?|
| `documents` | 鏂囨。 | 10-1000/鐭ヨ瘑搴?| 鉁?宸查儴缃?|
| `batch_tasks` | 鎵瑰<EFBFBD>鐞嗕换鍔?| 1-100/鐭ヨ瘑搴?| 鉁?Phase 3 |
| `batch_results` | 鎵瑰<EFBFBD>鐞嗙粨鏋?| N鏉?浠诲姟 | 鉁?Phase 3 |
| `task_templates` | 浠诲姟妯℃澘 | 10-50/鐢ㄦ埛 | 鉁?Phase 3锛堥<EFBFBD>鐣欙級 |
**总计:** 5个表2个核心表 + 3个Phase 3表)
**鎬昏<EFBFBD>锛?* 5涓<35>〃锛?涓<>牳蹇冭〃 + 3涓狿hase 3<EFBFBD>
---
@@ -89,17 +89,17 @@ GRANT ALL ON SCHEMA pkb_schema TO aiclinical_admin;
**鐢ㄩ€旓細** 瀛樺偍鐢ㄦ埛鍒涘缓鐨勪釜浜虹煡璇嗗簱
#### 表结构
#### 琛ㄧ粨鏋?
| 字段名 | 数据类型 | 约束 | 说明 |
| 瀛楁<EFBFBD>鍚?| 鏁版嵁绫诲瀷 | 绾︽潫 | 璇存槑 |
|--------|---------|------|------|
| id | TEXT | PRIMARY KEY | 知识库唯一标识UUID |
| id | TEXT | PRIMARY KEY | 鐭ヨ瘑搴撳敮涓€鏍囪瘑锛圲UID锛?|
| user_id | TEXT | NOT NULL, FK | 鎵€灞炵敤鎴稩D |
| name | TEXT | NOT NULL | 知识库名称 |
| description | TEXT | NULL | 知识库描述 |
| name | TEXT | NOT NULL | 鐭ヨ瘑搴撳悕绉?|
| description | TEXT | NULL | 鐭ヨ瘑搴撴弿杩?|
| dify_dataset_id | TEXT | NOT NULL, UNIQUE | Dify骞冲彴鐨凞ataset ID |
| file_count | INTEGER | NOT NULL, DEFAULT 0 | 鏂囦欢鏁伴噺 |
| total_size_bytes | BIGINT | NOT NULL, DEFAULT 0 | 总文件大小(字节) |
| total_size_bytes | BIGINT | NOT NULL, DEFAULT 0 | 鎬绘枃浠跺ぇ灏忥紙瀛楄妭锛?|
| created_at | TIMESTAMPTZ | NOT NULL, DEFAULT now() | 鍒涘缓鏃堕棿 |
| updated_at | TIMESTAMPTZ | NOT NULL | 鏇存柊鏃堕棿 |
@@ -138,32 +138,32 @@ model KnowledgeBase {
---
### 2. documents - 文档表
### 2. documents - 鏂囨。琛?
**用途:** 存储知识库中的文档信息
**鐢ㄩ€旓細** 瀛樺偍鐭ヨ瘑搴撲腑鐨勬枃妗d俊鎭?
#### 表结构
#### 琛ㄧ粨鏋?
| 字段名 | 数据类型 | 约束 | 说明 |
| 瀛楁<EFBFBD>鍚?| 鏁版嵁绫诲瀷 | 绾︽潫 | 璇存槑 |
|--------|---------|------|------|
| id | TEXT | PRIMARY KEY | 文档唯一标识UUID |
| id | TEXT | PRIMARY KEY | 鏂囨。鍞<EFBFBD>竴鏍囪瘑锛圲UID锛?|
| kb_id | TEXT | NOT NULL, FK | 鎵€灞炵煡璇嗗簱ID |
| user_id | TEXT | NOT NULL, FK | 鎵€灞炵敤鎴稩D |
| filename | TEXT | NOT NULL | 文件名 |
| filename | TEXT | NOT NULL | 鏂囦欢鍚?|
| file_type | TEXT | NOT NULL | 鏂囦欢绫诲瀷锛坧df/doc/txt绛夛級 |
| file_size_bytes | BIGINT | NOT NULL | 鏂囦欢澶у皬锛堝瓧鑺傦級 |
| file_url | TEXT | NOT NULL | 鏂囦欢瀛樺偍URL |
| dify_document_id | TEXT | NOT NULL | Dify骞冲彴鐨凞ocument ID |
| status | TEXT | NOT NULL, DEFAULT 'uploading' | 状态(uploading/processing/completed/failed |
| progress | INTEGER | NOT NULL, DEFAULT 0 | 处理进度0-100 |
| status | TEXT | NOT NULL, DEFAULT 'uploading' | 鐘舵€侊紙uploading/processing/completed/failed锛?|
| progress | INTEGER | NOT NULL, DEFAULT 0 | 澶勭悊杩涘害锛?-100锛?|
| error_message | TEXT | NULL | 閿欒<E996BF>淇℃伅 |
| segments_count | INTEGER | NULL | 鍒囩墖鏁伴噺 |
| tokens_count | INTEGER | NULL | Token鏁伴噺 |
| extraction_method | TEXT | NULL | 提取方法auto/ocr/parse |
| extraction_method | TEXT | NULL | 鎻愬彇鏂规硶锛坅uto/ocr/parse锛?|
| **Phase 2瀛楁<E7809B>** | | | **鍏ㄦ枃闃呰<E99783>鍔熻兘** |
| full_text | TEXT | NULL | 瀹屾暣鏂囨湰鍐呭<E98D90> |
| full_text_length | INTEGER | NULL | 鏂囨湰闀垮害 |
| metadata | JSONB | NULL | 元数据(作者、标题、摘要等) |
| metadata | JSONB | NULL | 鍏冩暟鎹<EFBFBD>紙浣滆€呫€佹爣棰樸€佹憳瑕佺瓑锛?|
| created_at | TIMESTAMPTZ | NOT NULL, DEFAULT now() | 鍒涘缓鏃堕棿 |
| updated_at | TIMESTAMPTZ | NOT NULL | 鏇存柊鏃堕棿 |
@@ -211,11 +211,11 @@ model Document {
#### 涓氬姟瑙勫垯
1. **鐘舵€佹満** - `status`瀛楁<EFBFBD>悊鏂囨。澶勭悊娴佺▼
- `uploading` `processing` `completed`
- `uploading` 鈫?`processing` 鈫?`completed`
- 澶辫触鏃惰浆涓篳failed`
2. **Dify鍚屾<E98D9A>** - 姣忎釜鏂囨。瀵瑰簲Dify涓<79>殑涓€涓狣ocument
3. **提取方法** - 支持自动识别、OCR、解析三种方式
4. **Phase 2扩展** - `full_text`字段用于全文阅读和深度分析
3. **鎻愬彇鏂规硶** - <EFBFBD>寔鑷<EFBFBD>姩璇嗗埆銆丱CR銆佽В鏋愪笁绉嶆柟寮?
4. **Phase 2鎵╁睍** - `full_text`瀛楁<EFBFBD>鐢ㄤ簬鍏ㄦ枃闃呰<EFBFBD>鍜屾繁搴﹀垎鏋?
---
@@ -223,22 +223,22 @@ model Document {
**鐢ㄩ€旓細** 鎵归噺澶勭悊鏂囩尞锛屾彁鍙栫粨鏋勫寲淇℃伅
#### 表结构
#### 琛ㄧ粨鏋?
| 字段名 | 数据类型 | 约束 | 说明 |
| 瀛楁<EFBFBD>鍚?| 鏁版嵁绫诲瀷 | 绾︽潫 | 璇存槑 |
|--------|---------|------|------|
| id | TEXT | PRIMARY KEY | 任务唯一标识UUID |
| id | TEXT | PRIMARY KEY | 浠诲姟鍞<EFBFBD>竴鏍囪瘑锛圲UID锛?|
| user_id | TEXT | NOT NULL, FK | 鎵€灞炵敤鎴稩D |
| kb_id | TEXT | NOT NULL, FK | 鎵€灞炵煡璇嗗簱ID |
| task_name | TEXT | NOT NULL | 浠诲姟鍚嶇О |
| task_type | TEXT | NOT NULL | 浠诲姟绫诲瀷锛坋xtract_info/summarize绛夛級 |
| prompt_template | TEXT | NOT NULL | Prompt妯℃澘 |
| model_name | TEXT | NOT NULL, DEFAULT 'gpt-4' | 浣跨敤鐨凩LM妯″瀷 |
| status | TEXT | NOT NULL, DEFAULT 'pending' | 状态(pending/running/completed/failed |
| status | TEXT | NOT NULL, DEFAULT 'pending' | 鐘舵€侊紙pending/running/completed/failed锛?|
| total_documents | INTEGER | NOT NULL, DEFAULT 0 | 鎬绘枃妗f暟 |
| processed_count | INTEGER | NOT NULL, DEFAULT 0 | 宸插<E5AEB8>鐞嗘暟 |
| success_count | INTEGER | NOT NULL, DEFAULT 0 | 成功数 |
| failed_count | INTEGER | NOT NULL, DEFAULT 0 | 失败数 |
| success_count | INTEGER | NOT NULL, DEFAULT 0 | 鎴愬姛鏁?|
| failed_count | INTEGER | NOT NULL, DEFAULT 0 | 澶辫触鏁?|
| error_message | TEXT | NULL | 閿欒<E996BF>淇℃伅 |
| created_at | TIMESTAMPTZ | NOT NULL, DEFAULT now() | 鍒涘缓鏃堕棿 |
| updated_at | TIMESTAMPTZ | NOT NULL | 鏇存柊鏃堕棿 |
@@ -279,12 +279,12 @@ model BatchTask {
#### 涓氬姟瑙勫垯
1. **任务类型** - 支持多种批处理类型
- `extract_info` - 提取结构化信息
1. **浠诲姟绫诲瀷** - <EFBFBD>寔澶氱<EFBFBD>鎵瑰<EFBFBD>鐞嗙被鍨?
- `extract_info` - 鎻愬彇缁撴瀯鍖栦俊鎭?
- `summarize` - 鎵归噺鎽樿<E98EBD>
- `classify` - 鏂囩尞鍒嗙被
2. **状态机** - `status`管理任务执行状态
3. **进度跟踪** - 实时更新计数器字段
2. **鐘舵€佹満** - `status`悊浠诲姟鎵ц<EFBFBD>鐘舵€?
3. **杩涘害璺熻釜** - 瀹炴椂鏇存柊璁℃暟鍣ㄥ瓧娈?
4. **妯″瀷閫夋嫨** - 鏀<>寔澶氱<E6BEB6>LLM妯″瀷
---
@@ -293,17 +293,17 @@ model BatchTask {
**鐢ㄩ€旓細** 瀛樺偍鎵瑰<E98EB5>鐞嗕换鍔殑姣忕瘒鏂囩尞缁撴灉
#### 表结构
#### 琛ㄧ粨鏋?
| 字段名 | 数据类型 | 约束 | 说明 |
| 瀛楁<EFBFBD>鍚?| 鏁版嵁绫诲瀷 | 绾︽潫 | 璇存槑 |
|--------|---------|------|------|
| id | TEXT | PRIMARY KEY | 结果唯一标识UUID |
| id | TEXT | PRIMARY KEY | 缁撴灉鍞<EFBFBD>竴鏍囪瘑锛圲UID锛?|
| task_id | TEXT | NOT NULL, FK | 鎵€灞炰换鍔<E68DA2>D |
| document_id | TEXT | NOT NULL, FK | 鎵€灞炴枃妗<E69E83>D |
| status | TEXT | NOT NULL, DEFAULT 'pending' | 状态(pending/processing/completed/failed |
| status | TEXT | NOT NULL, DEFAULT 'pending' | 鐘舵€侊紙pending/processing/completed/failed锛?|
| result_data | JSONB | NULL | 鎻愬彇鐨勭粨鏋勫寲鏁版嵁 |
| raw_output | TEXT | NULL | LLM鍘熷<E98D98>杈撳嚭 |
| tokens_used | INTEGER | NULL | 使用的Token|
| tokens_used | INTEGER | NULL | 浣跨敤鐨凾oken鏁?|
| error_message | TEXT | NULL | 閿欒<E996BF>淇℃伅 |
| created_at | TIMESTAMPTZ | NOT NULL, DEFAULT now() | 鍒涘缓鏃堕棿 |
@@ -336,20 +336,20 @@ model BatchResult {
#### 涓氬姟瑙勫垯
1. **缁撴灉瀛樺偍** - `result_data`瀛樺偍JSON鏍煎紡鐨勭粨鏋勫寲鏁版嵁
2. **原始输出** - `raw_output`保留LLM原始输出便于调试
3. **Token统计** - 记录每篇文献的Token消耗
2. **鍘熷<EFBFBD>杈撳嚭** - `raw_output`淇濈暀LLM鍘熷<EFBFBD>杈撳嚭锛屼究浜庤皟璇?
3. **Token缁熻<EFBFBD>** - 璁板綍姣忕瘒鏂囩尞鐨凾oken娑堣€?
---
### 5. task_templates - 任务模板表 (Phase 3, 暂不实现)
### 5. task_templates - 浠诲姟妯℃澘琛?(Phase 3, 鏆備笉瀹炵幇)
**用途:** 存储预定义的批处理任务模板
**鐢ㄩ€旓細** 瀛樺偍棰勫畾涔夌殑鎵瑰<EFBFBD>鐞嗕换鍔℃ā鏉?
#### 表结构
#### 琛ㄧ粨鏋?
| 字段名 | 数据类型 | 约束 | 说明 |
| 瀛楁<EFBFBD>鍚?| 鏁版嵁绫诲瀷 | 绾︽潫 | 璇存槑 |
|--------|---------|------|------|
| id | TEXT | PRIMARY KEY | 模板唯一标识UUID |
| id | TEXT | PRIMARY KEY | 妯℃澘鍞<EFBFBD>竴鏍囪瘑锛圲UID锛?|
| user_id | TEXT | NOT NULL, FK | 鎵€灞炵敤鎴稩D |
| template_name | TEXT | NOT NULL | 妯℃澘鍚嶇О |
| task_type | TEXT | NOT NULL | 浠诲姟绫诲瀷 |
@@ -385,8 +385,8 @@ model TaskTemplate {
#### 涓氬姟瑙勫垯
1. **妯℃澘澶嶇敤** - 鐢ㄦ埛鍙<E59F9B>繚瀛樺父鐢ㄧ殑浠诲姟閰嶇疆
2. **字段定义** - `output_fields`定义期望的输出结构
3. **暂不实现** - Phase 3预留,后续开发
2. **瀛楁<EFBFBD>瀹氫箟** - `output_fields`瀹氫箟鏈熸湜鐨勮緭鍑虹粨鏋?
3. **鏆備笉瀹炵幇** - Phase 3棰勭暀锛屽悗缁<EFBFBD>紑鍙?
---
@@ -463,51 +463,51 @@ erDiagram
### 璺⊿chema寮曠敤
**外键关系:**
- `knowledge_bases.user_id` `platform_schema.users.id`
- `documents.user_id` `platform_schema.users.id`
- `batch_tasks.user_id` `platform_schema.users.id`
- `task_templates.user_id` `platform_schema.users.id`
**澶栭敭鍏崇郴锛?*
- `knowledge_bases.user_id` 鈫?`platform_schema.users.id`
- `documents.user_id` 鈫?`platform_schema.users.id`
- `batch_tasks.user_id` 鈫?`platform_schema.users.id`
- `task_templates.user_id` 鈫?`platform_schema.users.id`
**说明:** Prisma自动处理跨Schema外键应用代码无需关心Schema前缀
**璇存槑锛?* Prisma鑷<61>姩澶勭悊璺⊿chema澶栭敭锛屽簲鐢ㄤ唬鐮佹棤闇€鍏冲績Schema鍓嶇紑
---
## 绱㈠紩璁捐<E79281>
### 涓婚敭绱㈠紩
所有表的`id`字段自动创建B-tree主键索引。
鎵€鏈夎〃鐨刞id`瀛楁<E7809B><EFBFBD>姩鍒涘缓B-tree涓婚敭绱㈠紩銆?
### 澶栭敭绱㈠紩
| 表名 | 索引字段 | 用途 |
| 琛ㄥ悕 | 绱㈠紩瀛楁<E7809B> | 鐢ㄩ€?|
|------|---------|------|
| knowledge_bases | user_id | 鏌ヨ<E98F8C>鐢ㄦ埛鐨勬墍鏈夌煡璇嗗簱 |
| knowledge_bases | dify_dataset_id | Dify鏁版嵁鍚屾<E98D9A> |
| documents | kb_id | 查询知识库的所有文档 |
| documents | user_id | 查询用户的所有文档 |
| documents | status | 过滤文档状态 |
| documents | kb_id | 鏌ヨ<EFBFBD>鐭ヨ瘑搴撶殑鎵€鏈夋枃妗?|
| documents | user_id | 鏌ヨ<EFBFBD>鐢ㄦ埛鐨勬墍鏈夋枃妗?|
| documents | status | 杩囨护鏂囨。鐘舵€?|
| documents | dify_document_id | Dify鏁版嵁鍚屾<E98D9A> |
| documents | extraction_method | 按提取方法过滤 |
| batch_tasks | user_id | 查询用户的任务 |
| documents | extraction_method | 鎸夋彁鍙栨柟娉曡繃婊?|
| batch_tasks | user_id | 鏌ヨ<EFBFBD>鐢ㄦ埛鐨勪换鍔?|
| batch_tasks | kb_id | 鏌ヨ<E98F8C>鐭ヨ瘑搴撶殑浠诲姟 |
| batch_tasks | status | 过滤任务状态 |
| batch_results | task_id | 查询任务的所有结果 |
| batch_results | document_id | 查询文档的处理结果 |
| batch_results | status | 过滤结果状态 |
| task_templates | user_id | 查询用户的模板 |
| batch_tasks | status | 杩囨护浠诲姟鐘舵€?|
| batch_results | task_id | 鏌ヨ<EFBFBD>浠诲姟鐨勬墍鏈夌粨鏋?|
| batch_results | document_id | 鏌ヨ<EFBFBD>鏂囨。鐨勫<EFBFBD>鐞嗙粨鏋?|
| batch_results | status | 杩囨护缁撴灉鐘舵€?|
| task_templates | user_id | 鏌ヨ<EFBFBD>鐢ㄦ埛鐨勬ā鏉?|
### 鏃堕棿绱㈠紩
| 表名 | 索引字段 | 用途 |
| 琛ㄥ悕 | 绱㈠紩瀛楁<E7809B> | 鐢ㄩ€?|
|------|---------|------|
| batch_tasks | created_at | 按时间排序任务 |
| batch_tasks | created_at | 鎸夋椂闂存帓搴忎换鍔?|
---
## Phase 3鍔熻兘璇存槑
### 批处理工作流程
### 鎵瑰<EFBFBD>鐞嗗伐浣滄祦绋?
```mermaid
sequenceDiagram
@@ -518,23 +518,23 @@ sequenceDiagram
participant LLM
participant BatchResult
User->>API: 创建批处理任务
User->>API: 鍒涘缓鎵瑰<EFBFBD>鐞嗕换鍔?
API->>BatchTask: 鍒涘缓浠诲姟璁板綍
API->>Document: 查询知识库文档列表
API->>Document: 鏌ヨ<EFBFBD>鐭ヨ瘑搴撴枃妗垪琛?
loop 姣忕瘒鏂囨。
BatchTask->>Document: 璇诲彇鏂囨。鍏ㄦ枃
BatchTask->>LLM: 璋冪敤LLM鎻愬彇淇℃伅
LLM-->>BatchTask: 返回结构化数据
LLM-->>BatchTask: 杩斿洖缁撴瀯鍖栨暟鎹?
BatchTask->>BatchResult: 淇濆瓨缁撴灉
BatchTask->>BatchTask: 鏇存柊杩涘害
end
BatchTask->>API: 浠诲姟瀹屾垚
API-->>User: 返回结果汇总
API-->>User: 杩斿洖缁撴灉姹囨€?
```
### 批处理任务类型示例
### 鎵瑰<EFBFBD>鐞嗕换鍔被鍨嬬ず渚?
1. **淇℃伅鎻愬彇** (`extract_info`)
- 鎻愬彇鐮旂┒鏂规硶銆佹牱鏈<E789B1>噺銆丳鍊肩瓑
@@ -542,52 +542,52 @@ sequenceDiagram
2. **鏂囩尞鎽樿<E98EBD>** (`summarize`)
- 鎵归噺鐢熸垚鏂囩尞鎽樿<E98EBD>
- 统一格式和长度
- 缁熶竴鏍煎紡鍜岄暱搴?
3. **鏂囩尞鍒嗙被** (`classify`)
- 鏍规嵁鐮旂┒绫诲瀷鍒嗙被
- 标签化管理
- 鏍囩<E98F8D>鍖栫<E98D96>鐞?
---
## 鍙樻洿鍘嗗彶
### v1.0 - 2025-11-12 - 初始版本 ✅
### v1.0 - 2025-11-12 - 鍒濆<EFBFBD>鐗堟湰 鉁?
**变更内容:**
**鍙樻洿鍐呭<E98D90>锛?*
1. 浠巂public` schema杩佺Щ鍒癭pkb_schema`
2. 5个表全部迁移:
2. 5<EFBFBD>〃鍏ㄩ儴杩佺Щ锛?
- knowledge_bases
- documents
- batch_tasks
- batch_results
- task_templates
3. 鍦≒risma涓<61>坊鍔燻@@schema("pkb_schema")`鏍囩<EFBFBD>
4. 所有数据100%完整迁移
4. 鎵€鏈夋暟鎹?00%瀹屾暣杩佺Щ
**迁移脚本:** `docs/09-架构实施/migration-scripts/004-migrate-pkb.sql`
**杩佺Щ鑴氭湰锛?* `docs/09-鏋舵瀯瀹炴柦/migration-scripts/004-migrate-pkb.sql`
**验证状态:** ✅ 已验证,功能正常
**楠岃瘉鐘舵€侊細** 鉁?宸查獙璇侊紝鍔熻兘姝e父
**特殊处理:**
- `batch_results.rawOutput` `raw_output`(列名映射修正)
- `task_templates.outputFields` `output_fields`(列名映射修正)
**鐗规畩澶勭悊锛?*
- `batch_results.rawOutput` 鈫?`raw_output`锛堝垪鍚嶆槧灏勪慨姝o級
- `task_templates.outputFields` 鈫?`output_fields`锛堝垪鍚嶆槧灏勪慨姝o級
---
## 馃摎 鐩稿叧鏂囨。
- [Schema隔离架构设计](../../../09-架构实施/01-Schema隔离架构设计10个.md)
- [Schema闅旂<EFBFBD>鏋舵瀯璁捐<EFBFBD>](../../../09-鏋舵瀯瀹炴柦/01-Schema闅旂<EFBFBD>鏋舵瀯璁捐<EFBFBD>锛?0涓<30>.md)
- [Schema杩佺Щ瀹屾垚鎶ュ憡](../../../09-鏋舵瀯瀹炴柦/Schema杩佺Щ瀹屾垚鎶ュ憡.md)
- [Prisma閰嶇疆瀹屾垚鎶ュ憡](../../../09-鏋舵瀯瀹炴柦/Prisma閰嶇疆瀹屾垚鎶ュ憡.md)
- [快速功能测试报告](../../../09-架构实施/快速功能测试报告.md)
- [AIA数据库设计文档](../../AIA-AI智能问答/02-技术设计/01-数据库设计.md)
- [<EFBFBD>€熷姛鑳芥祴璇曟姤鍛奭(../../../09-鏋舵瀯瀹炴柦/蹇<>€熷姛鑳芥祴璇曟姤鍛?md)
- [AIA鏁版嵁搴撹<EFBFBD>璁℃枃妗<EFBFBD>(../../AIA-AI鏅鸿兘闂<E58598>瓟/02-鎶€鏈<E282AC><E98F88>璁?01-鏁版嵁搴撹<E690B4>璁?md)
---
**鏂囨。缁存姢鑰咃細** AI鍔╂墜
**鏈€鍚庢洿鏂帮細** 2025-11-12
**文档状态:** ✅ 已完成并验证
**鏂囨。鐘舵€侊細** 鉁?宸插畬鎴愬苟楠岃瘉