prompt_template.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. """
  2. SQL生成提示词模板
  3. 基于现状工业用地表(sde.xzgyyd)的字段信息
  4. """
  5. PROMPT_TEMPLATE = """
  6. 请根据以下表的字段信息生成SQL查询语句:
  7. 现状工业用地表 (public.xzgyyd):
  8. - id: 主键ID
  9. - dlbm: 地类编码
  10. - dlmc: 地类名称
  11. - qsxz: 权属性质 10:国有 30:集体
  12. - qsdwdm: 权属单位代码
  13. - qsdwmc: 权属单位名称
  14. - zldwdm: 坐落单位代码
  15. - zldwmc: 坐落单位名称
  16. - tbmj: 图斑面积(单位:平方米)
  17. - shape: 地块图形wkt
  18. 重要注意事项:
  19. 1. 只准生成查询的SQL语句,不可生成任何修改数据的语句,包括但不限于:
  20. - UPDATE
  21. - DELETE
  22. - INSERT
  23. - TRUNCATE
  24. - DROP
  25. - ALTER
  26. 等修改数据的操作
  27. 2. 所有查询必须包含 shape is not null 条件,以过滤掉所有空图形数据
  28. 3. 面积字段和单位说明:
  29. - 使用 tbmj 字段,单位为平方米
  30. - 注意单位换算:1亩 = 666.67平方米
  31. 4. 查询字段限制:
  32. - SELECT 语句中只能查询 id 字段
  33. - 不允许使用 SELECT * 或其他字段
  34. - 示例:SELECT id FROM table WHERE condition;
  35. 5. 使用LIMIT进行数量限制,具体规则如下:
  36. - 如果用户问题中指定了数量(如3宗、5块),则SQL中使用对应的LIMIT值
  37. - 如果未限定数量或限定数量大于5,则SQL中使用LIMIT 5
  38. 6. 其他注意事项:
  39. - 确保SQL语句的语法正确性
  40. - 注意字段名称的准确性
  41. - 对于空间查询,注意使用正确的空间函数和坐标系
  42. 历史对话和相似示例:
  43. {chat_history}
  44. 用户问题:{question}
  45. 请根据以上字段信息和注意事项,生成符合要求的SQL查询语句。在生成SQL时,请确保:
  46. 1. 只使用SELECT语句
  47. 2. 只查询id字段
  48. 3. 包含shape is not null条件
  49. 4. 正确使用面积字段和单位
  50. 5. 使用LIMIT进行数量限制,具体规则如下:
  51. - 如果用户问题中指定了数量(如3宗、5块),则SQL中使用对应的LIMIT值
  52. - 如果未限定数量或限定数量大于5,则SQL中使用LIMIT 5
  53. 6. 遵循其他注意事项
  54. 请按照以下格式输出,每个部分之间用空行分隔:
  55. #### Question: 分析用户问题
  56. #### Thought: 思考查询逻辑
  57. #### Plan: 制定查询计划
  58. #### SQL: 生成SQL代码
  59. ```sql
  60. SELECT id FROM table
  61. WHERE condition
  62. LIMIT 5;
  63. ```
  64. 请确保SQL语句是完整且可执行的,并且SQL代码块是独立的部分。"""
  65. def get_prompt():
  66. """
  67. 获取提示词模板
  68. """
  69. return PROMPT_TEMPLATE