DDL_Parse_格式对比.json 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. {
  2. "修复说明": "DDL Parse API 格式修复 - 符合参考文档 DDLparse格式.txt",
  3. "参考格式_单表": {
  4. "说明": "来自 docs/DDLparse格式.txt",
  5. "格式": {
  6. "code": 200,
  7. "data": {
  8. "table_info": {
  9. "name_zh": "科室对照表",
  10. "name_en": "TB_JC_KSDZB"
  11. },
  12. "columns": [
  13. {
  14. "name_zh": "医疗机构代码",
  15. "name_en": "YLJGDM",
  16. "data_type": "VARCHAR(22)",
  17. "is_primary": "是",
  18. "comment": "医疗机构代码,复合主键",
  19. "nullable": "否"
  20. }
  21. ]
  22. },
  23. "message": "操作成功"
  24. }
  25. },
  26. "修复后格式_单表": {
  27. "说明": "修复后的格式,使用数组返回,单表也是数组格式",
  28. "格式": {
  29. "code": 200,
  30. "data": [
  31. {
  32. "table_info": {
  33. "name_zh": "科室对照表",
  34. "name_en": "TB_JC_KSDZB"
  35. },
  36. "columns": [
  37. {
  38. "name_zh": "医疗机构代码",
  39. "name_en": "YLJGDM",
  40. "data_type": "VARCHAR(22)",
  41. "is_primary": "是",
  42. "comment": "医疗机构代码,复合主键",
  43. "nullable": "否"
  44. },
  45. {
  46. "name_zh": "HIS科室代码",
  47. "name_en": "HISKSDM",
  48. "data_type": "CHAR(20)",
  49. "is_primary": "是",
  50. "comment": "HIS科室代码,主键、唯一",
  51. "nullable": "否"
  52. },
  53. {
  54. "name_zh": "HIS科室名称",
  55. "name_en": "HISKSMC",
  56. "data_type": "CHAR(20)",
  57. "is_primary": "否",
  58. "comment": "HIS科室名称",
  59. "nullable": "否"
  60. }
  61. ]
  62. }
  63. ],
  64. "message": "操作成功"
  65. }
  66. },
  67. "修复后格式_多表": {
  68. "说明": "修复后的格式,使用数组返回多个表,不使用表名作为key",
  69. "格式": {
  70. "code": 200,
  71. "data": [
  72. {
  73. "table_info": {
  74. "name_zh": "科室对照表",
  75. "name_en": "TB_JC_KSDZB"
  76. },
  77. "columns": [
  78. {
  79. "name_zh": "医疗机构代码",
  80. "name_en": "YLJGDM",
  81. "data_type": "VARCHAR(22)",
  82. "is_primary": "是",
  83. "comment": "医疗机构代码,复合主键",
  84. "nullable": "否"
  85. }
  86. ]
  87. },
  88. {
  89. "table_info": {
  90. "name_zh": "用户表",
  91. "name_en": "TB_USER"
  92. },
  93. "columns": [
  94. {
  95. "name_zh": "用户ID",
  96. "name_en": "USER_ID",
  97. "data_type": "INTEGER",
  98. "is_primary": "是",
  99. "comment": "用户唯一标识",
  100. "nullable": "否"
  101. }
  102. ]
  103. }
  104. ],
  105. "message": "操作成功"
  106. }
  107. },
  108. "关键改进": [
  109. "✅ 1. 删除了冲突的 system message,统一使用 _optimize_ddl_prompt()",
  110. "✅ 2. 添加了缺失的字段:is_primary, comment, nullable",
  111. "✅ 3. 使用 table_info + columns 结构(符合参考格式)",
  112. "✅ 4. 保持表名和字段名原始大小写",
  113. "✅ 5. 使用JSON数组格式返回,不使用表名作为key",
  114. "✅ 6. 支持单表和多表,统一返回数组格式"
  115. ],
  116. "字段说明": {
  117. "table_info.name_zh": "表的中文名称,从COMMENT ON TABLE提取",
  118. "table_info.name_en": "表的英文名称,保持原始大小写",
  119. "columns[].name_zh": "字段中文名称,从COMMENT ON COLUMN提取",
  120. "columns[].name_en": "字段英文名称,保持原始大小写",
  121. "columns[].data_type": "数据类型,包含长度信息(如VARCHAR(22))",
  122. "columns[].is_primary": "是否主键,取值:是/否",
  123. "columns[].comment": "完整的注释内容",
  124. "columns[].nullable": "是否可为空,取值:是/否(根据NOT NULL约束判断)"
  125. },
  126. "修改文件": [
  127. "app/core/llm/ddl_parser.py - parse_ddl() 方法",
  128. "app/core/llm/ddl_parser.py - _optimize_ddl_prompt() 方法"
  129. ]
  130. }