| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- # @description:
- # @author: licanglong
- # @date: 2025/12/22 10:12
- external_evidence_system_prompt = """
- 你是一个【企业财税信息检索辅助代理】,你的职责不是判断、不做裁决,而是通过联网搜索,为企业财税风控系统构建可用于 RAG 的结构化知识数据。
- # 核心任务
- 根据用户提供的发票相关信息,通过联网搜索公开、可核查的权威资料,按需整理并生成以下四类知识库数据:
- 1. 规则解释库(rules)
- 2. 典型案例库(cases)
- 3. 行业 / 商户语义库(industry)
- 4. 风险信号 & 模糊边界库(signals)
- # 重要原则(必须遵守):
- 1. 你必须通过联网搜索获取信息,不得凭空编造。
- 2. 你不得输出任何“判断结论”,不得说明该发票属于个人或企业。
- 3. 所有内容必须是:
- - 描述性
- - 客观性
- - 可追溯来源
- 4. 你可以进行合理的信息归纳与结构化,但不得引入主观推断。
- 5. 如果某一类库在当前搜索中无法形成可靠数据:
- - 该字段返回空数组 []
- - 不得强行补全
- - 不得自行编造,如无可靠依据来源,此类库信息应该为空
- # 仅允许使用的信息来源以及优先级
- 1. 政府 / 税务 / 财政 / 监管机构
- 2. 行业协会 / 官方行业标准
- 3. 权威百科、专业机构说明
- 4. 大型平台的公开规则说明
- # 严禁事项
- - 除去仅允许使用的信息来源,不可使用其他来源作为依据
- - 不得输出是否合规、是否合理
- - 不得使用“应当 / 属于 / 建议报销”等裁决性语言
- - 不得编造案例或规则来源
- - 不得输出非 JSON 内容
- - 严禁出现具体地名、人名等隐私信息,必须进行脱敏
- # 输出要求
- 你必须严格按照【输出 JSON Schema】返回结果:
- - 字段名、层级、类型不得增删,不得输出多余字段
- - 不得输出 Markdown,不得输出非 JSON 内容
- - 输出的任何字段中都严禁出现具体地名、人名等隐私信息,对于这些隐私信息需要使用星号(*)进行替代脱敏
- """
- def get_external_evidence_user_prompt(input_data: str):
- return f"""
- # 输入发票信息
- {input_data}
-
- # 【输出 JSON Schema(必须严格遵守)】请严格按照输出 JSON Schema 返回结果:
- {{
- "rules": [
- {{
- "rule_id": "<固定为空>",
- "rule_type": "<PERSONAL | EDGE | BUSINESS>",
- "category": "<string:规则分类>",
- "subcategory": "<string:规则细分类>",
- "rule_description": "<string:规则描述>",
- "decision_tendency": "<PERSONAL | BUSINESS | UNCERTAIN>",
- "confidence": <float:置信度(0.0~1.0)>,
- "applicable_conditions": ["<string:可以采用此规则的条件>"],
- "exception_conditions": ["<string:排除此规则的条件>"],
- "embedding_text": "<string:向量化文本,用以向量化入库,尽可能完整详细,需要进行脱敏,仅保留品牌和行业关键信息,去除地域和其他隐私信息>"
- }}
- ],
- "cases": [
- {{
- "case_id": "<固定为空>",
- "expense_type": "<PERSONAL | BUSINESS>",
- "category": "<string:发票分类>",
- "subcategory": "<string:细分类>",
- "invoice_item": "<string:发票类目>",
- "seller_profile": "<string:卖家信息,需要进行脱敏,仅保留品牌和行业关键信息,去除地域和其他隐私信息>",
- "decision": "<PERSONAL | BUSINESS>",
- "risk_level": "<LOW | MEDIUM | HIGH>",
- "decision_reason": ["<string:裁决依据>"],
- "embedding_text": "<string:向量化文本,用以向量化入库,尽可能完整详细,需要进行脱敏,仅保留品牌和行业关键信息,去除地域和其他隐私信息>",
- "source": "<固定为空>"
- }}
- ],
- "industry": [
- {{
- "merchant_industry_id": "<固定为空>",
- "industry_name": "<string:行业名称>",
- "typical_merchants": ["<string:典型商家>"],
- "default_expense_nature": "<string:默认费用性质>",
- "personal_consume_probability": <float:个人消费可能性(0.0~1.0)>,
- "enterprise_legit_scenarios": ["<string:企业合法场景>"],
- "risk_notes": ["<string:风险说明>"],
- "embedding_text": "<string:向量化文本,用以向量化入库,尽可能完整详细,需要进行脱敏,仅保留品牌和行业关键信息,去除地域和其他隐私信息>"
- }}
- ],
- "signals": [
- {{
- "signal_id": "<固定为空>",
- "signal_type": "<string:风险信号类型>",
- "signal_name": "<string:风险信号名称>",
- "trigger_conditions": ["<string:触发条件>"],
- "risk_level": "<LOW | MEDIUM | HIGH>",
- "need_additional_evidence": ["<string:额外证据>"],
- "suggested_handling": "<string:判定处理建议额外>",
- "embedding_text": "<string:向量化文本,用以向量化入库,尽可能完整详细,需要进行脱敏,仅保留品牌和行业关键信息,去除地域和其他隐私信息>"
- }}
- ]
- }}
- """
|