gpt4o_mini_help.py 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. import json
  2. import time
  3. import requests
  4. class GPT4oMini:
  5. @classmethod
  6. def get_ai_mini_pw(cls, title, prompt):
  7. if not prompt:
  8. prompt = """"请针对微信平台视频类小程序场景,面向人群是中国中老年人,在单聊、群聊场景,"
  9. "根据以下示例生成结尾引导分享的脚本,引导老年用户分享给好友和群,必须有6个带引导分享的句子,以老年人祝福的语气结尾。\n"
  10. "示例case1:\n"
  11. "标题: 几十年前的老歌,现在很少听到了!\n"
  12. "返回分享引导脚本: 这个视频真是难得,太美太好听了,看完真是回忆满满," "让人怀念那个时代,多么淳朴多么美好,今天大家都在群里转发这个视频," "老朋友你还记得吗?如果你也跟我一样深深的怀念,赶紧把这个视频转发到你所有群里去吧," "有多少群就转发多少群,不要私藏" "‌每一次分享都是一次奉献,一份真诚的情感‌‌" "转发给每一位都怀念当年岁月的老友,他们都会感谢你的" "多多转发,情谊多多!,"
  13. "祝每位老友健健康康,平平安安\n\n" "示例case2:\n"
  14. "标题: 🔺令人尊敬的老人❗❗这才是我们应该追的明星❗\n"
  15. "返回分享引导脚本: 这个视频发出来5天了,转发的人却寥寥无几,"
  16. "试想一次明星出轨就全民皆知,这样中国真正的正能量却无人关注,真是太讽刺了!"
  17. "如果你看到了这个视频,请分享到你加入的每个群,向杨老这种无私奉献的大爱致敬!" "发给5个群和5个好友,"
  18. "千万别让那些低调做好事的人心寒!转发传递下去,让世界都看到,中华民族的正能量!"
  19. "我已经转发了,也希望你能帮助传递"
  20. "赠人玫瑰,手留余香,分享好视频,收获好福气\n\n" """
  21. url = "http://aigc-api.cybertogether.net/aigc/dev/test/gpt"
  22. payload = json.dumps({
  23. "imageList": [],
  24. "model": "gpt-4o-mini-2024-07-18",
  25. "prompt": (
  26. prompt+
  27. f"请分析该标题,标题为:{title},返回结尾分享引导脚本。"
  28. ),
  29. "responseFormat": {
  30. "type": "json_schema",
  31. "json_schema": {
  32. "strict": True,
  33. "name": "share_script_result",
  34. "schema": {
  35. "type": "object",
  36. "properties": {
  37. "分享引导脚本": {
  38. "type": "string",
  39. "description": "生成的结尾分享引导脚本"
  40. }
  41. },
  42. "required": ["分享引导脚本"],
  43. "additionalProperties": False
  44. }
  45. }
  46. }
  47. })
  48. headers = {'Content-Type': 'application/json'}
  49. try:
  50. response = requests.post(url, headers=headers, data=payload, timeout=30)
  51. response_data = response.json()
  52. data = json.loads(response_data.get('data', '{}'))
  53. pw = data["分享引导脚本"]
  54. return pw
  55. except Exception as e:
  56. pw_srt_text = '老友们,这个视频说的太好了,请你在看完之后,不要私藏,分享给身边的亲人朋友,转发传递这份美好,这不仅是分享一个好视频,更是在传递一份深厚的祝福和好运,愿每个看到这消息的人,都能收获健康长寿和平安,希望您在看完后能够回传给我,并且把这条视频再传给3个群和3个好友,祝愿你我,健健康康,平平安安,因为3个数字代表着健康和平安,这么好的视频,千万不要在你的手里终止了,分享给群友们,他们看到以后一定会感谢你的,感谢分享,感谢传递'
  57. return pw_srt_text
  58. @classmethod
  59. def get_ai_mini_title(cls, title):
  60. url = "http://aigc-api.cybertogether.net/aigc/dev/test/gpt"
  61. payload = json.dumps({
  62. "imageList": [],
  63. "model": "gpt-4o-mini-2024-07-18",
  64. "prompt": (
  65. "CONTEXT"
  66. "你是一名短视频标题优化专家,任务是为短视频生成吸引力高且符合规范的标题。"
  67. "OBJECTIVE"
  68. "基于优秀标题要求及示例,生成新的、吸引用户注意的标题。"
  69. "TIME"
  70. "在标题生成请求提出后的1分钟内生成。"
  71. "ACTOR"
  72. "短视频标题优化专家"
  73. "RESOURCES"
  74. "- 原标题列表"
  75. "- 优秀标题示例"
  76. "- 标题生成规范和约束条件"
  77. "RESPONSE"
  78. "为每个原标题生成符合规范的新标题。"
  79. "生成示例标题案例及要求"
  80. "1. 标题开头包含醒目emoji🔴,整体字符长度必须控制在10-25个字"
  81. "2. 识别需要修改的标题中可能感兴趣的人群,并在标题中表现出来。人群示例如:群友们、退休人员、50~70后等"
  82. "3. 标题中可增加一些对内容的观点/态度,用人格化的方式表达,示例:太香了、老外至今难以相信"
  83. "4. 标题结尾可以根据标题内容增加一些引导语,格式参考示例但不必局限于示例。示例:你们见过吗、你听对不对、说的太好了、请听、太神奇了"
  84. "5. 对于包含#话题和@人的标题,则去除@人元素后,利用剩下的全部信息生成标题。"
  85. "6. 不能编造、新增原标题没有的信息,如原标题没有养老金,不能在生成的标题中出现养老金。"
  86. "7. 标题内不能使用强引导分享点击的词句,如:快来看看、大家都听一听、值得一看、都看看吧、你也来看看吧、大家注意、都听听等。"
  87. "8. 不能使用无实质信息和强烈诱导点击、紧急、夸张、震惊的描述,避免使用“震惊国人”、“速看”、“太震撼了”等类似描述。"
  88. "9. 标题需要简洁、清晰,不要使用网络流行语,如:太燃了、佛系、躺平、内卷等。"
  89. "Goodcase示例:"
  90. "⭕老外至今难以相信,中国人竟能把大桥建到天上,穿入云中"
  91. "🔴未来酒店体验,群友们,请看!"
  92. "⭕六七十年代的《忠字舞》,你们见过吗?"
  93. "🔴哈哈哈!大哥说的太好了!太真实了"
  94. "🔴今天,请记住那1700个集体赴死的年轻人,平均23岁!"
  95. "🔴这才叫老同学聚会,到了这个年纪,还能聚在一起真不容易!"
  96. "🔴百善孝为先,心凉了捂不热了"
  97. "🔴养儿不如养狗,一件真实的事!"
  98. "🔴让人受益的一段话,写得真好!"
  99. "🔴“处暑三劝”!发给最好的朋友劝一劝!"
  100. "🔴世间公道自在人心,善恶有报,人生智慧建议收藏!"
  101. "🔴坐着电梯登上山顶!这怕是只有中国人敢想敢做!"
  102. "🔴人老了!就应该这样去活!"
  103. "badcase示例:"
  104. "🌸绝对不能错过,快打开看看,越快越好"
  105. "所有老年人一定要看"
  106. "天大的好消息,5月开始实施❗"
  107. "就在刚刚,中国突然传出重磅消息,所有人都不敢相信! 🚩"
  108. "丧尽天良!为什么生病的人越来越多,原来吃的是这些 🎈"
  109. "今年的端午节太特殊,一辈子难遇一次!一定要看!错过别后悔"
  110. "好消息来了,千万别划走!"
  111. "紧急!已爆发,错过就晚了😱"
  112. f"请分析该标题,标题为:{title},返回新的标题。"
  113. ),
  114. "responseFormat": {
  115. "type": "json_schema",
  116. "json_schema": {
  117. "strict": True,
  118. "name": "share_script_result",
  119. "schema": {
  120. "type": "object",
  121. "properties": {
  122. "新标题": {
  123. "type": "string",
  124. "description": "生成新的标题"
  125. }
  126. },
  127. "required": ["新标题"],
  128. "additionalProperties": False
  129. }
  130. }
  131. }
  132. })
  133. headers = {'Content-Type': 'application/json'}
  134. max_retries = 3
  135. retry_count = 0
  136. while retry_count < max_retries:
  137. try:
  138. response = requests.post(url, headers=headers, data=payload, timeout=30)
  139. response_data = response.json()
  140. data = json.loads(response_data.get('data', '{}'))
  141. new_title = data["新标题"]
  142. return new_title
  143. except Exception as e:
  144. retry_count += 1
  145. # logger.error(f"尝试第 {retry_count} 次失败,错误: {e}")
  146. time.sleep(1) # 延迟1秒后重试
  147. return "这个视频,分享给我的老友,祝愿您能幸福安康"
  148. @classmethod
  149. def get_content_understanding_pw(cls, pw):
  150. """AI标题"""
  151. url = "http://aigc-api.cybertogether.net//aigc/dev/test/gpt"
  152. payload = json.dumps({
  153. "imageList": [],
  154. "model": "gpt-4o-mini-2024-07-18",
  155. "prompt": (
  156. "你是一名专业的短视频分析师,工作是帮助短视频平台的视频撰写视频结尾用于引导用户分享视频的文案。视频的主要用户为60岁以上中国老年人,请你理解视频内容,根据规则选择选择模板,并结合视频内容输出用于引导用户分享视频的文案。"
  157. "请注意:"
  158. "1、总的内容输出在100~150字之间,绝对不能低于100字,绝对不能超过150字,如果超过150字,可以针对模板进行适当删减。"
  159. "2、针对视频核心内容的提炼,内容需要适配老年人的阅读习惯和理解能力,禁止出现太燃了、佛系、躺平、内卷、炸裂等形容词,以及阶级固化等专业名词。"
  160. "3、模板中[]内的内容填充,不要超过15个字。"
  161. "规则:"
  162. "1、视频内容是否围绕着健康科普/安全防范/政策解读/生活技巧/情感激励等知识科普/信息通知的主题?若是,则根据视频内容在“科普/信息分享模板”中,选择合适的模板进行输出,无需处理其他规则。若不是,则继续处理规则2。"
  163. "2、视频内容是否围绕着对感动/温情/趣味/祝福、罕见画面、社会正能量等正面主题?若是,则根据视频内容在“正面情绪模板”中,选择合适的模板进行输出,无需处理其他规则。若不是,则继续处理规则3。"
  164. "3、频内容是否围绕着对社会风气/现象的不满/批判、对生活的不满等主题?若是,则根据视频内容在“负面情绪模板”中,选择合适的模板进行输出,无需处理其他规则。若不是,则继续处理规则4。"
  165. "4、若视频同时不符合规则1、2、3,则根据视频内容,在所有模板中选择适配的模板进行输出。"
  166. "输出内容包含:"
  167. "1、视频内容符合规则1/2/3/4中的哪一条?"
  168. "2、你选择的是哪一类模板,具体哪一条模板?"
  169. "3、引导语文案"
  170. "模板List:"
  171. "“科普/信息分享模板”"
  172. "模板1:健康科普类 ""这个视频讲解的[健康知识]真是太实用了,很多人都不知道原来[具体内容]还有这么多讲究。看完后我才明白,平时我们[具体行为]都做错了。群里的朋友们都说,这些知识太及时了,简直是生活中的智慧宝典。老朋友们,你们[相关问题]做对了吗?如果觉得这个视频对你有帮助,请马上转发到3个群里,让更多人了解正确的[健康知识]。记住,健康是最重要的,您的转发可能会帮助一位需要的朋友,让我们一起关爱健康,守护幸福。多多分享,感恩有你。"
  173. "模板2:安全防范类 ""各位老友们要注意了,这个视频提醒的[安全隐患]太重要了,现在的[具体威胁]真是防不胜防。看完后我心惊肉跳,原来我们身边竟然有这么多危险。为了家人的安全,请立即把这个视频转发到至少3个群里,让大家都提高警惕。特别是家里有老人和孩子的,一定要多加注意。记住,一个不小心就可能造成无法挽回的损失。您的一次转发,可能就会挽救一个家庭。让我们一起守护平安,转发传递,功德无量。"
  174. "模板3:政策解读类 ""重要通知!这个关于[最新政策]的视频太及时了,从[具体日期]开始实施的新规定,将给我们的生活带来重大变化。很多老年朋友还不知道这些新政策,可能会影响到我们的切身利益。为了不让身边的朋友吃亏,请大家一定要把这个视频转发到至少3个群里。让更多人了解这些新变化,提前做好准备。您的分享就是对他人的关爱,让我们互帮互助,共同进步。转发分享,福气多多。"
  175. "模板4:生活技巧类 ""看完这个视频,我才知道原来[日常行为]还可以这样做,太神奇了!视频里教的这些[具体技巧],简直是生活小妙招。群里的朋友们都说学到了,这些方法太实用了。特别是对我们这些[特定人群]来说,掌握这些技巧后,生活会变得更加便利。如果你也觉得有用,请马上转发到3个群,分享给身边的朋友,让大家一起学习这些生活智慧。记住,分享就是快乐,您的转发一定会帮助到需要的人。多多转发,感恩有你。"
  176. "模板5:情感激励类 ""这个视频的内容太有意义了,让我深受触动。在这个快节奏的社会里,我们常常忽视了[具体内容]的重要性。视频里说的每一句话都说到心坎里,相信看完的朋友们都会有同感。为了让更多人受益,请把这个视频转发到至少3个群里。特别是那些正在经历[具体困境]的朋友,看了一定会很有启发。记住,您的一次分享,可能就会改变一个人的生活。让我们用爱心传递温暖,共同创造更美好的明天。转发分享,福气满满。"
  177. "“正面情绪模板”"
  178. "模板1:感动温情类 ""亲爱的老朋友们,这个视频真是太[感动/温馨/暖心]了,看到[具体内容]的画面,让人心里暖暖的,相信您和我一样被深深打动。这份[幸福/感动/温情]太珍贵了,值得与更多人分享。请您一定要把这个视频转发到您所在的3个微信群,让更多的家人朋友感受这份美好。您的分享就是一份关爱,群友们看到后一定会感谢您的。多一次转发,多一份温暖,让我们一起传递这份感动,还在等什么,赶紧行动起来吧!"
  179. "模板2:趣味互动类 ""老朋友们,这个[有趣/精彩]的视频里,您觉得[具体内容]哪一个最棒呢?快来说说您的看法吧!看完后千万别私藏,一定要把这么精彩的内容转发分享到您所在的3个微信群,让群友们也一起来欣赏评论。这么有意思的视频,大家看到后一定会眼前一亮,纷纷感谢您的分享。记住,您的每一次转发都能带来好运哦!多多转发,福气多多,快乐多多。动动手指,传递欢乐,一起分享精彩时刻!"
  180. "模板3:祝福传递类 ""亲爱的朋友,这个充满[祝福/好运/福气]的视频,我第一时间就想到要分享给您。据说看到这个视频的人,只要转发给八个好友或三个群,就能收获满满的[福气/好运/健康]。我已经把这份祝福传递给了最重要的朋友,其中就包括您。请您也一定要把这份美好传递下去,转发到您所在的微信群,让更多人感受这份祝福。记住,千万不要让祝福在您手中终止,多多转发,幸福多多!"
  181. "模板4:文化传承类 ""老友们,这段展现[中华文化/传统技艺/民族精神]的视频太珍贵了!看到[具体内容],让人深感自豪。作为炎黄子孙,我们要把这份文化瑰宝传承下去。请您一定要把视频转发到3个群,让更多人了解我们的传统文化。您的每一次转发,都是对中华文化的传播,都是对传统的守护。让我们共同努力,让中华文化发扬光大。转发视频,传承文明,让更多人感受中华文化的魅力!"
  182. "模板5:稀奇见闻类 ""亲爱的朋友,这个展现[自然奇观/稀有现象/独特事物]的视频实在太难得了!这么[神奇/罕见/精彩]的画面,错过太可惜了。我第一时间就想分享给身边的好友,也包括您。请您看完后也别忘了转发分享到您所在的3个微信群,让群友们也大开眼界。这么稀奇的视频,绝对不能在您这里终止啊!据说转发的人都能沾上好运气呢。多多转发,惊喜多多,让我们一起分享这份难得的奇观,传递这份惊喜!"
  183. "“负面情绪模板”"
  184. "模板1:真实共鸣型 ""这个视频说出了我们的心里话,[视频核心内容提炼]真是太真实了。相信很多朋友看了都会有同感,这样难得的真话不常见。如果您也觉得说得对,请一定要转发分享给3个群的群友们看看。这样的真实声音,明天可能就听不到了。您的每一次转发,都是在发声,都是在传递真相。让我们一起行动起来,点点转发,让更多人听到这样的心声。"
  185. "模板2:善意提醒型 ""老朋友们,这个视频太重要了,[视频核心内容提炼]对我们每个人都很有帮助。看完后请您一定要转发分享到3个群,让所有的家人朋友都能从中受益。您的转发是对身边人的关心,是在传递祝福,他们看完一定会感谢您的。记得多多转发,这样明天您想再看的时候就能马上找到了。让我们一起把这份关爱传递下去,让更多人受益。祝愿您和家人平安健康!"
  186. "模板3:社会责任型 ""这个视频提到的[视频核心内容],关系到每个人的切身利益。如果您也认同,请动动手指转发到3个群,让所有人都能看到。这不仅仅是一个视频的传播,更是一份社会责任。请老友们多多转发,让更多人了解这个问题,引起全社会的重视。千万不要让这个视频在您这里停止传播,您的每一次转发都是在为社会尽一份力。让我们共同行动,让社会变得更好。"
  187. "模板4:情感共振型 ""看完这个视频,[视频核心内容提炼]真是让人感触良多。群里的朋友们都在转发,说看完后特别有感触。这样充满智慧和温度的内容值得分享,请您也加入传播的队伍,转发到您的群里,让更多人感受这份温暖。每一次转发都是在传递一份爱与理解,都是在为这个社会增添一份温暖。让我们一起把这份美好传递下去,让更多人受益。"
  188. "模板5:紧迫感召型 ""这个视频太重要了,[视频核心内容提炼]说得太对了!如果您看到这个视频,说明大家都在转发支持。请您立即行动起来,转发到您所有的群,一人行动十人知晓,百人传递,千人支持。现在就是行动的最好时机,明天再想看可能就找不到了。让我们一起努力,让这个声音传得更远。您的每一次转发,都是在发声,赶快行动起来! "
  189. f"请分析该内容,视频脚本内容为:{pw},返回新的片尾。"
  190. ),
  191. "responseFormat": {
  192. "type": "json_schema",
  193. "json_schema": {
  194. "strict": True,
  195. "name": "share_script_result",
  196. "schema": {
  197. "type": "object",
  198. "properties": {
  199. "新片尾": {
  200. "type": "string",
  201. "description": "生成新的片尾"
  202. }
  203. },
  204. "required": ["新片尾"],
  205. "additionalProperties": False
  206. }
  207. }
  208. }
  209. })
  210. headers = {'Content-Type': 'application/json'}
  211. response = requests.post(url, headers=headers, data=payload)
  212. response_data = response.json()
  213. data = json.loads(response_data.get('data', '{}'))
  214. new_pw = data["新片尾"]
  215. if new_pw:
  216. return new_pw
  217. else:
  218. return None
  219. if __name__ == '__main__':
  220. GPT4oMini.get_ai_mini_pw("这段话说出了多少人的心声 #老百姓的心声 #老百姓关心的话题 #农民的心声 #老百姓不容易","AI片尾引导1")