本文介绍RDS ContextDB的知识评审Data API,包括评审记录管理、人工评审、重写模板和评审策略配置。
公共信息
基础地址
https://context-database.aliyuncs.com鉴权方式
所有数据面接口通过workspace级API Key鉴权,以下三种方式任选其一:
方式 | Header格式 |
X-API-Key |
|
Token |
|
Bearer |
|
响应信封
本文档所有接口均返回统一信封结构,业务数据放在 data 字段内。
名称 | 类型 | 描述 | 示例值 |
errorCode | integer | 错误码, |
|
errorMessage | string | 错误说明,成功时为null |
|
requestId | string | 请求追踪ID |
|
data | object/array/null | 业务数据,各接口在「返回参数」中单独定义 | 见各接口示例 |
公共错误语义
HTTP状态码 | errorCode | 触发条件 |
400 |
| 参数缺失、参数非法、资源不存在、状态不允许操作、权限不足( |
401 |
| 未携带API Key |
500 |
| 服务端内部错误 |
注意:知识评审域的权限校验失败不返回403,而是以HTTP 400 + errorCode=1001 返回,errorMessage 形如 forbidden: kb_write, knowledge base permission denied: kb-001。
Data API概览
下表列出本文介绍的接口及其功能概述。
API | 描述 |
ListReviews | 分页返回入库评审记录,可按decision、review_status过滤。 |
GetReviewDetail | 获取单条评审详情(含质量评分、矛盾列表、冲突信息、重写内容)。 |
ReviewAction | 对评审记录执行人工操作。 |
DeleteReview | 删除单条评审记录,仅允许删除已通过(reviewed)或已拒绝(rejected)的记录。 |
ResolveConflicts | 逐条决策冲突项。 |
BatchReviewAction | 批量执行知识评审操作,仅支持 |
BatchDeleteReviews | 批量删除评审记录,仅允许删除已通过(reviewed)或已拒绝(rejected)的记录,单次最多50条。 |
ListKnowledgeReviewTemplates | 返回指定知识库内所有活跃的评审重写模板,按名称升序。 |
CreateKnowledgeReviewTemplate | 创建知识评审重写模板。 |
GetKnowledgeReviewTemplate | 返回模板详情;不存在时返回200且data=null。 |
UpdateKnowledgeReviewTemplate | 按template_id更新模板名称、章节或默认标记。 |
DeleteKnowledgeReviewTemplate | 软删指定模板(status=deleted、清空内容、name改写规避唯一键冲突),重复删除幂等。 |
SetDefaultKnowledgeReviewTemplate | 将指定模板设为KB默认评审重写模板(同一事务内清除同KB其他模板的默认标记)。 |
ClearDefaultKnowledgeReviewTemplate | 清除KB内所有模板的is_default标记,运行期注入回落「无模板」行为。 |
GetReviewSettings | 获取当前工作空间的知识评审策略设置。 |
UpdateReviewSettings | 更新当前工作空间的知识评审策略(部分更新语义,仅传入的字段被修改)。 |
Knowledge Review API
ListReviews
接口说明
分页返回入库评审记录,可按decision、review_status过滤。URL Query支持sort_by、sort_order。sort_by当前仅支持confidence_score;sort_order为asc/desc,传sort_by但省略时默认desc;null分数始终置末尾,同分再按created_at降序、review ID升序。单独传sort_order或非法值返回400;未传sort_by时按created_at降序。
请求语法
GET /v1/knowledge/reviews请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
decision | string | 否 | 决策类型过滤: |
|
review_status | string | 否 | 状态过滤: |
|
page | integer | 否 | 页码,默认 |
|
page_size | integer | 否 | 每页条数,默认 |
|
sort_by | string | 否 | 排序字段,当前仅支持 |
|
sort_order | string | 否 | 排序方向: |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
reviews | array | 评审记录列表,元素字段见下表 | 见示例 |
total | integer | 总条数 |
|
page | integer | 当前页码(钳制后的实际值) |
|
page_size | integer | 每页条数(钳制后的实际值) |
|
reviews数组元素:
名称 | 类型 | 描述 | 示例值 |
review_id | string | 评审记录ID |
|
document_id | string | 文档ID |
|
document_name | string | 文档名称;评审记录内为空时回查文档表,文档已删除则为null |
|
knowledge_base_id | string | 知识库ID |
|
confidence_score | float | 综合置信度,未评分为null |
|
decision | string | 系统决策: |
|
review_status | string | 评审状态: |
|
has_conflicts | boolean | 是否存在知识冲突 |
|
has_contradictions | boolean | 是否存在不可解决的自矛盾 |
|
rewrite_needed | boolean | 是否需要重写 |
|
human_action | string | 人工操作类型(未操作为null) |
|
created_at | string | 创建时间 |
|
review_status派生规则
review_status 不是数据库列,而是每次响应时按下列顺序派生:
优先级 | 条件 | 派生结果 |
1 |
| 取评审记录的 |
2 |
|
|
3 | 其他(含 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"reviews":[{"review_id":"rev-001","document_id":"doc-001","document_name":"故障处理手册.md","knowledge_base_id":"kb-001","confidence_score":0.85,"decision":"pending_review","review_status":"pending","has_conflicts":false,"has_contradictions":false,"rewrite_needed":true,"human_action":null,"created_at":"2026-06-01T10:00:00Z"}],"total":42,"page":1,"page_size":20}}GetReviewDetail
接口说明
获取单条评审详情(含质量评分、矛盾列表、冲突信息、重写内容)。使用统一信封结构返回。原文按3000字符/页切片返回,content_page 控制页码。
请求语法
GET /v1/knowledge/reviews/detail请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
review_id | string | 是 | 评审记录ID |
|
content_page | integer | 否 | 原文内容分页页码,默认 |
|
参数校验与越界行为
参数 | 越界/非法输入 | 实际行为 |
review_id | 缺失 | 返回400(缺少必填参数) |
review_id | 在当前workspace下不存在 | 返回400, |
content_page |
| 静默钳制为 |
content_page | 超过实际总页数 | 不报错, |
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
review_id | string | 评审记录ID |
|
document_id | string | 文档ID |
|
document_name | string | 文档名称;评审记录内为空时回查文档表 |
|
knowledge_base_id | string | 知识库ID |
|
member_id | string | 触发入库的成员ID |
|
logic_score | float | 逻辑连贯性评分(越高越好),未评分为null |
|
noise_score | float | 噪音比例评分(越低越好) |
|
contradiction_score | float | 内部矛盾度评分(越低越好) |
|
confidence_score | float | 综合置信度 |
|
source_type | string | 来源类型: |
|
decision | string | 系统决策: |
|
decision_reason | string | 决策说明文案 |
|
review_status | string | 评审状态: |
|
has_contradictions | boolean | 是否存在不可解决的自矛盾 |
|
contradictions | string | 矛盾详情,JSON字符串(非对象),结构见下表 |
|
conflicts | string | 与知识库的冲突详情,JSON字符串,结构见下表 |
|
quality_details | string | 质量详情,JSON字符串,形如 |
|
original_content | object | 分页后的原文,子字段见下表;原文为空时为null | 见下表 |
original_logic_score | float | 重写前的逻辑评分 |
|
original_noise_score | float | 重写前的噪音评分 |
|
original_contradiction_score | float | 重写前的矛盾度评分 |
|
original_contradictions | string | 重写前的矛盾详情,JSON字符串 | 空数组 |
rewrite_needed | boolean | 是否需要重写 |
|
rewrite_reason | string | 重写触发原因 |
|
rewrite_strategy | string | 重写策略,取值见下表 |
|
rewritten_content | string | AI重写后的完整内容(不分页) |
|
rewrite_info_check | string | 重写信息保真校验,JSON字符串,形如 |
|
human_action | string | 人工操作类型,未操作为null |
|
human_edited_content | string | 人工编辑后的内容,未编辑为null |
|
human_conflict_resolutions | string | 人工冲突决策,JSON字符串 |
|
human_action_by | string | 执行人工操作的成员ID |
|
human_action_at | string | 人工操作时间 |
|
loop_iterations | integer | 已执行的评审-重写迭代轮数 |
|
max_iterations | integer | 最大迭代轮数 |
|
created_at | string | 创建时间 |
|
updated_at | string | 更新时间 |
|
original_content对象:
名称 | 类型 | 描述 | 示例值 |
text | string | 当前页原文切片,每页3000字符;页码越界时为空字符串 |
|
page | integer | 当前页码,回显请求的content_page(钳制后) |
|
total_pages | integer | 总页数,按 |
|
total_chars | integer | 原文总字符数 |
|
rewrite_strategy取值:
取值 | 描述 |
| 去噪:噪音分为短板时选用 |
| 重构:逻辑分为短板时选用 |
| 修复矛盾:存在可解决的内部矛盾时选用 |
| 混合策略(代码常量已定义) |
| 消除幻觉(代码常量已定义) |
conflicts元素结构(JSON字符串解析后):
名称 | 类型 | 描述 |
id | string | 冲突ID,ResolveConflicts / ReviewAction 的 |
kb_document_id | string | 冲突所在的知识库文档ID |
kb_document_name | string | 冲突所在的知识库文档名称 |
kb_fact | string | 知识库中的既有事实 |
new_fact | string | 本次入库内容中的新事实 |
conflict_type | string | 冲突类型 |
severity_score | float | 冲突严重度 |
ai_recommendation | string | AI建议的处理方式 |
human_resolution | string | 人工决策结果 |
contradictions元素结构(JSON字符串解析后):
名称 | 类型 | 描述 |
snippet1 | string | 矛盾片段一 |
snippet2 | string | 矛盾片段二 |
type | string | 矛盾类型 |
resolvable | boolean | 是否可自动解决;存在不可解决项时 |
confidence | float | 矛盾判定置信度 |
contradictions、conflicts、quality_details、original_contradictions、rewrite_info_check、human_conflict_resolutions 六个字段在信封中均为JSON字符串,客户端需二次解析;上表描述的是解析后的结构,字段以入库时写入的JSON为准。
ReviewAction
接口说明
对评审记录执行人工操作。使用统一信封结构返回。同一条评审记录只允许操作一次(human_action 已写入后重复调用返回400);操作前会校验workspace处于active状态。
请求语法
POST /v1/knowledge/reviews/action请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
review_id | string | 是 | 评审记录ID |
|
action | string | 是 | 操作类型: |
|
edited_content | string | 否 | 人工编辑内容(仅 |
|
conflict_resolutions | array | 否 | 冲突决策列表 |
|
conflict_resolutions数组元素:
名称 | 类型 | 必填 | 描述 | 示例值 |
conflict_id | string | 是 | 冲突ID,取 |
|
resolution | string | 是 | 决策: |
|
conflict_resolutions 仅被序列化写入 human_conflict_resolutions 审计字段,服务端不校验conflict_id 是否存在于该评审的 conflicts 中,也不校验 resolution 是否在枚举内。
action语义
action | 含义 | 文档处理 | 评审记录status |
| 复核确认,原样入库 | 派发KNOWLEDGE_REVIEW_APPROVE事件(启用chunks + 图谱抽取),文档review_status置 |
|
| 存在矛盾但强制原样入库 | 同 |
|
| 采纳重写内容 | 以 |
|
| 拒绝入库 | 文档置 |
|
| 拒绝并要求重新上传 | 与 |
|
参数校验与错误语义
条件 | HTTP | errorMessage |
| 400 |
|
| 400 |
|
| 400 |
|
workspace不存在 | 400 |
|
workspace非active(停机期间) | 400 |
|
| 400 |
|
该评审已执行过人工操作 | 400 |
|
| 400 |
|
返回参数(data字段内)
返回操作后的评审详情,字段与 GetReviewDetail 完全一致(original_content 固定返回第1页):
名称 | 类型 | 描述 | 示例值 |
review_id | string | 评审记录ID |
|
document_id | string | 文档ID |
|
document_name | string | 文档名称 |
|
knowledge_base_id | string | 知识库ID |
|
member_id | string | 触发入库的成员ID |
|
logic_score | float | 逻辑连贯性评分 |
|
noise_score | float | 噪音比例评分 |
|
contradiction_score | float | 内部矛盾度评分 |
|
confidence_score | float | 综合置信度 |
|
source_type | string | 来源类型 |
|
decision | string | 系统决策 |
|
decision_reason | string | 决策说明文案 |
|
review_status | string | 评审状态,操作后为 |
|
has_contradictions | boolean | 是否存在不可解决的自矛盾 |
|
contradictions | string | 矛盾详情,JSON字符串 | 空数组 |
conflicts | string | 冲突详情,JSON字符串 | 空数组 |
quality_details | string | 质量详情,JSON字符串 |
|
original_content | object | 分页后的原文(第1页),子字段同GetReviewDetail | 见GetReviewDetail |
original_logic_score | float | 重写前的逻辑评分 |
|
original_noise_score | float | 重写前的噪音评分 |
|
original_contradiction_score | float | 重写前的矛盾度评分 |
|
original_contradictions | string | 重写前的矛盾详情,JSON字符串 | 空数组 |
rewrite_needed | boolean | 是否需要重写 |
|
rewrite_reason | string | 重写触发原因 |
|
rewrite_strategy | string | 重写策略 |
|
rewritten_content | string | AI重写后的完整内容 |
|
rewrite_info_check | string | 重写信息保真校验,JSON字符串 |
|
human_action | string | 本次写入的人工操作类型 |
|
human_edited_content | string | 本次写入的人工编辑内容 |
|
human_conflict_resolutions | string | 本次写入的冲突决策,JSON字符串 |
|
human_action_by | string | 执行人的成员ID,由服务端注入 |
|
human_action_at | string | 人工操作时间 |
|
loop_iterations | integer | 已执行的评审-重写迭代轮数 |
|
max_iterations | integer | 最大迭代轮数 |
|
created_at | string | 创建时间 |
|
updated_at | string | 更新时间 |
|
示例
请求体:
{"review_id":"rev-001","action":"accept_rewrite","edited_content":"修改后的文档内容..."}DeleteReview
接口说明
删除单条评审记录,仅允许删除已通过(reviewed)或已拒绝(rejected)的记录。删除为物理删除(数据库行直接DELETE),不可恢复;只清理评审记录本身,不影响已入库的文档。
请求语法
DELETE /v1/knowledge/reviews请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
review_id | string | 是 | 评审记录ID |
|
可删除条件
判定依据是评审记录持久化的 status 列,不是响应里的派生字段 review_status:
记录status | 产生时机 | 是否可删除 |
| 执行过 | 可删除 |
| 执行过 | 可删除 |
| 记录创建后的初始值,含尚未人工操作的 | 不可删除,返回400 |
注意:decision=auto_accept 的记录在列表/详情中派生出的 review_status 是 reviewed,但其 status 列仍为 active,因此无法删除,会返回 only reviewed or rejected review can be deleted, current status: active。此为现行实现行为。
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
| 400 |
|
记录在当前workspace下不存在 | 400 |
|
记录status不是 | 400 |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
review_id | string | 已删除的评审记录ID |
|
deleted | boolean | 是否已删除,固定为 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"review_id":"rev-001","deleted":true}}ResolveConflicts
接口说明
逐条决策冲突项。使用统一信封结构返回。本接口只写入冲突决策审计字段(human_conflict_resolutions、human_action_by、human_action_at),不写入 human_action、不改变评审记录status、不触发文档入库或删除;因此调用后 review_status 仍保持 pending,后续仍需调用 ReviewAction 落地。
请求语法
POST /v1/knowledge/reviews/resolve-conflicts请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
review_id | string | 是 | 评审记录ID |
|
resolutions | array | 是 | 冲突决策列表,非空,元素字段见下表 |
|
resolutions数组元素:
名称 | 类型 | 必填 | 描述 | 示例值 |
conflict_id | string | 是 | 冲突ID,取 |
|
resolution | string | 是 | 决策: |
|
与 ReviewAction 一致:服务端整体序列化后存库,不校验conflict_id 是否属于该评审、也不校验resolution 枚举值;重复调用会整体覆盖上一次的决策列表。
错误语义
条件 | HTTP | errorMessage |
| 400 |
|
| 400 |
|
记录在当前workspace下不存在 | 400 |
|
返回参数(data字段内)
返回操作后的评审详情,字段与 GetReviewDetail 完全一致(original_content 固定返回第1页):
名称 | 类型 | 描述 | 示例值 |
review_id | string | 评审记录ID |
|
document_id | string | 文档ID |
|
document_name | string | 文档名称 |
|
knowledge_base_id | string | 知识库ID |
|
member_id | string | 触发入库的成员ID |
|
logic_score | float | 逻辑连贯性评分 |
|
noise_score | float | 噪音比例评分 |
|
contradiction_score | float | 内部矛盾度评分 |
|
confidence_score | float | 综合置信度 |
|
source_type | string | 来源类型 |
|
decision | string | 系统决策 |
|
decision_reason | string | 决策说明文案 |
|
review_status | string | 评审状态,本接口不改变其取值,通常仍为 |
|
has_contradictions | boolean | 是否存在不可解决的自矛盾 |
|
contradictions | string | 矛盾详情,JSON字符串 | 空数组 |
conflicts | string | 冲突详情,JSON字符串 |
|
quality_details | string | 质量详情,JSON字符串 |
|
original_content | object | 分页后的原文(第1页) | 见GetReviewDetail |
original_logic_score | float | 重写前的逻辑评分 |
|
original_noise_score | float | 重写前的噪音评分 |
|
original_contradiction_score | float | 重写前的矛盾度评分 |
|
original_contradictions | string | 重写前的矛盾详情,JSON字符串 | 空数组 |
rewrite_needed | boolean | 是否需要重写 |
|
rewrite_reason | string | 重写触发原因 |
|
rewrite_strategy | string | 重写策略 |
|
rewritten_content | string | AI重写后的完整内容 |
|
rewrite_info_check | string | 重写信息保真校验,JSON字符串 |
|
human_action | string | 人工操作类型,本接口不写入,仍为null |
|
human_edited_content | string | 人工编辑内容 |
|
human_conflict_resolutions | string | 本次写入的冲突决策,JSON字符串 |
|
human_action_by | string | 本次操作人的成员ID,由服务端注入 |
|
human_action_at | string | 本次操作时间 |
|
loop_iterations | integer | 已执行的评审-重写迭代轮数 |
|
max_iterations | integer | 最大迭代轮数 |
|
created_at | string | 创建时间 |
|
updated_at | string | 更新时间 |
|
示例
请求体:
{"review_id":"rev-001","resolutions":[{"conflict_id":"c1","resolution":"use_new"}]}BatchReviewAction
接口说明
批量执行知识评审操作,仅支持 confirm / reject,单次最多50条。逐条串行调用单条操作逻辑,部分失败不中断整批,失败项在 results 中给出 error 说明。
请求语法
POST /v1/knowledge/reviews/batch请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
action | string | 是 | 批量操作类型: |
|
ids | array | 是 | 评审记录ID列表,非空,单次最多50条 |
|
参数校验与越界行为
条件 | HTTP | errorMessage |
| 400 |
|
| 400 |
|
| 400 |
|
| 400(不截断) |
|
| 400 |
|
workspace非active | 400 |
|
ids 元素会去除首尾空白后按给定顺序处理;重复ID不去重,第二次会因「已执行过人工操作」而在该项上失败。
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
total | integer | 提交的条目总数 |
|
succeeded | integer | 成功条数 |
|
failed | integer | 失败条数 |
|
results | array | 逐项结果,元素字段见下表 | 见示例 |
results数组元素:
名称 | 类型 | 描述 | 示例值 |
id | string | 评审记录ID(回显传入的原始值,未去空白) |
|
success | boolean | 该项是否成功 |
|
error | string | 失败原因;成功时该字段不出现在JSON中 |
|
示例
请求体:
{"action":"confirm","ids":["rev-001","rev-002"]}正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"total":2,"succeeded":1,"failed":1,"results":[{"id":"rev-001","success":true},{"id":"rev-002","success":false,"error":"review not found: rev-002"}]}}BatchDeleteReviews
接口说明
批量删除评审记录,仅允许删除已通过(reviewed)或已拒绝(rejected)的记录,单次最多50条。逐条预检后对通过校验的记录批量物理删除,部分失败不中断整批。
请求语法
DELETE /v1/knowledge/reviews/batch请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
ids | array | 是 | 评审记录ID列表,非空,单次最多50条 |
|
参数校验与越界行为
条件 | HTTP | errorMessage |
| 400 |
|
| 400(不截断) |
|
| 400 |
|
逐项失败语义
条件 | 该项error |
记录在当前workspace下不存在 |
|
记录status不是 |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
total | integer | 提交的条目总数 |
|
succeeded | integer | 成功条数 |
|
failed | integer | 失败条数 |
|
results | array | 逐项结果,元素字段见下表 | 见示例 |
results数组元素:
名称 | 类型 | 描述 | 示例值 |
id | string | 评审记录ID |
|
success | boolean | 该项是否成功 |
|
error | string | 失败原因;成功时该字段不出现在JSON中 |
|
示例
请求体:
{"ids":["rev-001","rev-002"]}正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"total":2,"succeeded":1,"failed":1,"results":[{"id":"rev-001","success":true},{"id":"rev-002","success":false,"error":"review is not deletable, current status: active"}]}}KnowledgeReviewTemplates
知识评审重写模板是per-KB资源,用于控制知识评审阶段的重写提示词。读操作需要KB_READ权限,写操作需要KB_WRITE权限。每个知识库最多5个活跃模板。
隔离与约束:
项 | 值 | 依据 |
隔离维度 | 知识库(KB)维度 | 唯一键 |
每KB活跃模板上限 | 5 | 应用层校验,超出返回400 |
模板名称长度上限 | 128字符 | 去空白后计算 |
章节条数范围 | 1-15 | 空数组与超过15条均返回400 |
标题层级范围 | 1-3(对应 | 越界返回400 |
渲染后Markdown长度上限 | 65536字符 | 超出返回400 |
权限不足 | HTTP 400, | 并非403 |
模板对象:
名称 | 类型 | 描述 | 示例值 |
id | string | 模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 模板名称 |
|
is_default | boolean | 是否为KB默认模板 |
|
sections | array | 结构化章节数组,元素字段见下表 | 见示例 |
content | string | 服务端渲染后的Markdown模板原文 |
|
created_by | string | 创建人member ID |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
sections数组元素:
名称 | 类型 | 描述 | 示例值 |
level | integer | 标题层级,1-3;请求省略时默认1 |
|
title | string | 章节标题,必填非空,单行 |
|
guidance | string | 撰写指引,必填非空,允许多行 |
|
ListKnowledgeReviewTemplates
接口说明
返回指定知识库内所有活跃的评审重写模板,按名称升序。需要该KB的KB_READ权限。
请求语法
GET /v1/knowledge/review_templates?knowledge_base_id={knowledge_base_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID(Query参数) |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
data | array | 模板对象数组,按name升序;无活跃模板时为空数组,元素字段见下表 | 见示例 |
data数组元素(模板对象):
名称 | 类型 | 描述 | 示例值 |
id | string | 模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 模板名称 |
|
is_default | boolean | 是否为KB默认模板 |
|
sections | array | 结构化章节数组,元素字段同上文「sections数组元素」 | 见示例 |
content | string | 服务端渲染后的Markdown模板原文 |
|
created_by | string | 创建人member ID |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
KB不存在或不属于当前workspace | 400 |
|
无KB_READ权限 | 400 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":[{"id":"tpl-001","knowledge_base_id":"kb-001","name":"客服质检重写模板","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括原文中需要重写的核心问题"}],"content":"# 问题摘要\n概括原文中需要重写的核心问题","created_by":"member-001","created_at":"2026-06-01T10:00:00Z","updated_at":"2026-06-01T10:00:00Z"}]}CreateKnowledgeReviewTemplate
接口说明
创建知识评审重写模板。name必填、KB内唯一、≤128字符;sections必填,1-15条;每个section的title必填非空且单行,guidance必填非空且允许多行但不允许空行,level可选且范围1-3、默认1。每个知识库最多5个活跃模板,超过5个、名称重复或章节校验失败时返回400;is_default=true时清除同KB其他默认模板。需要该KB的KB_WRITE权限。
请求语法
POST /v1/knowledge/review_templates?knowledge_base_id={knowledge_base_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID(Query参数) |
|
name | string | 是 | 模板名称,≤128字符,KB内唯一 |
|
is_default | boolean | 否 | 是否设为KB默认模板,缺省false;true时清除同KB其他默认模板 |
|
sections | array | 是 | 章节列表,1-15条,按文档顺序排列 | 见下表 |
sections数组元素:
名称 | 类型 | 必填 | 描述 | 示例值 |
level | integer | 否 | 标题层级,1-3,缺省1 |
|
title | string | 是 | 章节标题,去空白后非空,单行 |
|
guidance | string | 是 | 撰写指引,去空白后非空,允许多行但不允许空行 |
|
校验规则与错误语义
条件 | HTTP | errorMessage |
KB不存在或不属于当前workspace | 400 |
|
无KB_WRITE权限 | 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
KB内活跃模板已达5个 | 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
| 400 |
|
渲染后Markdown超过65536字符 | 400 |
|
渲染-解析roundtrip不一致 | 400 |
|
title与guidance会被逐行去除首尾空白后归一化落库,返回值是归一化后的结果。
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
id | string | 新建模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 模板名称(去空白后) |
|
is_default | boolean | 是否为KB默认模板 |
|
sections | array | 结构化章节数组,元素字段同上文「sections数组元素」 | 见示例 |
content | string | 服务端渲染后的Markdown模板原文 |
|
created_by | string | 创建人member ID,服务端注入 |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
示例
请求体:
{"name":"客服质检重写模板","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括原文中需要重写的核心问题"},{"level":2,"title":"建议改写","guidance":"输出可直接入库的重写后内容"}]}正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"id":"tpl-001","knowledge_base_id":"kb-001","name":"客服质检重写模板","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括原文中需要重写的核心问题"},{"level":2,"title":"建议改写","guidance":"输出可直接入库的重写后内容"}],"content":"# 问题摘要\n概括原文中需要重写的核心问题\n\n## 建议改写\n输出可直接入库的重写后内容","created_by":"member-001","created_at":"2026-06-01T10:00:00Z","updated_at":"2026-06-01T10:00:00Z"}}GetKnowledgeReviewTemplate
接口说明
返回模板详情;不存在时返回200且data=null。需要该KB的KB_READ权限。
请求语法
GET /v1/knowledge/review_templates/detail?knowledge_base_id={knowledge_base_id}&template_id={template_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID |
|
template_id | string | 是 | 模板ID |
|
返回参数(data字段内)
模板不存在、不属于该KB或已软删时,data 为 null(HTTP仍为200、errorCode仍为0)。存在时字段如下:
名称 | 类型 | 描述 | 示例值 |
id | string | 模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 模板名称 |
|
is_default | boolean | 是否为KB默认模板 |
|
sections | array | 结构化章节数组,元素字段同上文「sections数组元素」 | 见示例 |
content | string | 服务端渲染后的Markdown模板原文 |
|
created_by | string | 创建人member ID |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
KB不存在或不属于当前workspace | 400 |
|
无KB_READ权限 | 400 |
|
模板不存在 | 200 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"id":"tpl-001","knowledge_base_id":"kb-001","name":"客服质检重写模板","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括原文中需要重写的核心问题"}],"content":"# 问题摘要\n概括原文中需要重写的核心问题","created_by":"member-001","created_at":"2026-06-01T10:00:00Z","updated_at":"2026-06-01T10:00:00Z"}}模板不存在:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":null}UpdateKnowledgeReviewTemplate
接口说明
按template_id更新模板名称、章节或默认标记。三个body字段均为可选、按需部分更新:name省略或为空白时不改名,改名需保持KB内唯一;sections传入非空数组时整体替换并重建模板内容,省略或传空数组时保留原章节;is_default=true时清除KB内其他默认标记并把本模板设为默认,显式传false时取消本模板的默认标记,省略时不动。请求体本身不可为null。模板不存在返回400。需要该KB的KB_WRITE权限。
请求语法
PUT /v1/knowledge/review_templates?knowledge_base_id={knowledge_base_id}&template_id={template_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID(Query参数) |
|
template_id | string | 是 | 模板ID(Query参数) |
|
name | string | 否 | 模板名称,≤128字符,KB内唯一;省略或空白时保持原名 |
|
is_default | boolean | 否 | true时设为默认并清除同KB其他默认模板;false时取消当前模板默认标记;省略时不变更 |
|
sections | array | 否 | 章节列表,1-15条,按文档顺序排列;传入非空数组时整体替换章节并重建模板内容,省略或空数组时保持原章节 | 见下表 |
sections数组元素:
名称 | 类型 | 必填 | 描述 | 示例值 |
level | integer | 否 | 标题层级,1-3,缺省1 |
|
title | string | 是 | 章节标题,去空白后非空,单行 |
|
guidance | string | 是 | 撰写指引,去空白后非空,允许多行但不允许空行 |
|
校验规则与错误语义
条件 | HTTP | errorMessage |
请求体缺失 | 400 |
|
KB不存在或不属于当前workspace | 400 |
|
无KB_WRITE权限 | 400 |
|
模板不存在、不属于该KB或已软删 | 400 |
|
| 400 |
|
新 | 400 |
|
| 400 | 同 CreateKnowledgeReviewTemplate 的对应错误信息 |
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
id | string | 模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 更新后的模板名称 |
|
is_default | boolean | 更新后的默认标记 |
|
sections | array | 更新后的结构化章节数组,元素字段同上表 | 见示例 |
content | string | 重建后的Markdown模板原文 |
|
created_by | string | 创建人member ID(不随更新变化) |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
示例
请求体:
{"name":"客服质检重写模板 v2","sections":[{"level":1,"title":"问题摘要","guidance":"概括问题"}]}正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"id":"tpl-001","knowledge_base_id":"kb-001","name":"客服质检重写模板 v2","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括问题"}],"content":"# 问题摘要\n概括问题","created_by":"member-001","created_at":"2026-06-01T10:00:00Z","updated_at":"2026-06-01T10:10:00Z"}}DeleteKnowledgeReviewTemplate
接口说明
软删指定模板(status=deleted、清空内容、name改写规避唯一键冲突),重复删除幂等。需要该KB的KB_WRITE权限。
请求语法
DELETE /v1/knowledge/review_templates?knowledge_base_id={knowledge_base_id}&template_id={template_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID |
|
template_id | string | 是 | 模板ID |
|
删除语义
项 | 行为 |
删除方式 | 软删除: |
名称墓碑化 |
|
幂等性 | 模板不存在或已软删时静默返回 |
默认标记 | 软删不显式清除 |
与评审记录删除的差异 | 评审记录(DeleteReview/BatchDeleteReviews)为物理删除,模板为软删除 |
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
KB不存在或不属于当前workspace | 400 |
|
无KB_WRITE权限 | 400 |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
deleted | boolean | 是否已删除,固定为 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"deleted":true}}SetDefaultKnowledgeReviewTemplate
接口说明
将指定模板设为KB默认评审重写模板(同一事务内清除同KB其他模板的默认标记)。需要该KB的KB_WRITE权限。
请求语法
POST /v1/knowledge/review_templates/set_default?knowledge_base_id={knowledge_base_id}&template_id={template_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID |
|
template_id | string | 是 | 模板ID |
|
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
KB不存在或不属于当前workspace | 400 |
|
无KB_WRITE权限 | 400 |
|
模板不存在、不属于该KB或已软删 | 400 |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
id | string | 模板ID |
|
knowledge_base_id | string | 知识库ID |
|
name | string | 模板名称 |
|
is_default | boolean | 设置后固定为 |
|
sections | array | 结构化章节数组,元素字段同上文「sections数组元素」 | 见示例 |
content | string | 服务端渲染后的Markdown模板原文 |
|
created_by | string | 创建人member ID |
|
created_at | string | 创建时间,UTC Z格式 |
|
updated_at | string | 更新时间,UTC Z格式 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"id":"tpl-001","knowledge_base_id":"kb-001","name":"客服质检重写模板","is_default":true,"sections":[{"level":1,"title":"问题摘要","guidance":"概括原文中需要重写的核心问题"}],"content":"# 问题摘要\n概括原文中需要重写的核心问题","created_by":"member-001","created_at":"2026-06-01T10:00:00Z","updated_at":"2026-06-01T10:00:00Z"}}ClearDefaultKnowledgeReviewTemplate
接口说明
清除KB内所有模板的is_default标记,运行期注入回落「无模板」行为。KB内本就没有默认模板时也返回成功(幂等)。需要该KB的KB_WRITE权限。
请求语法
DELETE /v1/knowledge/review_templates/default?knowledge_base_id={knowledge_base_id}请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
knowledge_base_id | string | 是 | 知识库ID |
|
错误语义
条件 | HTTP | errorMessage |
| 400 | 缺少必填参数 |
KB不存在或不属于当前workspace | 400 |
|
无KB_WRITE权限 | 400 |
|
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
cleared | boolean | 是否已清除默认标记,固定为 |
|
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"cleared":true}}ReviewSettings
评审设置是workspace维度的单行配置(knowledge_review_settings.workspace_id 唯一键),workspace由API Key解析注入。读写均不要求管理员角色。
GetReviewSettings
接口说明
获取当前工作空间的知识评审策略设置。使用统一信封结构返回。workspace尚未配置过时,按默认值构造响应但不落库,此时 created_at 与 updated_at 为 null。
请求语法
GET /v1/knowledge/reviewSettings请求参数
无。
返回参数(data字段内)
名称 | 类型 | 描述 | 示例值 |
workspace_id | string | 工作空间ID |
|
high_threshold | float | 自动通过阈值(置信度高于此分数自动入库;低于此分数且开启重写时触发文档重写) |
|
rewrite_enabled | boolean | 是否开启文档重写 |
|
conflict_detection_enabled | boolean | 是否开启冲突检测 |
|
rewrite_auto_ingest_enabled | boolean | 重写文档是否自动入库 |
|
logic_rewrite_threshold | float | 逻辑重写触发阈值(已弃用:重写改为置信度低于 |
|
noise_rewrite_threshold | float | 噪音重写触发阈值(已弃用:同上) |
|
max_rewrite_iterations | integer | 最大重写迭代次数 |
|
created_at | string | 创建时间;从未配置过时为 |
|
updated_at | string | 更新时间;从未配置过时为 |
|
未配置时的默认值
字段 | 默认值 | 来源 |
high_threshold |
| 系统默认值 |
rewrite_enabled |
| 服务层构造默认设置时写入 |
conflict_detection_enabled |
| 服务层构造默认设置时写入 |
rewrite_auto_ingest_enabled |
| 实体字段默认值 |
logic_rewrite_threshold |
| 系统默认值 |
noise_rewrite_threshold |
| 系统默认值 |
max_rewrite_iterations |
| 系统默认值 |
决策与重写触发规则
规则 | 行为 |
| 决策 |
| 决策 |
存在不可解决的自矛盾 | 无论置信度多高,决策强制 |
存在high级幻觉 | 无论置信度多高,决策强制 |
示例
正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":{"workspace_id":"ws-001","high_threshold":0.8,"rewrite_enabled":true,"conflict_detection_enabled":true,"rewrite_auto_ingest_enabled":false,"logic_rewrite_threshold":0.5,"noise_rewrite_threshold":0.3,"max_rewrite_iterations":3,"created_at":"2026-06-01T00:00:00Z","updated_at":"2026-06-01T10:00:00Z"}}UpdateReviewSettings
接口说明
更新当前工作空间的知识评审策略(部分更新语义,仅传入的字段被修改)。使用统一信封结构返回。workspace尚无配置行时首次调用即插入新行并对未传字段落默认值。
请求语法
PUT /v1/knowledge/reviewSettings请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
high_threshold | float | 否 | 自动通过阈值(同时作为文档重写的触发线:置信度低于此值且开启重写时触发) |
|
rewrite_enabled | boolean | 否 | 是否开启文档重写 |
|
conflict_detection_enabled | boolean | 否 | 是否开启冲突检测 |
|
rewrite_auto_ingest_enabled | boolean | 否 | 重写文档是否自动入库 |
|
logic_rewrite_threshold | float | 否 | 逻辑重写触发阈值(已弃用,不再参与触发) |
|
noise_rewrite_threshold | float | 否 | 噪音重写触发阈值(已弃用,不再参与触发) |
|
max_rewrite_iterations | integer | 否 | 最大重写迭代次数 |
|
返回参数
data 固定为 null,以信封 errorCode: 0 表示成功。更新后的完整配置需再调用 GetReviewSettings 获取。
示例
请求体:
{"high_threshold":0.85,"rewrite_auto_ingest_enabled":true}正常返回:
{"errorCode":0,"errorMessage":null,"requestId":"req-xxx","data":null}