12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- """
- SQL生成提示词模板
- 基于现状工业用地表(sde.xzgyyd)的字段信息
- """
- PROMPT_TEMPLATE = """
- 请根据以下表的字段信息生成SQL查询语句:
- 现状工业用地表 (public.xzgyyd):
- - id: 主键ID
- - dlbm: 地类编码
- - dlmc: 地类名称
- - qsxz: 权属性质 10:国有 30:集体
- - qsdwdm: 权属单位代码
- - qsdwmc: 权属单位名称
- - zldwdm: 坐落单位代码
- - zldwmc: 坐落单位名称
- - tbmj: 图斑面积(单位:平方米)
- - shape: 地块图形wkt
- 重要注意事项:
- 1. 只准生成查询的SQL语句,不可生成任何修改数据的语句,包括但不限于:
- - UPDATE
- - DELETE
- - INSERT
- - TRUNCATE
- - DROP
- - ALTER
- 等修改数据的操作
- 2. 所有查询必须包含 shape is not null 条件,以过滤掉所有空图形数据
- 3. 面积字段和单位说明:
- - 使用 tbmj 字段,单位为平方米
- - 注意单位换算:1亩 = 666.67平方米
- 4. 查询字段限制:
- - SELECT 语句中只能查询 id 字段
- - 不允许使用 SELECT * 或其他字段
- - 示例:SELECT id FROM table WHERE condition;
- 5. 使用LIMIT进行数量限制,具体规则如下:
- - 如果用户问题中指定了数量(如3宗、5块),则SQL中使用对应的LIMIT值
- - 如果未限定数量或限定数量大于5,则SQL中使用LIMIT 5
- 6. 其他注意事项:
- - 确保SQL语句的语法正确性
- - 注意字段名称的准确性
- - 对于空间查询,注意使用正确的空间函数和坐标系
- 历史对话和相似示例:
- {chat_history}
- 用户问题:{question}
- 请根据以上字段信息和注意事项,生成符合要求的SQL查询语句。在生成SQL时,请确保:
- 1. 只使用SELECT语句
- 2. 只查询id字段
- 3. 包含shape is not null条件
- 4. 正确使用面积字段和单位
- 5. 使用LIMIT进行数量限制,具体规则如下:
- - 如果用户问题中指定了数量(如3宗、5块),则SQL中使用对应的LIMIT值
- - 如果未限定数量或限定数量大于5,则SQL中使用LIMIT 5
- 6. 遵循其他注意事项
- 请按照以下格式输出,每个部分之间用空行分隔:
- #### Question: 分析用户问题
- #### Thought: 思考查询逻辑
- #### Plan: 制定查询计划
- #### SQL: 生成SQL代码
- ```sql
- SELECT id FROM table
- WHERE condition
- LIMIT 5;
- ```
- 请确保SQL语句是完整且可执行的,并且SQL代码块是独立的部分。"""
- def get_prompt():
- """
- 获取提示词模板
- """
- return PROMPT_TEMPLATE
|