更新分段

更新指定分段的内容。版本基线用于避免覆盖较新的修改。

PATCH https://moi.matrixorigin.cn/newmoi/semantic-models/{model_id}/sources/{source_row_id}/segments/{segment_id}

调用前准备

查询文档详情,取得当前分段版本 ID 和索引版本作为基线。准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $MODEL_ID:知识库 ID。

  • $SOURCE_ROW_ID:来源记录 ID。

  • $SEGMENT_ID:要更新的分段 ID。

路径参数

参数

类型

说明

model_id

integer

知识库 ID。

source_row_id

string

来源记录 ID。

segment_id

string

要更新的分段 ID。

请求体

提交来源当前的版本基线,以及要更新的文本、OCR 文本或图片描述。

字段

类型

是否必填

说明

base_segment_version_id

string

调用前读取到的当前分段版本 ID。

base_index_version

integer

调用前读取到的当前索引版本。

content

string

更新后的文本内容。

ocr_text

string

更新后的 OCR 文本。

image_description

string

更新后的图片描述。

请求示例

curl -X PATCH "https://moi.matrixorigin.cn/newmoi/semantic-models/$MODEL_ID/sources/$SOURCE_ROW_ID/segments/$SEGMENT_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "base_segment_version_id": "<SEGMENT_VERSION_ID>",
    "base_index_version": <INDEX_VERSION>,
    "content": "<SEGMENT_CONTENT>"
  }'

成功响应

成功时返回 200 和更新后的来源文档快照。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "document": {
      "source": {
        "row_id": "src_01",
        "model_id": 401
      },
      "segment_status": {
        "available": true,
        "total": 2
      },
      "segment_versions": [
        {
          "version_id": "ver_02",
          "current": true,
          "chunk_count": 2
        }
      ],
      "segments": [
        {
          "segment_id": "seg_01",
          "segment_type": "text",
          "level": "chunk",
          "content": "更新后的文本",
          "enabled": true
        }
      ]
    }
  }
}

响应字段如下。

字段路径中的 [] 表示数组中的每一项。例如,data.document.segment_versions[].version_id 表示 data.document.segment_versions 数组中每一项的 version_id 字段。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.document

object

更新后的来源文档快照。

data.document.source.row_id

string

来源记录 ID。

data.document.segment_status

object

当前分段可用状态和总数。

data.document.segment_versions[].version_id

string

更新后的分段版本 ID。

data.document.segment_versions[].current

boolean

是否为当前分段版本。

data.document.segments[].segment_id

string

分段 ID。

data.document.segments[].content

string

更新后的分段文本;内容未返回时可能省略。

data.document.segments[].enabled

boolean

分段是否参与检索。

错误响应

{
  "code": "ErrConflict",
  "msg": "segment version conflict",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

路径 ID、请求体或分段版本基线无效。

重新读取文档后使用当前版本信息提交。

401

ErrUnauthorized

API Key 无效或已失效。

检查 API Key。

403

ErrForbidden

调用者没有更新该来源的权限。

检查工作区和对象授权。

404

ErrNotFound

知识库、来源或分段不存在,或当前调用者不可见。

重新读取文档确认 ID。

409

ErrConflict

当前版本已变化,服务拒绝写入。

读取最新文档后合并修改并重试。

500

ErrServer

服务未能更新分段。

保留脱敏后的响应信息后重试。

后续操作

查询文档详情确认更新结果。

最后更新于