Switch the current segment version

Switch an existing segment version to the source current version.

PATCH https://moi.matrixorigin.cn/newmoi/semantic-models/{model_id}/sources/{source_row_id}/segment-versions/{version_id}/current

Preparation before calling

First query the document details, obtain the current segment version ID and index version as the baseline, and confirm the segment version ID to be switched to. Prepare a personal access token and target workspace ID that has access to the target workspace.

The example below uses:

  • $AI_STUDIO_API_KEY: The actual personal access token, passed through the X-API-Key Header.

  • $WORKSPACE_ID: Target workspace ID, passed through X-Workspace-ID Header.

  • $MODEL_ID: Knowledge Base ID.

  • $SOURCE_ROW_ID: Source record ID.

  • $VERSION_ID: The segment version ID to switch to.

Request example

curl -X PATCH "https://moi.matrixorigin.cn/newmoi/semantic-models/$MODEL_ID/sources/$SOURCE_ROW_ID/segment-versions/$VERSION_ID/current" \
  -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>
  }'

Path parameters

Parameters

Type

Description

model_id

integer

Knowledge base ID.

source_row_id

string

Source record ID.

version_id

string

The segment version ID to switch to.

Request body

The current version baseline of the commit source. version_id points to the version to switch to and should not override the baseline field.

Field

Type

Required

Description

base_segment_version_id

string

Yes

The current segment version ID read before the call.

base_index_version

integer

Yes

The current index version read before the call.

Successful response

Returns 200 and the updated source document snapshot on success.

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "document": {
      "source": {
        "row_id": "src_01",
        "model_id": 401
      },
      "segment_status": {
        "available": true,
        "total": 2
      },
      "current_segment_version_id": "ver_01",
      "current_index_version": 1,
      "segment_versions": [
        {
          "version_id": "ver_01",
          "current": true,
          "index_version": 1
        },
        {
          "version_id": "ver_02",
          "current": false,
          "index_version": 2
        }
      ],
      "segments": [
        {
          "segment_id": "seg_01",
          "enabled": true
        }
      ]
    }
  }
}

The response fields are as follows.

Field

Type

Description

code

string

OK on success.

msg

string

OK on success.

data.document

object

Snapshot of the source document after switching.

data.document.current_segment_version_id

string

ID of the current segment version that has been switched to.

data.document.current_index_version

integer

Current index version.

data.document.segment_versions

object[]

All segmented versions.

data.document.segment_versions[].version_id

string

Segment version ID.

data.document.segment_versions[].current

boolean

Whether it is the current version.

data.document.segments

object[]

New segment in current version.

In field paths, [] means each item in an array. For example, data.document.segment_versions[].version_id is the version_id field of each item in data.document.segment_versions.

Error response

{
  "code": "ErrNotFound",
  "msg": "resource not found",
  "data": null
}

Common HTTP errors

HTTP status code

error code

Common causes

Recommended actions

400

ErrParamInvalid

Invalid path ID or staging version baseline.

Use current baseline after rereading document.

401

ErrUnauthorized

The API Key is invalid or has expired.

Check API Key.

403

ErrForbidden

The caller does not have permission to update the source.

Check workspace and object authorization.

404

ErrNotFound

The repository, source, or staging version does not exist or is not visible to the current caller.

Reconfirm the path ID.

409

ErrConflict

The current segment version has changed.

Retry after reading the latest document.

500

ErrServer

The service failed to switch the current version.

Keep the desensitized response information and try again.

Follow-up operations

Query document details Confirm that the current segment version has been switched.

Last updated on