SafeQuestionPoll - 轮询问题结果

轮询查询指定问题的分析执行状态和结果。

接口说明

在通过 Text2InsightQuery 发起问题后,客户端需循环调用本接口获取分析进度和最终结果。每次调用返回当前已产生的所有

responses
responses
消息列表。

轮询策略

参数推荐值
轮询间隔2 秒
单次请求超时60 秒
总超时时间360 秒

终止条件

每次轮询时,取

responses
responses
数组最后一条消息的
dataType
dataType
,当值为以下之一时停止轮询:

  • finish
    finish
    — 分析正常完成
  • finish_stop
    finish_stop
    — 用户主动停止
  • error
    error
    — 执行出错

请求方式

POST /open/safe_question_poll?tenantId={tenantId}&userId={userId}&loginToken={loginToken}

请求参数

参数名位置类型是否必须说明
tenantIdQuery + BodyInteger租户 ID
userIdQuery + BodyInteger用户 ID
domainIdBodyInteger数据域 ID
questionIdBodyInteger问题 ID,通过 Text2InsightQuery 获取
loginTokenQuery + BodyString认证 Token

返回参数

参数名类型说明
successBoolean请求是否成功
data.responsesArray消息列表,包含分析过程中产生的所有消息
data.responses[].idString消息 ID
data.responses[].dataTypeString消息类型,见下方说明
data.responses[].messageString消息文本内容
data.responses[].modelResObject模型返回的原始结构
data.responses[].modelRes.codeInteger模型响应码
data.responses[].modelRes.dataObject模型返回的业务数据

消息类型说明(dataType)

类型说明关键字段
message普通消息,可能包含知识详情或执行过程日志message, knowledgeData
notify进度通知(如"正在思考")message
summary分析总结,包含最终答案summaryData
metric指标计算结果message, metricDsl, physicalMetricDsl
echarts_plus图表数据message, chartType, columns, calculateSql
code代码块(如生成的 SQL)message, codeType, code
finish分析正常结束message
finish_stop用户主动停止message
error执行出错message

字段读取优先级

responses
responses
中每条消息的业务字段可能出现在不同层级,读取优先级如下:

  1. 顶层:
    response[fieldName]
    response[fieldName]
  2. modelRes:
    response.modelRes.data[fieldName]
    response.modelRes.data[fieldName]
  3. rawRes:解析
    response.rawRes
    response.rawRes
    (JSON 字符串)后取
    data[fieldName]
    data[fieldName]

请求示例

POST /open/safe_question_poll Content-Type: application/json { "tenantId": 10, "userId": 1, "domainId": 106, "questionId": 34339, "loginToken": "eyJhbGciOiJIUzI1NiJ9..." }

返回示例

分析进行中

{ "success": true, "data": { "responses": [ { "id": "745601", "dataType": "notify", "message": "Thinking next step" } ] } }

分析完成(包含指标结果)

{ "success": true, "data": { "responses": [ { "id": "745618", "dataType": "message", "message": "Viewed knowledge details: 北京二手房10年交易数据", "modelRes": { "code": 200, "data": { "dataType": "message", "message": "Viewed knowledge details: 北京二手房10年交易数据", "knowledgeData": { "detailItems": [ { "id": 51, "keys": "北京二手房10年交易数据", "value": "{\"desc\": \"如果问题中没有明确指明时间,就使用昨天\", \"type\": \"time_range_func\"}", "type": "TEXT" } ] } } } }, { "id": "745620", "dataType": "metric", "message": "Metric: 过去6年各区总成交金额", "modelRes": { "code": 200, "data": { "dataType": "metric", "message": "Metric: 过去6年各区总成交金额", "metricDsl": "{\"useDefaultLimit\":true,\"metricId\":{\"metricType\":\"SQL_SIMPLE\",\"id\":631},\"name\":\"过去6年各区总成交金额\"}", "physicalMetricDsl": "{\"useDefaultLimit\":true,\"metricId\":{\"metricType\":\"SQL_SIMPLE\",\"id\":631}}" } } }, { "id": "745625", "dataType": "echarts_plus", "message": "北京二手房过去6年各区总成交金额 (2015-2021)", "modelRes": { "code": 200, "data": { "dataType": "echarts_plus", "chartType": "ECHARTS", "columns": "区域 (STRING), 总成交金额(万元) (LONG)", "calculateSql": "SELECT region AS 区域, SUM(transaction_price) AS 总成交金额 FROM ... GROUP BY region" } } }, { "id": "745630", "dataType": "summary", "message": "Analysis complete", "modelRes": { "code": 200, "data": { "dataType": "summary", "summaryData": "**北京二手房过去6年各区总成交金额:**\n- 朝阳区:10349.27 亿元\n- 海淀区:5850.22 亿元\n..." } } }, { "id": "745631", "dataType": "finish", "message": "Analysis complete" } ] } }

错误码

错误码说明
success=falseToken 无效、questionId 不存在或权限不足

相关文档

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询