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 theX-API-KeyHeader.$WORKSPACE_ID: Target workspace ID, passed throughX-Workspace-IDHeader.$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 |
|---|---|---|
|
integer |
Knowledge base ID. |
|
string |
Source record 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 |
|---|---|---|---|
|
string |
Yes |
The current segment version ID read before the call. |
|
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 |
|---|---|---|
|
string |
|
|
string |
|
|
object |
Snapshot of the source document after switching. |
|
string |
ID of the current segment version that has been switched to. |
|
integer |
Current index version. |
|
object[] |
All segmented versions. |
|
string |
Segment version ID. |
|
boolean |
Whether it is the current version. |
|
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 |
|---|---|---|---|
|
|
Invalid path ID or staging version baseline. |
Use current baseline after rereading document. |
|
|
The API Key is invalid or has expired. |
Check API Key. |
|
|
The caller does not have permission to update the source. |
Check workspace and object authorization. |
|
|
The repository, source, or staging version does not exist or is not visible to the current caller. |
Reconfirm the path ID. |
|
|
The current segment version has changed. |
Retry after reading the latest document. |
|
|
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.