預處理配置是 FineChatBI 提供的企業級自訂能力API,用於在使用者提問後、系統回答前,對查詢意圖進行識別。
無需使用者在智慧問答介面手動選擇“問資料/問知識/問思路”,由企業 AI 自動調度處理邏輯。
透過預處理自動識別為:問知識
注:需已配置企業知識庫 知識庫問答配置
使用者開啟預處理配置之後,可透過配置企業自有的意圖解析API,FineChatBI 可在回答前呼叫該API對使用者問題進行預處理,進而實現更精準的問答邏輯和更智慧的回應行為。
請求方式:POST
API地址:企業自訂的API地址
在「智慧問答配置>其他配置」中開啟「預處理配置」,輸入企業自訂的API地址。
系統向企業預處理API傳送的請求資料。
export interface IChatPost { sentence: ICutPost; isolatedConversation: boolean; queryType: QUERY_TYPE; chartType?: undefined; // 目前不指定 preview: false; // 目前為false sessionId:string;}export interface ICutPost { subjectId: string | null; // 主題id tokens: ICutProps[]; // 使用者輸入形成的陣列 query: string; // 使用者的正文輸入 editable: boolean; // 使用者有沒有顯式的指定模型 modelId: string | null;}export enum QUERY_TYPE { DataQuery = "DataQuery", AnalysisBreak = "AnalysisBreak", Knowledge = "Knowledge",}export interface ICutProps { // 詞塊的內容 text: string; // 詞塊的類型 type: CutPropsTypeEnum; // 這個詞塊是否可以被取代 editable: boolean; // 表示這個分詞結果還可能代表別的含義, 嵌套結構 similarList: ICutProps[]; // 這個詞塊的第一個字元在本句話中的位置 startIndex: number; // 這個詞塊的最後一個字元在本句話中的位置 endIndex: number; // 欄位名稱, 當type為維度、維度枚舉值或者指標時,此項為必填值 tableField?: string; // 表名稱, 當type為維度、維度枚舉值或者指標時,此項為必填值 tableId?: string; // 欄位id,這裏是分析思路配置的時候儲存的時候帶上的,其他情況下沒有 fieldId?: string | null;}export enum CutPropsTypeEnum { // 維度 門店,城市,省份 也就列名 @必要 DIMENSION = "DIMENSION", // 指標 @必要 METRIC = "METRIC", // 維度枚舉值 @必要 DIMENSION_ENUM = "DIMENSION_ENUM", // 日期維度, 如入庫時間, 出庫時間 DATE_DIMENSION = "DATE_DIMENSION", // 表名稱 TABLE_NAME = "TABLE_NAME", // 日期範圍, 如去年,今年, 2023年 DATE_RANGE = "DATE_RANGE", // 時間單位, 每年,每月 TIMEUNIT = "TIMEUNIT", // 數值 NUMBER = "NUMBER", // 聚合方式, 如求和 最大值 最小值 方差 AGGREGATE_TYPE = "AGGREGATE_TYPE", // 快速計算 如同比 環比 環比增長率 SWIFT_COMPUTE_TYPE = "SWIFT_COMPUTE_TYPE", // 計算符 大於 小於 > < OPERATOR = "OPERATOR", // 自訂詞 SLANG = "SLANG", ORIGIN = "ORIGIN", SPACE = "SPACE", DELETE = "DELETE", // 參數 PARAMETER = "PARAMETER", // 不清楚具體含義,如果不知道或者識別不出來, 就設為此值 UNK = "UNK", // 不知道具體含義,但是知道是名詞 UNK_NOUN = "UNK_NOUN", // 不知道具體含義,但是知道是動詞 UNK_VERB = "UNK_VERB", // 緊跟維度的維度枚舉值 STRING_FUNCTION_VALUE = "STRING_FUNCTION_VALUE", // 維度值 METRIC_VALUE = "METRIC_VALUE", // 指標值 DIMENSION_VALUE = "DIMENSION_VALUE",}
企業預處理API需傳回的處理結果,用於告知系統意圖改寫結果。
出參資料結構如下(200代表成功,其餘均視為失敗):
DataQuery:問資料
AnalysisBreak:問思路
Knowledge:問知識
interface IOutputProps { code: 200 | number; data: QUERY_TYPE | null; errorMsg: string | null;}export enum QUERY_TYPE { DataQuery = "DataQuery", AnalysisBreak = "AnalysisBreak", Knowledge = "Knowledge",}
業務場景說明:
使用者輸入:“每個月的銷售額”
系統初始意圖:使用者手動選擇了「問思路」(對應 querytype:"AnalysisBreak")
const example: IChatPost = { sentence: { editable: true, query: "每個月的銷售額", subjectId: "3cad4da2c74146369cd72f75ac6e6eab", modelId: "50abe6fba3c349db8b6c38ab8a455599,a57c6214610f4b59874f9cc34666c0e0,4695c29220d1417d819dd3db3d370df4", tokens: [ { tableField: "日期(年月日)", tableId: "a57c6214610f4b59874f9cc34666c0e0", text: "每個月", type: "TIMEUNIT", editable: true, similarList: [], startIndex: 0, endIndex: 2, fieldId: null, }, { tableField: "", tableId: "", text: "的", type: "UNK", editable: true, similarList: [], startIndex: 3, endIndex: 3, fieldId: null, }, { tableField: "銷售額", tableId: "a57c6214610f4b59874f9cc34666c0e0", text: "銷售額", type: "METRIC", editable: true, similarList: [], startIndex: 4, endIndex: 6, fieldId: null, }, ], }, isolatedConversation: false, queryType: "DataQuery", preview: false, sessionId: "06d7b2f347d"};
企業預處理服務將使用者提問意圖強制識別為「問資料」(DataQuery)
const example: IOutputProps = { code: 200, data: "DataQuery", errorMsg: null}
除 200 外,其餘均視為失敗
const example: IOutputProps = { code: 404, data: null, errorMsg: "請求報錯"}
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