历史版本2 :预处理配置 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
点击返回主目录:【目录】FineChatBI1. 概述编辑
1.1 应用场景
预处理配置是 FineChatBI 提供的企业级自定义能力接口,用于在用户提问后、系统回答前,对查询意图进行识别。
无需用户在智能问答界面手动选择“问数据/问知识/问思路”,由企业 AI 自动调度处理逻辑。
| 用户问题(示例) | 预处理识别意图(示例) |
|---|---|
| 毛利率计算公式 | 通过预处理自动识别为:问知识 注:需已配置企业知识库 知识库问答配置 |
| 为什么 Q2 销售额下降 | 通过预处理自动识别为:问思路 |
| 今年销售额是多少 | 通过预处理自动识别为:问数据 |
1.2 功能简介
用户开启预处理配置之后,可通过配置企业自有的意图解析接口,FineChatBI 可在回答前调用该接口对用户问题进行预处理,从而实现更精准的问答逻辑和更智能的响应行为。

2. 预处理配置编辑
2.1 接口概览
请求方式:POST
接口地址:企业自定义的接口地址
在「智能问答配置>其他配置」中打开「预处理配置」,输入企业自定义的接口地址。

2.2 入参结构
系统向企业预处理接口发送的请求数据。
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",}2.3 出参结构
企业预处理接口需返回的处理结果,用于告知系统意图改写结果。
出参数据结构如下(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",}2.4 示例场景
2.4.1 请求示例
业务场景说明:
用户输入:“每个月的销售额”
系统初始意图:用户手动选择了「问思路」(对应 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"};2.4.2 成功响应示例
企业预处理服务将用户提问意图强制识别为「问数据」(DataQuery)
const example: IOutputProps = { code: 200, data: "DataQuery", errorMsg: null}2.4.3 失败响应示例
除 200 外,其余均视为失败
const example: IOutputProps = { code: 404, data: null, errorMsg: "请求报错"} 3. 效果查看编辑


