获取 AI 聊天响应
本文档将指导开发者如何通过 API 获取指定聊天会话中的 AI 响应内容,包括消息文本、生成的数据表以及相关元信息。
📌 场景说明
当用户向AI 数据助手发送问题后,系统会返回 AI 的回答及其生成的数据分析结果(如表格、图表)。为了获取这些响应内容,你需要调用如下两个 API:
- 获取某个聊天的所有消息(包括人类和 AI)
- 获取某条消息所关联的数据框(DataFrame)
✅ Step 1: 获取聊天消息列表
接口说明
GET /v1/chats/{chat_id}/messages
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
chat_id | string | 聊天 ID(必填) |
page | integer | 页码,默认 1 |
size | integer | 每页条数,默认 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_id | string | 来自 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 版或英文版?