URL
POST /v3/openapi/apps/[app_group_identity]/actions/knowledge-search
[app_group_identity]:表示應用程式名稱(需要指定應用程式名稱訪問,主要針對服務中的應用版本)。
以上 URL 省略了請求Header參數及編碼等因素。
以上 URL 中省略了訪問應用的 host 地址。
要求標頭構建可參考:v3 API 簽名機制
請求協議
HTTP
HTTP請求方式
POST
支援格式
JSON
查詢參數
參數 | 類型 | 必需 | 取值範圍 | 預設值 | 描述 |
text | String | 是 | 輸入的問題 | ||
session | String | 否 | 對話的session,設定了之後,會有多輪對話的功能 | ||
type | String | 否 | TEXT | 輸入問題的類型預設為文本 | |
stream | Boolean | 否 | false | 是否流式返回 | |
disable | Boolean | 否 | false | 是否不走chat模型 | |
attitude | String | 否 | normal | 對話內容的語氣,預設為normal normal:無
| |
rule | String | 否 | simple | 對話內容的詳細程度,預設為detailed
| |
noanswer | String | 否 | sorry | 無法回答問題時的回複,預設為sorry
| |
language | String | 否 | Chinese |
| |
role | Boolean | 否 | true | 開啟後,將定製回答的角色 | |
role_name | String | 否 | AI小助手 | 定製回答的角色,例如:AI小助手 | |
out_format | String | 否 | table | 輸出內容的形式,預設為text
| |
history_max | INT | 否 | 多輪對話歷史最大輪數,最大20輪 | ||
csi_level | String | 否 | none | 綠網配置
| |
link | Boolean | 否 | false | 控制模型產生的內容是否標識內容引用的來源
| |
filter | String | 否 | 召回時根據category欄位做過濾,預設為空白;filter使用樣本可參考:filter參數使用說明 | ||
sf | Float | 否 | [0,+∞) 越大越不相關 | 表示向量召回相似性閾值: 文檔召回預設值為1.3; 幹預資料召回預設值為0.3; 圖片召回預設值為1.0; | 召回的向量相關性 |
top_n | INT | 否 | (0, 50] | 5 | 文檔召回多少個文檔 |
formula | String | 否 | 預設為向量相似性 | ||
rerank_size | INT | 否 | 精排文檔數,預設不用設定,系統自己決定 | ||
operator | String | 否 | AND | 表示文本召回時,文本token之間的關係是OR,預設是AND | |
return_hits | Boolean | 否 | false | 是否在結果中返迴文檔召回的結果 | |
model | String | 否 | opensearch-qwen | 可選的LLM模型 新加坡地區:
| |
enable | Boolean | 否 | true | 控制是否對召回的結果用模型進行相關性的重排。
| |
query_extend | Boolean | false |
| ||
query_extend_num | INT | 5 | 表示擴充query的數量,預設值為5; |
請求體樣本:
{
"question" : {
"text" : "user question",
"session" : "對話的session,設定了之後,會有多輪對話的功能",
"type" : "TEXT"
},
"options": {
"chat": {
"disable" : false, # 是否不走chat模型,預設為false。
"stream" : false, # 是否流式返回,預設false。
"model" : "opensearch-qwen", # 選擇的LLM模型,可選項為 opensearch-qwen / opensearch-llama2-13b
"prompt_config" : { # 自訂prompt配置,可選
"key" : "value" # 配置內容因模型而異
},
"generate_config" : {
"repetition_penalty": 1.01,
"num_beams": 1,
"top_k": 50,
"top_p": 0.5,
"do_sample": true,
"temperature": 0.7
},
"history_max": 20 # 多輪對話歷史最大輪數,
"csi_level": "none", # 綠網配置
"link": false # 返回連結
},
"retrieve": {
"doc": {
"disable": false, # 是否需要關閉文檔召回,預設false。
"filter": "category=\"type\"", # 召回時根據category欄位做過濾,預設為空白
"sf": 1.3, # 向量召回閾值,預設1.3;閾值越大,文檔可能約不相關
"top_n": 5, # 文檔召回多少個文檔,預設是5個,取值返回(0, 50],
"formula" : "", #預設為向量相似性
"rerank_size" : 5, #精排文檔數,預設不用設定,系統自己決定
"operator":"OR" # 表示文本召回時,文本token之間的關係是OR,預設是AND
},
"entry": {
"disable": false, # 是否需要關閉人工幹預資料的召回,預設false。
"sf": 0.3 # 幹預資料召回的向量相關性,預設0.3
},
"image": {
"disable": false, # 是否需要關閉圖片資料的召回,預設false。
"sf": 1.0 # 圖片資料召回的向量相關性,預設1.0
},
"qp": {
"query_extend": false, # 是否需要對使用者query進行query擴充
"query_extend_num": 5 # 表示擴充query的數量,預設值為5
},
"return_hits": false # 是否在結果中返迴文檔召回的結果, 即response裡面的search_hits
},
"rerank" : {
"enable": true # 召回後是否使用大模型進行重排,預設為true
}
}
}
返回結果
參數 | 類型 | 描述 |
id | INT | 主鍵ID |
title | String | 文檔的標題 |
category | String | 類目名 |
url | String | 文檔連結 |
answer | String | 問答結果 |
type | String | 返回結果類型 |
scores | Array | 文檔內容分 |
code | String | 返回的錯誤碼 |
message | String | 返回的錯誤資訊 |
響應體樣本:
{
"request_id" : "abc123-ABC",
"result" : {
"data" : [
{
"answer" : "answer text",
"type" : "text",
"reference" : [
{"url" : "http://....","title":"doc title"}
]
},
{
"reference": [
{"id": "16","title": "測試標題","category": "測試類別目","url": "測試連結"}
],
"answer": "https://ecmb.bdimg.com/tam-ogel/-xxxx.jpg",
"type": "IMAGE"
}
],
"search_hits" : [ // 查詢請求中設定了options.retrieve.return_hits才會有
{
"fields" : {
"content" : "...."
"key1" : "value1"
},
"scores" : ["10000.1234"],
"type" : "doc"
},
{
"fields"{
"answer" : "...",
"key1" : "value1"
},
"scores" : ["10000.1234"],
"type" : "entry"
}
]
}
"errors" : [
{
"code" : "如果有錯誤,這裡填錯誤碼",
"message" : "如果有錯誤,這裡填錯誤資訊"
}
]
}