跳到主要内容

获取 AI 聊天响应

本文档将指导开发者如何通过 API 获取指定聊天会话中的 AI 响应内容,包括消息文本、生成的数据表以及相关元信息。

📌 场景说明

当用户向AI 数据助手发送问题后,系统会返回 AI 的回答及其生成的数据分析结果(如表格、图表)。为了获取这些响应内容,你需要调用如下两个 API:

  1. 获取某个聊天的所有消息(包括人类和 AI)
  2. 获取某条消息所关联的数据框(DataFrame)

✅ Step 1: 获取聊天消息列表

接口说明

GET /v1/chats/{chat_id}/messages

参数说明

参数名类型说明
chat_idstring聊天 ID(必填)
pageinteger页码,默认 1
sizeinteger每页条数,默认 50

示例请求

GET https://api.asktable.com/v1/chats/chat_1kZOsPmqa5bOp7NU5cr6qg/messages
Authorization: Bearer <your_token>

示例返回

{
"items": [
{
"id": "msg_17xgEdEk0NDJ6PSjEi9BDh",
"role": "human",
"content": {
"text": "各省GDP统计"
}
},
{
"id": "msg_1aMWDT8jPvxXiKw2UPHh2i",
"role": "ai",
"content": {
"text": "根据查询结果,各省的GDP统计如下:..."
},
"dataframe_ids": ["df_2YI69gN3UQRKGy0cD0kEce"]
}
],
"total": 2
}

说明:
返回结果中 role: "ai" 的为 AI 回答,字段 content.text 为文本内容;
若该条消息生成了数据分析结果,dataframe_ids 中会包含对应的数据框 ID。


✅ Step 2: 获取 AI 生成的 DataFrame 详情

接口说明

GET /v1/dataframes/{dataframe_id}

参数说明

参数名类型说明
dataframe_idstring来自 AI 消息的 ID

示例请求

GET https://api.asktable.com/v1/dataframes/df_2YI69gN3UQRKGy0cD0kEce
Authorization: Bearer <your_token>

示例返回

{
"title": "GDP统计",
"sql": "SELECT ... ORDER BY \"GDP_万亿\" DESC",
"header": [
{ "key": "省份", "label": "省份" },
{ "key": "gdp", "label": "GDP总量(万亿)" },
{ "key": "population", "label": "人口(万)" },
{ "key": "area", "label": "面积(万平方公里)" }
],
"content": [
{ "省份": "广东", "gdp": 9.73, "population": 11346, "area": 17.97 },
{ "省份": "江苏", "gdp": 9.26, "population": 8051, "area": 10.72 }
],
"chart_options": {
"bar": { "xAxisKey": "省份", "columns": [{ "key": "gdp", "label": "GDP" }] },
"pie": { "nameKey": "省份", "columns": [{ "key": "gdp", "label": "GDP" }] },
"default": "bar"
}
}

说明:

  • title 表示数据表名称
  • sql 为生成的查询语句
  • content 是查询结果的前几行预览数据
  • chart_options 提供了推荐可视化方式(如柱状图、饼图)

🧩 示例展示

当用户提问:“各省GDP统计”,系统返回的 AI 消息如下:

  • 文本回答:
    根据查询结果,各省的GDP统计如下:
    1. 广东省:GDP为9.73万亿元,人口为11346万...
  • 数据分析结果:
    {
    "省份": "广东",
    "gdp": 9.73,
    "population": 11346,
    "area": 17.97
    }

你可使用此数据生成图表,或嵌入前端页面展示。


🛠️ 小结

步骤API 调用
获取消息列表GET /v1/chats/{chat_id}/messages
获取数据详情GET /v1/dataframes/{dataframe_id}

如需进一步接入,也可以使用 POST /v1/chats/{chat_id}/messages 来发送问题并获取新回答,详见「发送问题接口文档」。

是否需要我顺带帮你写一份 Markdown 版或英文版?