docs(fix): 修正引用跳转文档错误及修复 fix_image_paths 脚本
- 修正 preview 接口路径(去掉多余的 /api 前缀) - 修正响应示例中 chunk id 格式(文件名_序号,非 UUID) - 补充 preview 响应中 status、version 字段 - 明确前端引用匹配方式为 chunk_id 查找而非数组下标 - fix_image_paths.py 改为遍历知识库子目录,避免生成空 chroma.sqlite3
This commit is contained in:
@@ -71,7 +71,7 @@ SSE 流结束时,`finish` 事件的 `citations` 字段是一个数组,每个
|
||||
### 三、文档预览接口
|
||||
|
||||
```
|
||||
GET /api/documents/{collection}/{source}/preview?chunk_index={N}&context={K}
|
||||
GET /documents/{collection}/{source}/preview?chunk_index={N}&context={K}
|
||||
```
|
||||
|
||||
**参数:**
|
||||
@@ -94,7 +94,7 @@ GET /api/documents/{collection}/{source}/preview?chunk_index={N}&context={K}
|
||||
"target_index": 5, // 请求的 chunk_index
|
||||
"chunks": [
|
||||
{
|
||||
"id": "uuid-xxx",
|
||||
"id": "三峡公报.pdf_3", // 切片 ID(文件名_序号格式,序号 = chunk_index)
|
||||
"document": "完整切片正文...", // 完整内容(不截断)
|
||||
"metadata": {
|
||||
"chunk_index": 3,
|
||||
@@ -104,12 +104,16 @@ GET /api/documents/{collection}/{source}/preview?chunk_index={N}&context={K}
|
||||
"doc_type": "pdf",
|
||||
...
|
||||
},
|
||||
"status": "active", // 文档状态
|
||||
"version": "v1", // 版本号
|
||||
"is_target": false // 是否为目标切片
|
||||
},
|
||||
{
|
||||
"id": "uuid-yyy",
|
||||
"id": "三峡公报.pdf_5",
|
||||
"document": "目标切片的完整正文...",
|
||||
"metadata": { "chunk_index": 5, "page": 3, ... },
|
||||
"status": "active",
|
||||
"version": "v1",
|
||||
"is_target": true // ← 这是用户点击的那个切片
|
||||
},
|
||||
// ... 上下文切片
|
||||
@@ -126,7 +130,7 @@ GET /api/documents/{collection}/{source}/preview?chunk_index={N}&context={K}
|
||||
```
|
||||
1. 从 finish 事件取 answer(回答全文)和 citations(引用数组)
|
||||
2. 用正则 /\[ref:([^\]]+)\]/g 从 answer 中按出现顺序提取所有 chunk_id
|
||||
3. 与 citations 数组匹配,建立 chunk_id → 显示序号 [1] [2] ... 的映射
|
||||
3. 以 chunk_id 为键从 citations 数组中查找对应的引用信息(注意:是按 chunk_id 匹配,不是按数组下标),建立 chunk_id → 显示序号 [1] [2] ... 的映射
|
||||
4. 渲染回答时,将 [ref:xxx] 替换为可点击的上标元素
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user