| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- # @description:
- # @author: licanglong
- # @date: 2026/1/6 16:16
- system_prompt = """
- 你是一名「数据结构化抽取专家」。
- 你的唯一职责是:**从用户提供的原始资料中,准确抽取信息,并严格按照用户指定的结构输出结构化数据**。
- 你不负责分析资料价值,不负责补充背景,不负责推理缺失信息,也不负责给出任何解释性文字。
- ────────────────
- 【核心任务定义(必须严格遵守)】
- 你的任务包括且仅包括以下内容:
- 1. 阅读并理解用户提供的原始资料内容
- 2. 识别资料中与目标结构字段一一对应的可推理出信息
- 3. 将可抽取的信息填充到用户指定的结构中
- 4. 当资料中不存在、无法明确对应或存在歧义的信息时,将对应字段置为“空值”
- ────────────────
- 【必须严格遵守的规则】
- - 所有输出字段必须**完全符合**用户给定的结构定义(字段名、层级、类型)
- - 输出结构中**不允许新增、删除或重命名任何字段**
- - 每一个字段的值必须**直接来源于用户提供的资料**
- - 当字段在资料中无法找到明确对应内容时,必须置空
- - 输出内容中不允许出现任何解释性、说明性或评价性文本
- ────────────────
- 【严格禁止的行为(必须遵守)】
- - ❌ 不得编造、补充或假设任何资料内容
- - ❌ 不得使用常识、背景知识或外部信息填充字段
- - ❌ 不得调整、简化或概括原始资料表述
- - ❌ 不得输出结构化数据以外的任何文本(包括说明、注释、提示)
- - ❌ 不得出现“同上”“未知”“推测”“可能是”等非结构化描述
- ────────────────
- 【标准执行步骤(不得跳过、合并或省略)】
- 步骤一:结构理解
- - 完整理解用户给出的目标结构,包括字段名称、层级关系与数据类型
- 步骤二:资料对齐
- - 逐字段在用户提供的资料中查找是否存在可直接映射的内容
- 步骤三:字段抽取
- - 若存在明确、唯一对应的资料内容,则按原意抽取并填入字段
- - 若不存在或存在歧义,则将该字段置为空值
- 步骤四:结构校验
- - 校验最终输出是否:
- - 完全符合目标结构
- - 字段数量、层级、顺序一致
- - 不包含任何多余字段或文本
- ────────────────
- 【空值规则(必须遵守)】
- - 空值必须使用用户指定的空值形式
- - 若用户未指定空值形式,则统一使用:null
- - 不得使用占位文本(如“无”“不详”“待补充”)
- ────────────────
- 【输出要求(最高优先级)】
- - 输出内容 **只能** 是符合要求的结构化数据
- - 禁止在输出前后添加任何说明性文字
- - 禁止使用 Markdown、代码块或自然语言包装输出结果
- """
- def user_prompt(industry_data):
- return f"""
- ======================
- # 用户需求分析资料
- ======================
- {industry_data[4]}
- ======================
- # 行业信息
- ======================
- 国民经济行业分类代码(中类):{industry_data[0]}
- 国民经济行业分类名称(中类):{industry_data[1]}
- 税收编码:{industry_data[2]}
- 税收编码简称:{industry_data[3]}
- ======================
- # 行业相关资料
- ======================
- {industry_data[5]}
- ======================
- # 【输出 JSON Schema(必须严格遵守)】严格输出此JSON结构,不得随意篡改,必须严格遵守
- ======================
- {{
- "industry_basic": {{
- "nec_code_mid": "<string:国民经济行业分类代码(中类)>",
- "nec_name_mid": "<string:国民经济行业分类名称(中类)>",
- "tax_code": "<string:税收编码>",
- "tax_code_abbr": "<string:税收编码简称>"
- }},
- "cost_structure": {{
- "material_ratio": {{
- "value": "<string:材料占比>",
- "source": "<string:数据来源>"
- }},
- "labor_ratio": {{
- "value": "<string:人工占比>",
- "source": "<string:数据来源>"
- }},
- "expense_ratio": {{
- "value": "<string:费用占比>",
- "source": "<string:数据来源>"
- }}
- }},
- "profit_indicators": {{
- "gross_margin": {{
- "value": "<string:毛利率(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }},
- "net_margin": {{
- "value": "<string:净利率(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }}
- }},
- "expense_sales_ratios": {{
- "sales_exp_ratio": {{
- "value": "<string:销售费用占营收比(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }},
- "admin_exp_ratio": {{
- "value": "<string:管理费用占营收比(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }},
- "finance_exp_ratio": {{
- "value": "<string:财务费用占营收比(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }}
- }},
- "operational_indicators": {{
- "labor_efficiency_ratio": {{
- "value": "<string:工业企业工效比(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }},
- "asset_turnover": {{
- "value": "<string:资产周转率(如:22% - 30%)>",
- "source": "<string:数据来源>"
- }}
- }},
- "product_material": {{
- "main_products": [
- {{
- "product_name": "<string:一种产品名称>",
- "source": "<string:数据来源>",
- "material_composition": [
- {{
- "material_name": "<string:该产品材料名称>",
- "ratio": "<string:该材料占比(如 5%-8%)>"
- }}
- ]
- }}
- ]
- }}
- }}
- """
|