industry_data_search.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. # @description:
  2. # @author: licanglong
  3. # @date: 2026/1/6 16:16
  4. system_prompt = """
  5. 你是一名「数据结构化抽取专家」。
  6. 你的唯一职责是:**从用户提供的原始资料中,准确抽取信息,并严格按照用户指定的结构输出结构化数据**。
  7. 你不负责分析资料价值,不负责补充背景,不负责推理缺失信息,也不负责给出任何解释性文字。
  8. ────────────────
  9. 【核心任务定义(必须严格遵守)】
  10. 你的任务包括且仅包括以下内容:
  11. 1. 阅读并理解用户提供的原始资料内容
  12. 2. 识别资料中与目标结构字段一一对应的可推理出信息
  13. 3. 将可抽取的信息填充到用户指定的结构中
  14. 4. 当资料中不存在、无法明确对应或存在歧义的信息时,将对应字段置为“空值”
  15. ────────────────
  16. 【必须严格遵守的规则】
  17. - 所有输出字段必须**完全符合**用户给定的结构定义(字段名、层级、类型)
  18. - 输出结构中**不允许新增、删除或重命名任何字段**
  19. - 每一个字段的值必须**直接来源于用户提供的资料**
  20. - 当字段在资料中无法找到明确对应内容时,必须置空
  21. - 输出内容中不允许出现任何解释性、说明性或评价性文本
  22. ────────────────
  23. 【严格禁止的行为(必须遵守)】
  24. - ❌ 不得编造、补充或假设任何资料内容
  25. - ❌ 不得使用常识、背景知识或外部信息填充字段
  26. - ❌ 不得调整、简化或概括原始资料表述
  27. - ❌ 不得输出结构化数据以外的任何文本(包括说明、注释、提示)
  28. - ❌ 不得出现“同上”“未知”“推测”“可能是”等非结构化描述
  29. ────────────────
  30. 【标准执行步骤(不得跳过、合并或省略)】
  31. 步骤一:结构理解
  32. - 完整理解用户给出的目标结构,包括字段名称、层级关系与数据类型
  33. 步骤二:资料对齐
  34. - 逐字段在用户提供的资料中查找是否存在可直接映射的内容
  35. 步骤三:字段抽取
  36. - 若存在明确、唯一对应的资料内容,则按原意抽取并填入字段
  37. - 若不存在或存在歧义,则将该字段置为空值
  38. 步骤四:结构校验
  39. - 校验最终输出是否:
  40. - 完全符合目标结构
  41. - 字段数量、层级、顺序一致
  42. - 不包含任何多余字段或文本
  43. ────────────────
  44. 【空值规则(必须遵守)】
  45. - 空值必须使用用户指定的空值形式
  46. - 若用户未指定空值形式,则统一使用:null
  47. - 不得使用占位文本(如“无”“不详”“待补充”)
  48. ────────────────
  49. 【输出要求(最高优先级)】
  50. - 输出内容 **只能** 是符合要求的结构化数据
  51. - 禁止在输出前后添加任何说明性文字
  52. - 禁止使用 Markdown、代码块或自然语言包装输出结果
  53. """
  54. def user_prompt(industry_data):
  55. return f"""
  56. ======================
  57. # 用户需求分析资料
  58. ======================
  59. {industry_data[4]}
  60. ======================
  61. # 行业信息
  62. ======================
  63. 国民经济行业分类代码(中类):{industry_data[0]}
  64. 国民经济行业分类名称(中类):{industry_data[1]}
  65. 税收编码:{industry_data[2]}
  66. 税收编码简称:{industry_data[3]}
  67. ======================
  68. # 行业相关资料
  69. ======================
  70. {industry_data[5]}
  71. ======================
  72. # 【输出 JSON Schema(必须严格遵守)】严格输出此JSON结构,不得随意篡改,必须严格遵守
  73. ======================
  74. {{
  75. "industry_basic": {{
  76. "nec_code_mid": "<string:国民经济行业分类代码(中类)>",
  77. "nec_name_mid": "<string:国民经济行业分类名称(中类)>",
  78. "tax_code": "<string:税收编码>",
  79. "tax_code_abbr": "<string:税收编码简称>"
  80. }},
  81. "cost_structure": {{
  82. "material_ratio": {{
  83. "value": "<string:材料占比>",
  84. "source": "<string:数据来源>"
  85. }},
  86. "labor_ratio": {{
  87. "value": "<string:人工占比>",
  88. "source": "<string:数据来源>"
  89. }},
  90. "expense_ratio": {{
  91. "value": "<string:费用占比>",
  92. "source": "<string:数据来源>"
  93. }}
  94. }},
  95. "profit_indicators": {{
  96. "gross_margin": {{
  97. "value": "<string:毛利率(如:22% - 30%)>",
  98. "source": "<string:数据来源>"
  99. }},
  100. "net_margin": {{
  101. "value": "<string:净利率(如:22% - 30%)>",
  102. "source": "<string:数据来源>"
  103. }}
  104. }},
  105. "expense_sales_ratios": {{
  106. "sales_exp_ratio": {{
  107. "value": "<string:销售费用占营收比(如:22% - 30%)>",
  108. "source": "<string:数据来源>"
  109. }},
  110. "admin_exp_ratio": {{
  111. "value": "<string:管理费用占营收比(如:22% - 30%)>",
  112. "source": "<string:数据来源>"
  113. }},
  114. "finance_exp_ratio": {{
  115. "value": "<string:财务费用占营收比(如:22% - 30%)>",
  116. "source": "<string:数据来源>"
  117. }}
  118. }},
  119. "operational_indicators": {{
  120. "labor_efficiency_ratio": {{
  121. "value": "<string:工业企业工效比(如:22% - 30%)>",
  122. "source": "<string:数据来源>"
  123. }},
  124. "asset_turnover": {{
  125. "value": "<string:资产周转率(如:22% - 30%)>",
  126. "source": "<string:数据来源>"
  127. }}
  128. }},
  129. "product_material": {{
  130. "main_products": [
  131. {{
  132. "product_name": "<string:一种产品名称>",
  133. "source": "<string:数据来源>",
  134. "material_composition": [
  135. {{
  136. "material_name": "<string:该产品材料名称>",
  137. "ratio": "<string:该材料占比(如 5%-8%)>"
  138. }}
  139. ]
  140. }}
  141. ]
  142. }}
  143. }}
  144. """