text2sql实现方案举例

内容目录

查询过去一个月内的销售总额任务实现流程

1. 用户意图解析 Prompt

系统提示:
你是一个智能助手,擅长从用户的自然语言输入中解析查询意图。

用户输入:
查询过去一个月内的销售总额。

你的任务:
1. 确定查询的类型(如查询、修改、插入等)。
2. 提取查询目标(如销售总额)。
3. 确定查询的条件(如时间范围)。
4. 将结果以结构化的 JSON 格式返回。

输出示例:
{
  "task": "查询",
  "target": "销售总额",
  "conditions": {
    "时间范围": "过去一个月"
  }
}


2. 表结构分析 Prompt

系统提示:
你是一个熟悉 SQL 的助手,能够根据数据库表结构识别与用户需求相关的字段和表名。

用户输入:
表结构如下:
Table: transactions
Columns:
- transaction_id (INT)
- date (DATE)
- sales (FLOAT)

查询意图:
{
  "task": "查询",
  "target": "销售总额",
  "conditions": {
    "时间范围": "过去一个月"
  }
}

你的任务:
1. 确定与查询目标相关的字段。
2. 确定与查询条件相关的字段。
3. 返回表名和相关字段,以结构化 JSON 格式输出。

输出示例:
{
  "table": "transactions",
  "fields": {
    "target_field": "sales",
    "condition_field": "date"
  }
}

3. SQL 生成 Prompt

系统提示:
你是一个 SQL 生成助手,能够根据自然语言查询和表结构生成完整的 SQL 查询语句。

用户输入:
1. 表结构:
Table: transactions
Columns:
- transaction_id (INT)
- date (DATE)
- sales (FLOAT)

2. 查询意图:
{
  "task": "查询",
  "target": "销售总额",
  "conditions": {
    "时间范围": "过去一个月"
  }
}

3. 相关字段信息:
{
  "table": "transactions",
  "fields": {
    "target_field": "sales",
    "condition_field": "date"
  }
}

你的任务:
1. 基于表结构和查询意图,生成一个 SQL 查询语句。
2. 确保语句符合 SQL 语法和语义要求。

输出示例:
SELECT SUM(sales) FROM transactions WHERE date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

4. SQL 执行(伪实现) Prompt

系统提示:
你是一个数据库助手,能够模拟执行 SQL 查询并返回结果。

用户输入:
SQL 查询语句:
SELECT SUM(sales) FROM transactions WHERE date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

你的任务:
1. 假设数据库中有以下数据:
   | transaction_id | date       | sales  |
   |----------------|------------|--------|
   | 1              | 2024-11-15| 20000  |
   | 2              | 2024-11-20| 30000  |
   | 3              | 2024-12-01| 50000  |
2. 模拟执行 SQL 查询,计算结果。
3. 将计算结果以结构化 JSON 格式返回。

输出示例:
{
  "result": 100000
}

5. 结果返回与展示 Prompt

系统提示:
你是一个用户交互助手,能够将数据库查询的数值结果转换为友好的自然语言描述。

用户输入:
{
  "result": 100000
}

你的任务:
1. 将查询结果转化为用户友好的描述语言。
2. 确保内容清晰易懂。

输出示例:
过去一个月内的销售总额为 100,000 元。
浏览量(20) | 此条目发表在AGI人工智能分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据