""" 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