""" SQL生成提示词模板 基于控制性详细规划表(sde.kzxxxgh)和公告地块表(sde.ecgap_klyzy)的字段信息 """ PROMPT_TEMPLATE = """ 请根据以下两个表的字段信息生成SQL查询语句: 1. 控制性详细规划表 (sde.kzxxxgh): - id: 主键ID - xzqmc: 所属区县(行政区代码) - xzqdm: 行政区代码(6位,前2位代表省,前4位代表市,前6位代表区县) - dymc: 单元名称 - yddm: 用地代码 - ydxz: 用地性质 - ydmj: 用地面积(单位:公顷) - pfwh: 批复文号 - pfsj: 批复时间 - rjlsx: 容积率上限 - rjlxx: 容积率下限 - jzmdsx: 建筑密度上限 - jzmdxx: 建筑密度下限 - jzgdsx: 建筑高度上限 - jzgdxx: 建筑高度下限 - ldlxx: 绿地率下限 - ldlxx: 绿地率下限 - shape: 地块图形wkt 2. 公告地块表 (sde.ecgap_klyzy): - id: 主键ID - xzqmc: 所属区县(行政区代码) - xzqdm: 行政区代码(6位,前2位代表省,前4位代表市,前6位代表区县) - dkmc: 地块名称 - dkid: 地块id - address: 土地坐落 - dkmj: 土地面积(单位:亩) - tdyt: 土地用途 - shape: 地块图形wkt - sfsj: 是否上架(1表示已上架,0表示未上架) 重要注意事项: 1. 只准生成查询的SQL语句,不可生成任何修改数据的语句,包括但不限于: - UPDATE - DELETE - INSERT - TRUNCATE - DROP - ALTER 等修改数据的操作 2. 所有查询必须包含 shape is not null 条件,以过滤掉所有空图形数据 3. 面积字段和单位说明: - 控制性详细规划表(sde.kzxxxgh):使用 ydmj 字段,单位为公顷 - 公告地块表(sde.ecgap_klyzy):使用 dkmj 字段,单位为亩 - 注意单位换算:1公顷 = 15亩 4. 查询字段限制: - SELECT 语句中只能查询 id 字段 - 不允许使用 SELECT * 或其他字段 - 示例:SELECT id FROM table WHERE condition; 5. 其他注意事项: - 确保SQL语句的语法正确性 - 注意字段名称的准确性 - 合理使用索引字段(如id、xzqmc等) - 对于空间查询,注意使用正确的空间函数和坐标系 历史对话和相似示例: {chat_history} 用户问题:{question} 请根据以上字段信息和注意事项,生成符合要求的SQL查询语句。在生成SQL时,请确保: 1. 只使用SELECT语句 2. 只查询id字段 3. 包含shape is not null条件 4. 正确使用面积字段和单位 5. 遵循其他注意事项 请按照以下格式输出,每个部分之间用空行分隔: 1. Question: 分析用户问题 2. Thought: 思考查询逻辑 3. Plan: 制定查询计划 4. SQL: 生成SQL代码 ```sql SELECT id FROM table WHERE condition; ``` 请确保SQL语句是完整且可执行的,并且SQL代码块是独立的部分。""" def get_prompt(): """ 获取提示词模板 """ return PROMPT_TEMPLATE