1.自然语言问答获取数据接口

接口说明:

通过自然语言返回对应的数据结果

基本信息:

API /api/dash/chatBi/askData
Method POST

请求参数:

字段名称 参数类型 参数说明
token String 鉴权token,该用户必须有模型和项目的权限
projectId Int 项目ID
dataModelIds Arr 要问的模型ID列表
question String 问题
inspect Optional(String) 返回的内容类型,data表示仅数据,sql表示仅sql,all表示数据和sql,picture表示截图,默认all
options Optional(Object) 可选参数

options可选参数:

字段名称 参数类型 参数说明
pictureMaxWidth Optional(Int) inspect为picture时用来指定截图的最大宽度(单位为px),默认不限制宽度
pictureMaxHeight Optional(Int) inspect为picture时用来指定截图的最大高度(单位为px),默认不限制高度

示例输入:

{
    "projectId": 3,  //项目ID
    "dataModelIds": [3, 4], //模型 ID 列表,
    "question": "东北地区的销售额",  //问题
    "token": "xxx" //鉴权token,生成逻辑参考有数BI定制化文档
}

成功数据返回:

{
    "code": 200, //非200表示查询失败
    "message": "用户无权限", //非200 的情况下报错信息
    "result": {
        "answer": {
             "logicalSql": "select xxx", //逻辑 sql
             "physicalSql": "select xxx", //最后物理执行的SQL
             "structureExplain": "按照地区分组,计算销售额求和", //SQL解释
        },
        "fromDataModelId": 3, //选中哪个模型ID
        "hitfFeedback": 0, //是否命中反馈回答
        "isValid": true, //是否是有效答案
        "systemMessage" "调用大模型超时",
        "data": {
            "head": ["地区", "销售额"], //表头
            "body": [["东北", 1], ["华北", 2]], //二维数据,最多返回2万行
            "size": 2 //总行数
        },
        "logId": 65356, // 问答的唯一 ID,可用于点赞点踩
        "askCost": 5695, // 问题理解推理耗时(毫秒)
        "tableQueryCost": 5485, // 数据落库查询耗时(毫秒)
        "trustMode": true, // 是否是可信模式
        "tableQueryData": {}, // 可视化查询 tabelQuery  dsl,业务调用方一般不用关注
        "dataFilters": { //当前查询是否有行列权限作用
            "columnFilters": [], //列权限作用
            "rowFilters": [ //行权限作用
            {
                "$type": "ConditionFilter",
                "fieldName": "dimensions",
                "condition": {
                    "or": [
                        {
                            "$type": "ConditionFilter",
                            "fieldName": "dimensions",
                            "condition": {
                                "and": [
                                    {
                                        "$type": "DFilter",
                                        "filter": {
                                            "$type": "DiscreteDimensionFilter",
                                            "exclude": false,
                                            "select": [
                                                "东北",
                                                "中南",
                                                "华北"
                                            ]
                                        },
                                        "pill": {
                                            "field": "地区",
                                            "dataType": "String",
                                            "$type": "Dimension",
                                            "produced": "Existed",
                                            "alias": "地区",
                                            "granularity": "g0",
                                            "interpretation": "Discrete",
                                            "role": "Dimension",
                                            "tableId": 1,
                                            "tableName": "sheet1"
                                        }
                                    }
                                ]
                            },
                            "priority": 4
                        }
                    ]
                },
                "priority": 4
            }
            ]
        },
    }
}

示例输入(截图):

{
    "projectId": 3,  //项目ID
    "dataModelIds": [3, 4], //模型 ID 列表,
    "question": "东北地区的销售额",  //问题
    "token": "xxx", //鉴权token,生成逻辑参考有数BI定制化文档
    "inspect": "picture"  //进行截图
}

成功数据返回:

{
    "code": 200, //非200表示查询失败
    "message": "用户无权限", //非200 的情况下报错信息
    "result": {
        "dialogId": 36727,  //会话id
        "dialogLogId": 58891,  //单轮问答id
        "downloadLink": "http://..."  //图片下载地址
    }
}

2.点赞点踩接口

接口说明:

通过自然语言返回对应的数据结果

基本信息:

API /api/dash/chatBi/feedback
Method POST

请求参数:

字段名称 参数类型 参数说明
token String 鉴权token,该用户必须是有数系统里的域管理员
logId Int 问答的 id,参见 askData 接口返回的 logId
feedback Int 0 点踩, 1 点赞
feedbackDetail String(Optional) 反馈的内容,可选
{
    "logId": 123, // 问答的 id,参见 askData 接口返回的 logId
    "feedback": 0, // 0 点踩, 1 点赞,
    "feedbackDetail": "这个问题生成答案的不准确" // 反馈的内容,可选,
}

成功数据返回:

{
    "code": 200,
    "message": "", // 如果报错,则 code 不为 200,且有 message
    "result": "ok",
}

3.获取 chatBi 历史日志接口

接口说明:

获取 chatBi 历史日志接口

基本信息:

API /api/dash/chatBi/getDomainHistoryDialogs
Method GET

请求参数:

字段名称 参数类型 参数说明
token String 鉴权token,该用户必须是有数系统里的域管理员
domainId Int 域ID
beginTime String 开始时间
endTime String 结束时间
{
    "token": "1503575355359c4fdea8ec1683ed10edd91ae",
    "domainId": 12,
    "beginTime": "2023-07-19 00:00:00",
    "endTime": "2023-07-19 23:59:59"
}

成功数据返回:

{
    "code": 200,
    "result": [{
        "id": 9652,
        "question": "合同明细",  //问题
        "answer": "SELECT * FROM \"合同明细\";", //答案 SQL
        "createTime": "2023-07-19T02:34:29.000Z", //问答时间
        "dataModelId": 700289868,  //模型ID
        "isValid": 1,  //是否有效
        "creatorId": 12923,
        "triggerName": null,
        "creatorInfo": { //发起人用户信息
            "uniqueId": "xiaokang@corp.netease.com", //账号
            "email": "xiaokang@corp.netease.com", //邮箱
            "nick": "" //昵称
        }
    },
    {
        "id": 9651,
        "question": "合同明细金额",
        "answer": "SELECT * FROM \"合同明细\";",
        "createTime": "2023-07-19T02:34:23.000Z",
        "dataModelId": 700289868,
        "isValid": 1,
        "creatorId": 12923,
        "triggerName": null,
        "creatorInfo": {
            "uniqueId": "xiaokang@corp.netease.com",
            "email": "xiaokang@corp.netease.com",
            "nick": ""
        }
    }]
}