页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

为了让用户在使用Smartbi自然语言查询的时候,可以自定义前端页面,我们提供了基于Java语言实现的RestFul API接口。本文主要就是介绍如何使用Smartbi AIChat的接口实现自己的前端页面。

1.2 适用场景

使用Smartbi NLAAIChat AIChat 提供的API适合以下场景开发:

  • 觉得Smartbi内置的对话界面不好看,可以使用Smartbi扩展包机制重新开发使用界面
  • 需要将对话嵌入到集团内部APP中,可以定制Android/IOS原生界面,或者嵌入自定义H5页面
  • 需要嵌入到其他的Web平台中,可以定制H5页面
  • 需要嵌入其聊天工具中(如:钉钉、微信等),可以定制符合聊天工具要求的页面
  • 其他使用场景,可以咨询Smartbi客服团队,获取支持

...

3.1.1 接口说明

名称

请求地址

http://smartbi-aichatAIChat-server:port/aiweb/api/v1/login

请求方式

POST

请求参数

userName

password

smartbiServer

casLoginUrl

loginMethod

...

3.2.1 接口说明

名称

请求地址

http://smartbi-aichatAIChat-server:port/aiweb/integration/api/v1/get_using_theme

请求方式

POST

请求参数

token

...

3.4.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/get_data_set_info_summary

请求方式

POST

请求参数

token

themeId

...

3.4.2 接口参数说明


URL参数名

说明

是否必填

输入参数

token

登陆NLA两种方式返回获得的token登陆AIChat返回获得的token

必填

themeId

数据模型ID

必填

返回值

{

    "code": 0,

    "result": {

        "id": "I8a8085ba0190fa36fa36ed470191065c84e70006",

        "name": "**证券NLA-**考核-20240731",

        "alias": "**证券NLA-**考核-20240731",

        "dimensions": {

            "考核日期维度": [

                "年月",

                "年"

            ],

            "分支机构维": [

                "所属考核组织类型",

                "所属分公司代码(考核)",

                "分公司名称",

                "所属分公司名称(考核)",

                "分组",

                "分支机构代码(实际)",

                "分支机构代码(考核)",

                "分支机构级别",

                "分支机构名称(实际)",

                "分支机构名称(考核)"

            ],

            "绩效考核指标": [

                "c_rank"

            ],

            "指标信息维": [

                "指标名称",

                "指标口径",

                "指标负责人",

                "指标细类"

            ]

        },

        "measures": {

            "绩效考核指标": [

                "排名",

                "得分",

                "完成值新",

                "完成值"

            ]

        },

        "recommendQuestions": null

    },

    "message": null,

    "token": "A381D523DD9C96754C2F40BA6365542F"

}


...

3.5.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/query

请求方式

POST

请求参数

token

txt

themeId

chartType

3.5.2 接口参数说明


URL参数名

说明

是否必填

输入参数

token

NLA两种登陆方法返回的tokenAIChat登陆方法返回的token

必填

txt

用户的查询问句,比如:今年的合同额

必填

themeId

Smartbi数据模型Id

必填

chartType

图形类型;默认使用系统选项中定义的图形类型

选填

返回值

{

    "code": 0,

    "result": {

        "currentRows": "",

        "currentPage": "",

        "rowsPerPage": "",

        "portletType":"",

        "html":"",

        "nl2sql":"",

         "llm":"",

         ...

    },

    "message": "",

    "token": ""

}


...

3.6.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/feedback

请求方式

POST

请求参数

tag

uuid

feedbackText

token

...


URL参数名

说明

是否必填

输入参数

tag

1-为正确,0-为错误

必填

uuid

query接口查询的问句返回的uuid唯一标识

必填

feedbackText

人工输入,反馈内容

必填

token

NLA两种登陆方法返回的tokenAIChat登陆方法返回的token

必填

返回值

{

    "code": 0,

    "result": null,

    "message": null,

    "token": "A381D523DD9C96754C2F40BA6365542F"

}

...


接口调用成功后,会将点赞点踩相关信息写入AIChat的数据库服务中对应表中:

 

3.6.3 接口返回说明

返回参数名

返回值说明

code

接口调用是否成功;大于等于0 - 表示成功;负数为错误码

message

错误描述,code=0 时,该内容为空

token

登录方法特有内容,这个非常重要,后续接口需要传递该值以验证登录

...

3.7.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/query_with_nl2sql

请求方式

POST

请求参数

table

nl2sql

chartType

token

...


URL参数名

说明

是否必填

输入参数

table

数据模型themeId

必填

nl2sql

query接口查询的问句返回的nl2sql的value值;注:需要将value值中转义符\剔除

必填

chartType

执行查询接口中附注的PortletType值;举例:ECHARTS_BAR

必填

token

NLA两种登陆方法返回的tokenAIChat登陆方法返回的token

必填

返回值

