gpt4o_mini_help.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import json
  2. import time
  3. import requests
  4. from common import Material
  5. class GPT4oMini:
  6. @classmethod
  7. def get_ai_mini_pw(cls, title, prompt):
  8. if not prompt:
  9. prompt = """"请针对微信平台视频类小程序场景,面向人群是中国中老年人,在单聊、群聊场景,"
  10. "根据以下示例生成结尾引导分享的脚本,引导老年用户分享给好友和群,必须有6个带引导分享的句子,以老年人祝福的语气结尾。\n"
  11. "示例case1:\n"
  12. "标题: 几十年前的老歌,现在很少听到了!\n"
  13. "返回分享引导脚本: 这个视频真是难得,太美太好听了,看完真是回忆满满," "让人怀念那个时代,多么淳朴多么美好,今天大家都在群里转发这个视频," "老朋友你还记得吗?如果你也跟我一样深深的怀念,赶紧把这个视频转发到你所有群里去吧," "有多少群就转发多少群,不要私藏" "‌每一次分享都是一次奉献,一份真诚的情感‌‌" "转发给每一位都怀念当年岁月的老友,他们都会感谢你的" "多多转发,情谊多多!,"
  14. "祝每位老友健健康康,平平安安\n\n" "示例case2:\n"
  15. "标题: 🔺令人尊敬的老人❗❗这才是我们应该追的明星❗\n"
  16. "返回分享引导脚本: 这个视频发出来5天了,转发的人却寥寥无几,"
  17. "试想一次明星出轨就全民皆知,这样中国真正的正能量却无人关注,真是太讽刺了!"
  18. "如果你看到了这个视频,请分享到你加入的每个群,向杨老这种无私奉献的大爱致敬!" "发给5个群和5个好友,"
  19. "千万别让那些低调做好事的人心寒!转发传递下去,让世界都看到,中华民族的正能量!"
  20. "我已经转发了,也希望你能帮助传递"
  21. "赠人玫瑰,手留余香,分享好视频,收获好福气\n\n" """
  22. url = "http://aigc-api.cybertogether.net//aigc/dev/test/gpt"
  23. payload = json.dumps({
  24. "imageList": [],
  25. "model": "gpt-4o-mini-2024-07-18",
  26. "prompt": (
  27. prompt+
  28. f"请分析该标题,标题为:{title},返回结尾分享引导脚本。"
  29. ),
  30. "responseFormat": {
  31. "type": "json_schema",
  32. "json_schema": {
  33. "strict": True,
  34. "name": "share_script_result",
  35. "schema": {
  36. "type": "object",
  37. "properties": {
  38. "分享引导脚本": {
  39. "type": "string",
  40. "description": "生成的结尾分享引导脚本"
  41. }
  42. },
  43. "required": ["分享引导脚本"],
  44. "additionalProperties": False
  45. }
  46. }
  47. }
  48. })
  49. headers = {'Content-Type': 'application/json'}
  50. try:
  51. response = requests.post(url, headers=headers, data=payload, timeout=30)
  52. response_data = response.json()
  53. data = json.loads(response_data.get('data', '{}'))
  54. pw = data["分享引导脚本"]
  55. return pw
  56. except Exception as e:
  57. pw_srt_text = '老友们,这个视频说的太好了,请你在看完之后,不要私藏,分享给身边的亲人朋友,转发传递这份美好,这不仅是分享一个好视频,更是在传递一份深厚的祝福和好运,愿每个看到这消息的人,都能收获健康长寿和平安,希望您在看完后能够回传给我,并且把这条视频再传给3个群和3个好友,祝愿你我,健健康康,平平安安,因为3个数字代表着健康和平安,这么好的视频,千万不要在你的手里终止了,分享给群友们,他们看到以后一定会感谢你的,感谢分享,感谢传递'
  58. return pw_srt_text
  59. @classmethod
  60. def get_ai_mini_title(cls, title):
  61. url = "http://aigc-api.cybertogether.net//aigc/dev/test/gpt"
  62. payload = json.dumps({
  63. "imageList": [],
  64. "model": "gpt-4o-mini-2024-07-18",
  65. "prompt": (
  66. "CONTEXT"
  67. "你是一名短视频标题优化专家,任务是为短视频生成吸引力高且符合规范的标题。"
  68. "OBJECTIVE"
  69. "基于优秀标题要求及示例,生成新的、吸引用户注意的标题。"
  70. "TIME"
  71. "在标题生成请求提出后的1分钟内生成。"
  72. "ACTOR"
  73. "短视频标题优化专家"
  74. "RESOURCES"
  75. "- 原标题列表"
  76. "- 优秀标题示例"
  77. "- 标题生成规范和约束条件"
  78. "RESPONSE"
  79. "为每个原标题生成符合规范的新标题。"
  80. "生成示例标题案例及要求"
  81. "1. 标题开头包含醒目emoji🔴,整体字符长度必须控制在10-25个字"
  82. "2. 识别需要修改的标题中可能感兴趣的人群,并在标题中表现出来。人群示例如:群友们、退休人员、50~70后等"
  83. "3. 标题中可增加一些对内容的观点/态度,用人格化的方式表达,示例:太香了、老外至今难以相信"
  84. "4. 标题结尾可以根据标题内容增加一些引导语,格式参考示例但不必局限于示例。示例:你们见过吗、你听对不对、说的太好了、请听、太神奇了"
  85. "5. 对于包含#话题和@人的标题,则去除@人元素后,利用剩下的全部信息生成标题。"
  86. "6. 不能编造、新增原标题没有的信息,如原标题没有养老金,不能在生成的标题中出现养老金。"
  87. "7. 标题内不能使用强引导分享点击的词句,如:快来看看、大家都听一听、值得一看、都看看吧、你也来看看吧、大家注意、都听听等。"
  88. "8. 不能使用无实质信息和强烈诱导点击、紧急、夸张、震惊的描述,避免使用“震惊国人”、“速看”、“太震撼了”等类似描述。"
  89. "9. 标题需要简洁、清晰,不要使用网络流行语,如:太燃了、佛系、躺平、内卷等。"
  90. "Goodcase示例:"
  91. "⭕老外至今难以相信,中国人竟能把大桥建到天上,穿入云中"
  92. "🔴未来酒店体验,群友们,请看!"
  93. "⭕六七十年代的《忠字舞》,你们见过吗?"
  94. "🔴哈哈哈!大哥说的太好了!太真实了"
  95. "🔴今天,请记住那1700个集体赴死的年轻人,平均23岁!"
  96. "🔴这才叫老同学聚会,到了这个年纪,还能聚在一起真不容易!"
  97. "🔴百善孝为先,心凉了捂不热了"
  98. "🔴养儿不如养狗,一件真实的事!"
  99. "🔴让人受益的一段话,写得真好!"
  100. "🔴“处暑三劝”!发给最好的朋友劝一劝!"
  101. "🔴世间公道自在人心,善恶有报,人生智慧建议收藏!"
  102. "🔴坐着电梯登上山顶!这怕是只有中国人敢想敢做!"
  103. "🔴人老了!就应该这样去活!"
  104. "badcase示例:"
  105. "🌸绝对不能错过,快打开看看,越快越好"
  106. "所有老年人一定要看"
  107. "天大的好消息,5月开始实施❗"
  108. "就在刚刚,中国突然传出重磅消息,所有人都不敢相信! 🚩"
  109. "丧尽天良!为什么生病的人越来越多,原来吃的是这些 🎈"
  110. "今年的端午节太特殊,一辈子难遇一次!一定要看!错过别后悔"
  111. "好消息来了,千万别划走!"
  112. "紧急!已爆发,错过就晚了😱"
  113. f"请分析该标题,标题为:{title},返回新的标题。"
  114. ),
  115. "responseFormat": {
  116. "type": "json_schema",
  117. "json_schema": {
  118. "strict": True,
  119. "name": "share_script_result",
  120. "schema": {
  121. "type": "object",
  122. "properties": {
  123. "新标题": {
  124. "type": "string",
  125. "description": "生成新的标题"
  126. }
  127. },
  128. "required": ["新标题"],
  129. "additionalProperties": False
  130. }
  131. }
  132. }
  133. })
  134. headers = {'Content-Type': 'application/json'}
  135. max_retries = 3
  136. retry_count = 0
  137. while retry_count < max_retries:
  138. try:
  139. response = requests.post(url, headers=headers, data=payload, timeout=30)
  140. response_data = response.json()
  141. data = json.loads(response_data.get('data', '{}'))
  142. new_title = data["新标题"]
  143. return new_title
  144. except Exception as e:
  145. retry_count += 1
  146. # logger.error(f"尝试第 {retry_count} 次失败,错误: {e}")
  147. time.sleep(1) # 延迟1秒后重试
  148. return "这个视频,分享给我的老友,祝愿您能幸福安康"
  149. if __name__ == '__main__':
  150. GPT4oMini.get_ai_mini_pw("这段话说出了多少人的心声 #老百姓的心声 #老百姓关心的话题 #农民的心声 #老百姓不容易","AI片尾引导1")