历史版本3 :预处理配置 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
icon点击返回主目录:【目录】FineChatBI

目录:

1. 概述编辑

1.1 应用场景

预处理配置是 FineChatBI 提供的企业级自定义能力接口,用于在用户提问后、系统回答前,对查询意图进行识别。

无需用户在智能问答界面手动选择“问数据/问知识/问思路”,由企业 AI 自动调度处理逻辑。

用户问题(示例)
预处理识别意图(示例)
毛利率计算公式

通过预处理自动识别为:问知

注:需已配置企业知识库 知识库问答配置

为什么 Q2 销售额下降通过预处理自动识别为:问思路
今年销售额是多少通过预处理自动识别为:问数据

1.2 功能简介

用户开启预处理配置之后,可通过配置企业自有的意图解析接口,FineChatBI 可在回答前调用该接口对用户问题进行预处理,从而实现更精准的问答逻辑和更智能的响应行为。

1747384310101836.png

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. 效果查看编辑