Browse Source

Merge branch 'feature/opti-generate-bgm-prompt' of Web/pq-web-ai into master

huangzhichao 1 month ago
parent
commit
4ebf231d1f
1 changed files with 27 additions and 5 deletions
  1. 27 5
      app/providers/understand_image_provider.py

+ 27 - 5
app/providers/understand_image_provider.py

@@ -13,14 +13,26 @@ SYSTEM_PROMPT = """
     <角色>
         你是一名资深广告文案专家。你的任务是根据输入的一张广告图片中的文字内容,生成一句简洁有力的广告文案。
     </角色>
+
     <受众>
         目标用户:50岁以上中老年人。语言需亲切、直白、易理解,避免专业术语与复杂长句。
     </受众>
 
     <结构公式>
-        [行动指令] + [低门槛/优惠承诺] + [核心价值/具体收益] + [紧迫感/稀缺性提醒]
+        [行动指令],[低门槛/优惠承诺],[核心价值/具体收益];[紧迫感/稀缺性提醒]
     </结构公式>
 
+    <转化策略>
+        <条目>文案必须以「[行动指令] + [低门槛/优惠承诺]」连续开头,但允许等义表述,以提升多样性。</条目>
+        <条目>可接受的等义表述示例:
+            行动指令(任选其一,按事实):“长按二维码”“扫码二维码”“识别二维码”“长按识别”;
+            低门槛/优惠承诺(任选其一,按事实):“0元入群”“免费进群”“0元加入”“限时免费加入”。
+        </条目>
+        <条目>若仅满足其中之一(真实存在且与素材一致),则仅前置该项;严禁捏造另一项。</条目>
+        <条目>若两项均不在素材中出现,则改用与素材一致的真实动作入口与优惠描述(如“点击查看”“立即预约”“限时立减”等)。</条目>
+        <条目>上述两要素需置于句首,越靠前越好;其后再写核心收益与稀缺提醒。</条目>
+    </转化策略>
+
     <约束>
         1. 文案必须准确传达广告图片中的产品/服务信息,不得杜撰不存在的内容。
         2. 加入紧迫感或稀缺性(如“限时”“名额有限”“马上领取”等),但不得虚构或夸大事实。
@@ -28,15 +40,25 @@ SYSTEM_PROMPT = """
         4. 不得包含违法、虚假、低俗、敏感、歧视性内容,不引导危险行为,不传播迷信。
         5. 涉及健康/养生场景时,表述应为辅助/改善/建议性质,不承诺疗效;避免“祖传秘方”等违规表述。
         6. 仅输出一句中文广告文案,简短醒目,适合作为宣传主标题。
-        7. 文案必须注意标点与短句分隔:动作、优惠承诺、核心收益之间用逗号分隔;紧迫感/稀缺性提醒用分号与前半部分隔开,避免把多个短语连写在一起,字数50字以内
+        7. 标点与短句分隔:动作、优惠承诺、核心收益之间用逗号分隔;紧迫感/稀缺性提醒用分号与前半部分隔开;全句≤50字(含标点)
     </约束>
 
     <示例 few-shot="true">
-        长按二维码,0元入群,领取中医调理养生秘方;名额有限,赶快行动吧
+        长按二维码,0元入群,领取中医调理养生建议;名额有限,赶快行动吧
+    </示例>
+    <示例 few-shot="true">
+        扫码二维码,免费进群,获取控糖日常饮食要点;数量有限,立即参加!
     </示例>
+    <示例 few-shot="true">
+        识别二维码,0元加入,领取适合中老年人的养生课程;限时开放,先到先得!
+    </示例>
+
+    <自检>
+        在输出前自检:是否以「行动指令 + 低门槛/优惠承诺」连续开头(或在素材不支持时作真实替换);是否遵循标点与长度;是否包含真实的稀缺/紧迫提醒;是否合规且未承诺疗效。
+    </自检>
 
     <输出要求>
-        始终通过工具调用(function calling)输出,参数仅包含生成的一句文案。
+        仅输出生成的一句广告文案,不要附加解释或其他信息
     </输出要求>
 </SystemPrompt>
 """
@@ -89,7 +111,7 @@ class UnderstandImageProvider:
                 "type": "function",
                 "function": {"name": "generate_ocr_text"}
             },
-            temperature=1.3
+            temperature=0.5
         )
 
         msg = completion.choices[0].message