📣

TiDB Cloud Serverless 现已更名为
Starter
!此页面由 AI 自动翻译,英文原文请见
此处。

开始多轮 Chat2Query 对话

从 v3 版本开始,Chat2Query API 支持通过调用会话相关的端点来进行多轮对话。你可以使用 /v3/chat2data 端点返回的 session_id 在下一轮对话中继续会话。

开始之前

在开始多轮 Chat2Query 对话之前,请确保你已经具备以下条件:

步骤 1. 开始会话

要开始会话,你可以调用 Chat2Query Data App 的 /v3/sessions 端点。

以下是调用此端点的通用代码示例。

提示:

要获取特定端点的代码示例,请在 Data App 左侧窗格中点击端点名称,然后点击 Show Code Example。更多信息,请参见获取端点的示例代码

curl --digest --user ${PUBLIC_KEY}:${PRIVATE_KEY} --request POST 'https://<region>.data.tidbcloud.com/api/v1beta/app/chat2query-<ID>/endpoint/v3/sessions'\ --header 'content-type: application/json'\ --data-raw '{ "cluster_id": "10140100115280519574", "database": "sp500insight", "name": "<Your session name>" }'

在上述代码中,请求体是一个具有以下属性的 JSON 对象:

  • cluster_idstring。TiDB 集群的唯一标识符。
  • databasestring。数据库名称。
  • namestring。会话名称。

以下是一个响应示例:

{ "code": 200, "msg": "", "result": { "messages": [], "meta": { "created_at": 1718948875, // 表示会话创建时间的 UNIX 时间戳 "creator": "<Your email>", // 会话创建者 "name": "<Your session name>", // 会话名称 "org_id": "1", // 组织 ID "updated_at": 1718948875 // 表示会话更新时间的 UNIX 时间戳 }, "session_id": 305685 // 会话 ID } }

步骤 2. 使用会话调用 Chat2Data 端点

开始会话后,你可以调用 /v3/sessions/{session_id}/chat2data 在下一轮对话中继续会话。

以下是通用代码示例:

curl --digest --user ${PUBLIC_KEY}:${PRIVATE_KEY} --request POST 'https://eu-central-1.data.tidbcloud.com/api/v1beta/app/chat2query-YqAvnlRj/endpoint/v3/sessions/{session_id}/chat2data'\ --header 'content-type: application/json'\ --data-raw '{ "question": "<Your question to generate data>", "feedback_answer_id": "", "feedback_task_id": "", "sql_generate_mode": "direct" }'

在上述代码中,请求体是一个具有以下属性的 JSON 对象:

  • questionstring。用自然语言描述你想要的查询的问题。
  • feedback_answer_idstring。反馈答案 ID。此字段是可选的,仅用于反馈。
  • feedback_task_idstring。反馈任务 ID。此字段是可选的,仅用于反馈。
  • sql_generate_modestring。生成 SQL 语句的模式。值可以是 directauto_breakdown。如果设置为 direct,API 将直接根据你提供的 question 生成 SQL 语句。如果设置为 auto_breakdown,API 将把 question 分解为多个任务,并为每个任务生成 SQL 语句。

以下是一个响应示例:

{ "code": 200, "msg": "", "result": { "job_id": "d96b6fd23c5f445787eb5fd067c14c0b", "session_id": 305685 } }

此响应与 /v3/chat2data 端点的响应类似。你可以通过调用 /v2/jobs/{job_id} 端点来检查作业状态。更多信息,请参见通过调用 /v2/jobs/{job_id} 检查分析状态

文档内容是否有帮助?