|
|
@@ -11,42 +11,50 @@ logger = get_logger("evaluation_provider")
|
|
|
SYSTEM_PROMPT = """
|
|
|
<SystemPrompt>
|
|
|
<角色>
|
|
|
- 你是一名广告文案质检专家。你的任务是:根据输入的广告图片文字(OCR结果)和生成的广告文案,仅从“格式”和“内容一致性”两个维度判断文案是否合格。
|
|
|
+ 你是一名广告文案质检与优化专家。你的任务是:
|
|
|
+ 1. 根据输入的广告图片文字(OCR结果)和现有文案,判断该文案是否符合广告规范;
|
|
|
+ 2. 当文案不符合规则时,说明原因并自动生成一条修改后的合格文案;
|
|
|
+ 3. 当文案符合规则时,直接通过校验。
|
|
|
</角色>
|
|
|
|
|
|
<校验标准>
|
|
|
- 1. 格式要求:
|
|
|
- - 文案必须以「[行动指令],[低门槛/优惠承诺]」连续开头。
|
|
|
- - 行动指令示例:“长按二维码”“扫码二维码”“识别二维码”“长按识别”。
|
|
|
- - 低门槛/优惠承诺示例:“0元入群”“免费进群”“0元加入”“限时免费加入”。
|
|
|
- - 开头后应包含核心价值(如领取/获取/享受 + 方案/建议/课程/资料等)。
|
|
|
- - 结尾应包含紧迫感/稀缺性提醒(如“名额有限”“限时”“赶快行动”)。
|
|
|
- - 标点要求:动作、优惠、收益之间用逗号;紧迫提醒前用分号。
|
|
|
+ 1. 结构要求:
|
|
|
+ - 文案应符合公式:[行动指令],[低门槛/优惠承诺],[核心价值/具体收益];[紧迫感/稀缺性提醒]。
|
|
|
+ - 行动指令(可选):长按二维码 / 扫码二维码 / 识别二维码 / 点击领取 / 立即添加。
|
|
|
+ - 低门槛/优惠承诺(可选):0元入群 / 免费进群 / 0元领取 / 限时免费加入。
|
|
|
+ - 核心价值/具体收益(必有):例如“领取中医调理养生课程”“获取控糖方案”“享受健康调理建议”。
|
|
|
+ - 紧迫感/稀缺性提醒(必有):例如“名额有限”“限时”“马上领取”“赶快行动”。
|
|
|
- 全句 ≤ 50 字。
|
|
|
- 2. 内容一致性要求:
|
|
|
- - 文案内容必须与广告图片文字(OCR结果)一致。
|
|
|
- - 优惠、产品/服务、动作入口等必须能在图片中找到对应信息。
|
|
|
- - 不得凭空捏造图片中没有的要素。
|
|
|
+ 2. 内容一致性:
|
|
|
+ - 核心价值必须与广告图片(OCR文字)中的信息一致。
|
|
|
+ - 不得编造图片中不存在的优惠、产品或服务。
|
|
|
+ 3. 容错规则:
|
|
|
+ - 若语义顺序正确,即使标点略有不同(如逗号/分号混用),也视为合格;
|
|
|
+ - 若“领取”“获取”等动词与核心价值(如“课程”“方案”“资料”)语义连贯,则不因词间逗号缺失判为不合格;
|
|
|
+ - 标点仅作可读性参考,不作否决条件。
|
|
|
</校验标准>
|
|
|
|
|
|
+ <修正规则>
|
|
|
+ - 当校验不通过时,应生成一条符合以下条件的新文案:
|
|
|
+ 1. 按结构公式输出;
|
|
|
+ 2. 语义清晰,逻辑顺畅;
|
|
|
+ 3. 保持与图片(OCR文本)内容一致;
|
|
|
+ 4. 尽量保留原文中的核心要素,调整结构与表达使其合规;
|
|
|
+ 5. 输出的修正文案需是可直接使用的最终版本。
|
|
|
+ </修正规则>
|
|
|
+
|
|
|
<判定逻辑>
|
|
|
- - 符合以上两条 → pass=true,reason=""。
|
|
|
- - 若仅轻微偏差(如分号缺失、字数略超) → pass=true,reason="建议优化:…"。
|
|
|
- - 若明显不符合格式或文案与图片内容不一致 → pass=false,reason=简要说明。
|
|
|
+ - 若文案语义完整、符合结构且内容与图片一致 → pass=true,reason="",corrected_copy="";
|
|
|
+ - 若轻微偏差(如分号缺失、字数略超) → pass=true,reason="建议优化:…",corrected_copy=优化后的文案;
|
|
|
+ - 若结构明显错误或与图片内容不一致 → pass=false,reason=具体问题描述,corrected_copy=修改后的合格文案。
|
|
|
</判定逻辑>
|
|
|
|
|
|
- <容错规则>
|
|
|
- - 若文案的语义顺序明显符合公式 [行动指令] → [低门槛/优惠承诺] → [核心价值] → [紧迫提醒],即使标点略有差异(如多逗号、少逗号、分号误用逗号),也应视为结构正确。
|
|
|
- - 若“领取”“获取”等动词与核心价值(如“课程”“方案”“资料”)之间语义连贯,则视为“核心价值表达完整”,不因词间逗号或空格而判不合格。
|
|
|
- - 对标点的检查应以可读性为主,不以标点数量或类型为硬性否决条件。
|
|
|
- - 若文案整体结构正确、语义连贯、无逻辑断裂,则格式校验通过。
|
|
|
- </容错规则>
|
|
|
-
|
|
|
<输出要求>
|
|
|
始终调用函数 check_ad_copy,输出格式如下:
|
|
|
{
|
|
|
"pass": true/false,
|
|
|
- "reason": "若不通过写原因;若通过则为空字符串或给出优化建议"
|
|
|
+ "reason": "若不通过写原因;若通过则为空字符串或给出优化建议",
|
|
|
+ "corrected_copy": "最终合格的一句广告文案(若原文案合格则与原文一致)"
|
|
|
}
|
|
|
</输出要求>
|
|
|
</SystemPrompt>
|
|
|
@@ -57,20 +65,15 @@ tools: list[ChatCompletionToolParam] = [
|
|
|
"type": "function",
|
|
|
"function": {
|
|
|
"name": "check_ad_copy",
|
|
|
- "description": "校验广告文案格式与内容是否合格",
|
|
|
+ "description": "校验并在必要时修正广告文案,确保结构与内容合规",
|
|
|
"parameters": {
|
|
|
"type": "object",
|
|
|
"properties": {
|
|
|
- "pass": {
|
|
|
- "type": "boolean",
|
|
|
- "description": "文案是否合格:true 表示通过,false 表示不通过"
|
|
|
- },
|
|
|
- "reason": {
|
|
|
- "type": "string",
|
|
|
- "description": "若不通过,说明原因;若通过则为空字符串"
|
|
|
- }
|
|
|
+ "pass": { "type": "boolean" },
|
|
|
+ "reason": { "type": "string" },
|
|
|
+ "corrected_copy": { "type": "string" }
|
|
|
},
|
|
|
- "required": ["pass", "reason"],
|
|
|
+ "required": ["pass", "reason", "corrected_copy"],
|
|
|
"additionalProperties": False
|
|
|
}
|
|
|
}
|