PushKnowledgeDocuments-文檔推送
OpenSearch-LLM智能問答版支持通過API的方式批量推送文檔。
URL
POST /v3/openapi/apps/[app_group_identity]/actions/knowledge-bulk
[app_group_identity]:表示應(yīng)用名(需要指定應(yīng)用名訪問,主要針對服務(wù)中的應(yīng)用版本)。
以上 URL 省略了請求Header參數(shù)及編碼等因素。
以上 URL 中省略了訪問應(yīng)用的 host 地址。
POST
請求參數(shù)
參數(shù) | 類型 | 位置 | 描述 |
app_group_identity | String | Path | 應(yīng)用名稱(AppName) |
Object | Body | 批量推送結(jié)構(gòu) |
Doc 的參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
cmd | String | 是 | 操作指令。 |
fields | Map | 是 | 字段組合 |
fields 的參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
id | Int | 是 | 主鍵ID |
title | String | 否 | 文檔標(biāo)題 |
url | String | 否 | 文檔的鏈接 |
content | String | 是 | 文檔的內(nèi)容 |
請求體示例:
1、上傳主表文檔
[
{
"cmd": "ADD",
"fields": {
"id": "13579",
"title": "Something interesting", //可選字段
"url": "https://www.aliyun.com", //可選字段
"content": "No, it's not."
}
},
{
"cmd": "DELETE",
"fields": {
"id": "2468"
}
}
]
上傳非結(jié)構(gòu)化文檔(pdf/doc/txt/html)
[
{
"cmd" : "URL/BASE64",
"fields": {
"id": "文檔id(可選)",
"type": "文件類型,pdf/doc/txt/html...",
"title": "文件名(可選)",
"content": "URL/Base64編碼數(shù)據(jù)",
"url": "鏈接(可選)"
}
}
]
注:URL僅支持OSS的通過ossClient.generatePresignedUrl生成的數(shù)據(jù)訪問URL
2、上傳輔表
[
{
"cmd" : "ADD/DELETE",
"fields": { # 數(shù)據(jù)體,根據(jù)表格schema定義
"key1": "valse1",
"key2": "valse2",
"key3": "valse3"
},
"table_name": "輔表表名" # 表名,空默認(rèn)為主表
}
]
cmd : 必選字段。定義該文檔的操作行為,可以為“add”、“delete”。建議一個請求中進(jìn)行批量更新操作,提高網(wǎng)絡(luò)交互及處理效率?!癮dd”表示新增文檔,如果該主鍵對應(yīng)文檔已經(jīng)存在,則會覆蓋原來文檔;“delete”表示刪除文檔,如果該主鍵對應(yīng)文檔已經(jīng)不存在,則認(rèn)為刪除成功。
fields : 必選字段。要操作的文檔內(nèi)容,主鍵字段必選,系統(tǒng)所有操作都是通過主鍵來進(jìn)行的。對于“delete”只需要提供文檔主鍵即可。
注意:最外層是JsonArray類型,支持多個文檔批量操作。
返回參數(shù)
參數(shù) | 類型 | 描述 |
errors | List | 錯誤內(nèi)容 |
status | String | status:執(zhí)行結(jié)果,OK為成功,F(xiàn)AIL為失敗,請根據(jù)返回錯誤碼進(jìn)行排查 |
request_id | String | 當(dāng)前請求的 request_id |
result | Boolean | 執(zhí)行成功返回該參數(shù),值為true,報錯不返回該參數(shù) |
total | Int | 上傳文檔的總數(shù) |
success | Int | 上傳成功文檔數(shù) |
failure | Int | 上傳失敗的文檔數(shù) |
failed_ids | Array | 上傳失敗的文檔id |
響應(yīng)體示例:
{
"request_id" : "abc123-ABC",
"result" : {
"total": 100,
"success": 50,
"failure": 50,
"failed_ids": [
"id1",
"id2",
"id3",
"..."
]
}
"errors" : [
{
"code" : "如果有錯誤,這里填錯誤碼",
"message" : "如果有錯誤,這里填錯誤信息"
}
]
}
注意事項
使用API/SDK推送數(shù)據(jù)時,應(yīng)用的字段名稱大小寫不敏感;
使用API/SDK推送數(shù)據(jù)有次數(shù)及大小限制,不同應(yīng)用限制不同,具體請參考使用限制描述;
數(shù)據(jù)上傳后請務(wù)必檢查返回值,并對相關(guān)錯誤碼進(jìn)行重試(尤其是3007錯誤),否則會出現(xiàn)數(shù)據(jù)丟失情況。同時,數(shù)據(jù)處理是異步的,系統(tǒng)返回“OK”后只表示系統(tǒng)接收數(shù)據(jù)成功,數(shù)據(jù)處理過程的錯誤會在控制臺錯誤信息中展示,請注意及時檢查;
POST的數(shù)據(jù)大小有限制,如果您上傳的文檔總量過大(編碼前2M),服務(wù)器將拒絕接收任何參數(shù),同時返回異常;
POST推送操作 body 部分的數(shù)據(jù)若包含中文必須要做 utf-8 編碼,Header中的Content-MD5 參數(shù)也一樣,在計算數(shù)據(jù) MD5 值前,必須要先進(jìn)行 utf-8 編碼,否則會出現(xiàn)推送報錯問題;