PingKai Logo下载

开始多轮 Chat2Query 对话

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

开始之前

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

步骤 1. 开始会话

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

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

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_id:string。平凯云 Starter 实例的唯一标识符。
  • database:string。数据库名称。
  • name:string。会话名称。

以下是一个响应示例:

{
    "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 对象:

  • question:string。用自然语言描述你想要的查询的问题。
  • feedback_answer_id:string。反馈答案 ID。此字段是可选的,仅用于反馈。
  • feedback_task_id:string。反馈任务 ID。此字段是可选的,仅用于反馈。
  • sql_generate_mode:string。生成 SQL 语句的模式。值可以是 direct 或 auto_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} 检查分析状态。