{

    "code": 0,

    "result": {

        "intentionType": null,

        "queryRecordIndex": null,

        "multiRecordSessionId": null,

        "uuid": null,

        "rowsCount": 0,

        "currentRows": 0,

        "currentPage": 0,

        "rowsPerPage": 50,

        "headers": null,

        "values": null,

        "realValues": null,

        "warnings": null,

        "html": "{"yAxis":{"fieldFormat":{"date":"","prefix":"","name":"<整型-默认值>","viewType":"TNUMBER","scale":1.0,"time":"","type":"INTEGER","suffix":"","decimal":0},"axisLabel":{"show":true},"type":"value"},"xAxis":{"fieldFormat":{"date":"","prefix":"","name":"<字符串-默认值>","viewType":"NONE","scale":1.0,"time":"","type":"STRING","suffix":"","decimal":0},"axisLabel":{"show":true},"data":["沪世纪"],"type":"category"},"color":["rgba(149,162,255,1)","rgba(250,128,128,1)","rgba(60,185,252,1)","rgba(255,192,118,1)","rgba(250,231,104,1)","rgba(135,232,133,1)","rgba(115,171,245,1)","rgba(203,155,255,1)","rgba(67,67,72,1)","rgba(144,237,125,1)","rgba(247,163,92,1)","rgba(128,133,233,1)"],"advanced":{"rowNotEmpty":true},"series":[{"fieldFormat":{"date":"","prefix":"","name":"<整型-默认值>","viewType":"TNUMBER","scale":1.0,"time":"","type":"INTEGER","suffix":"","decimal":0},"groupName":"GLOBAL_MARK","data":[{"displayValue":["沪世纪","813"],"tooltipInfo":[{"realValue":"沪世纪","fieldGroupType":"cols","realValueString":"沪世纪","label":"分支机构名称(考核)","value":"沪世纪","uniqueId":"8c4e629e045a44e3b3a79d69b34aafd2"},{"realValue":813,"fieldGroupType":"rows","realValueString":"813","label":"排名","value":"813","uniqueId":"3cfa25d8e1a74b7da592a7860c6efcda"}],"colIndex":1,"rowIndex":[0,0],"value":[0,813]}],"name":"排名","type":"bar","markLine":{"symbol":"none"},"yAxisIndex":0}],"tooltip":{"trigger":"item"},"seriesConfig":{"global":{"stack":false,"step":false,"smooth":false}},"chartEx":{"clasifyName":[{"data":"排名"}],"drillableFields":[],"outputRows":1000}}",

        "nl2sql": null,

        "nl2sqlDuration": 0,

        "nl2mdx": null,

        "portletType": "ECHARTS_BAR",

        "queryType": "PageQuery",

        "clientId": "fd768e86c2ff43a4ae663da42f38066b",

        "combinedQueryClientId": null,

        "question": null,

        "themeId": "I8a8085ba0190fa36fa36ed470191065c84e70006",

        "intentionParams": null,

        "resultTips": null,

        "interActionItems": null,

        "processing": null,

        "pageBO": null,

        "subTable": null,

        "llmReviseQuestion": null,

        "measureDescriptions": null,

        "nl2sqlStatus": null,

        "nl2sqlRecommendInfo": null,

        "intentionRecommendInfo": null,

        "jsonResult": null,

        "gptMql": null,

        "prompt": null,

        "llm": false,

        "num": false

    },

    "message": null,

    "token": "717261E64AEC5D904AA2410D127BFB27"

}


...

3.8.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/set_rows_per_page

请求方式

POST

请求参数

token

clientId

pageSize

dataSource

queryType

...

3.9.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/query_with_page

请求方式

POST

请求参数

token

clientId

page

dataSource

queryType

...

3.10 清除对话历史(开启新对话)

Smartbi NLA 是可以启用“多轮对话”和“单轮对话”的,具体操作方法在系统选项中配置,这里不详细描述。在启用多轮对话的时候,有时需要清空对话历史(也就是开启新的对话)。开启新对话需要使用该API实现。AIChat 是可以启用“多轮对话”和“单轮对话”的,具体操作方法在系统选项中配置,这里不详细描述。在启用多轮对话的时候,有时需要清空对话历史(也就是开启新的对话)。开启新对话需要使用该API实现。


3.10.1 接口说明

名称

请求地址

http://smartbi-nlaAIChat-server:port/aiweb/integration/api/v1/close_query

请求方式

POST

请求参数

token

...

3.11.1 页面集成方式一

名称

请求地址

http://smartbi-nlaAIChat-server:port/smartbi/vision/AIChatView2.html?question=今年各城市销量&userName=admin&password=admin

参数说明

question:问句,可以选填

userName:用户名

password:密码

请求URL:http://smartbi-nlaAIChat-server:port/smartbi/vision/AIChatView2.html?userName=admin&password=admin

...

3.11.2 页面集成方式二

名称

请求地址

http://smartbi-nlaAIChat-server:port/smartbi/vision/login.jsp?username=admin&password=admin&surl=/smartbi/smartbix/#/sdk

参数说明

userName:用户名

password: 密码

surl :/smartbi/smartbix/#/sdk

请求URL:http://smartbi-nlaAIChat-server:port/smartbi/vision/login.jsp?username=admin&password=admin&surl=/smartbi/smartbix/#/sdk

...