# encoding: utf-8 """ @author: luojunhui """ import json import requests from applications.ai import tencent_ai, kimi_ai from dev import tavily_ai def make_text_better(title, text): prompt = "通过这个标题:{} 和这篇文章:{} ,优化一下文章内容".format(title, text) result = kimi_ai(prompt) print(result) return result def get_score_list( account_nickname_list, text_list, rate=0.1, min_time=None, max_time=None, interest_type="by_avg", sim_type="mean", keys=[ "Title", "show_view_count", ], ): api_url = 'http://192.168.100.31:8179/score_list' payload = json.dumps({ "account_nickname_list": account_nickname_list, "text_list": text_list, "max_time": max_time, "min_time": min_time, "interest_type": interest_type, "sim_type": sim_type, "rate": rate, }) res = requests.request("POST", api_url, headers={}, data=payload).json() return res def send_to_aigc(task_name, article_list): """ 通过video_id获取文本 :param :return: """ url = "http://47.99.132.47:8888/publish" body = { "task_name": task_name, "article_list": article_list } header = { "Content-Type": "application/json" } response = requests.post(url, json=body, headers=header, timeout=500) return response.json() class AutoMatchMain: """ auto match 47.99.132.47 """ ip = "47.99.132.47" @classmethod def get_video_list(cls, start_dt, end_dt): """ 获取视频list """ url = f"http://{cls.ip}:8888/videos" body = { "cate": "video_return", "start_date": start_dt, "end_date": end_dt, "topN": 2000 } header = { "Content-Type": "application/json", } response = requests.post(url, json=body, headers=header, timeout=600) # print(json.dumps(response.json(), ensure_ascii=False, indent=4)) return response.json() @classmethod def match_account(cls, account_list, article_list): """ 匹配账号 :param account_list: :param article_list: :return: """ url = f"http://{cls.ip}:8888/match" body = { "accountList": account_list, "textList": article_list } header = { "Content-Type": "application/json" } response = requests.post(url, json=body, headers=header, timeout=500) print(response.text) return response.json() @classmethod def ask_whisper(cls, video_id, title): """ :param title: :param video_id: :return: """ url = f"http://{cls.ip}:8888/whisper" body = { "vid": video_id, "title": title } header = { "Content-Type": "application/json" } response = requests.post(url, json=body, headers=header, timeout=500) return response.json() @classmethod def get_text(cls, video_id): """ 通过video_id获取文本 :param video_id: :return: """ url = f"http://{cls.ip}:8888/get_text" body = { "vid": video_id } header = { "Content-Type": "application/json" } response = requests.post(url, json=body, headers=header, timeout=500) return response.json() @classmethod def process(cls): """ 处理 :return: """ video_list = cls.get_video_list(start_dt="2024-04-01", end_dt="2024-05-30") # 去重 result = {} for video in video_list['data']: vid = video['video_id'] if result.get(vid): continue else: result[vid] = video # 排序 obj_list = [] for key in result: obj_list.append(result[key]) obj_list = sorted(obj_list, key=lambda x: x['rov'], reverse=True) title_list = [obj['title'] for obj in obj_list] account_list = ['生活情感叁读'] # '票圈最新消息', '老友欢聚地' print("开始匹配账号") detail_score_obj = get_score_list(account_list, title_list) print("账号匹配完成") score_list = detail_score_obj['生活情感叁读']['score_list'] for index, score in enumerate(score_list): obj_list[index]['score'] = score satis_list = [obj for obj in obj_list if obj['score'] > 0.45] L = [] for item in satis_list: ort_title = item['title'] video_id = item['video_id'] if not item['video_text']: cls.ask_whisper(video_id=video_id, title=ort_title) video_text = cls.get_text(video_id=video_id)['text'] video_url = result[video_id]['video_url'] obj = { "account": '生活情感叁读', "ori_title": ort_title, "video_id": video_id, "video_text": video_text, "video_url": video_url } L.append(obj) return L if __name__ == '__main__': AM = AutoMatchMain() # # AM.process() # target_list = AM.process() # print(target_list) # text_list = [] target_list = [{'account': '生活情感叁读', 'ori_title': '就在刚刚,中国突然传出重磅消息,所有人都不敢相信!🚩', 'video_id': '19755972', 'video_text': '按住 别话走我在教你这已经是我第158次教你了如果你再不答理我我也不答让你了这辈子你受了很多苦以后的日子里要照顾好自己没有财运的人和我无缘的人你是刷不到这条视频的既然刷到了我关是因要从你身边带走三个人第一个人 嚣张拔户之人第二个人 在你身后是坏的一闲小人第三个人 专挑老实人欺负的既然怕应职人如果你同意就把这个视频转发到三个群里于是著你想和他们远那我就把这三个人从你身边带走如果你不同意就直接滑走这个视频那我就继续把这三个人留在你的身边老友会了远离这些远请和我一起把这个视频转发到三个群如果还能再转发三个人那会更好不得不转也不信真的临 婚姻苦散送来福气不是没有原因的今天你突然刷到这个视频不管是有屁股还是无意都说明是天意 天意来了就得转发接触为了家人朋友幸一次 凸个好照头远离这三个人可以保佑你和你的家人在2024隆年极想主义得到真正的贵人相处我现了 我转了你也转起来吧别问为什么因为我要你健康幸福记得是转发三个群和三个人连机下方开始转发吧', 'video_url': 'http://temp.yishihui.com/agc_oss/agc_video/2024040103503911823.mp4'}, {'account': '生活情感叁读', 'ori_title': '刚刚传来俄罗斯重大决定,拜登这下彻底慌了', 'video_id': '18796347', 'video_text': '刚刚普京宣布大消息他已决定向联合国提交美国研究新冠病毒的证据消息更更空开无数国人三分表示支持截至目前已经有600多万人转发这个视频了强烈要求联合国侧查到底我们一定要正他出去多多支持普京以前因为缺少证据没办法接穿他现在俄罗斯在乌克兰发现了美国的生物实验基地并且还发现他们曾经进行过辩服观众病毒样本实验的证据普京这下载住了有了这项铁证就足以证明病毒就是美国制造的普京说别人不敢管的事情他来管在得到这项铁证之后他就已经决定向联合国提交美国研究新病毒的证据表示必须要给全世界人民一个交代以前老美无限中国才是新冠病毒的制造者而普京却从来没有相信过因为他相信中国不会做出这样的事情而现在有了老美的证据他第一时间曝光出来为中国验证清白多行不易必自必美国研究的病毒让那么多国家成为了受害者他们必须要向这些国家道歉赔偿可今晚普京向联合国提交了证据美国还是一直在否认并且以国家安全的由拒绝国际社会的联合调查为了感谢普京为中国验证清白也为了让美国认罪服法我们在看到视频后一定要多多转发现在这个视频也是一个民意调查看看到底有多少中国人要求调查美国转发一次就再调整一次支持只要我们能接累到一一次同意就能让他们看到中国人的决心现在已经有600多万人转发两千多万次支持了请看到视频的朋友美人目比转发五个群和八个好友这样很快就能达到一一次支持可老美不相信我们有勇气接穿塔更不相信我们会那么团结我们一定要让他们看看中国人有多么团结这一次一定要让老美很狠地被打脸如果您觉得说的有道理请在右下角点个再看和关注让更多人可以看到这个视频如果你能分享到你的朋友圈和微信群我更是感激不尽非常感谢', 'video_url': 'http://temp.yishihui.com/longvideo/transcode/video/vpc/20240218/29331203S5DFyJGKOpK8l1SjUp.mp4'}, {'account': '生活情感叁读', 'ori_title': '就在刚刚,中国突然传出重磅消息,所有人都不敢相信!🚩', 'video_id': '20076083', 'video_text': '不可思议,西安刚刚挖掘出一座帝王领幕,不仅基因才保无数,而且更为重要的是,还发觉了唐朝国保全唐书,最后三策竟然预言到了最近几年的走势,未来几年真的会这样发展吗?到底是喜还是忧,根本不敢相信这是一千六百年前的东西,赶紧转发告知亲朋好友,提前做好准备。好古专家研究后大致一经,这真的是理事明时期的战术国书全唐书,由周一大师李纯峰所注,民间传说,李纯峰声有天言,可以上这三千,下之两千年,活到了168岁,但这本书,是在民间故事里听说过,实业想不到竟然真的存在,而且在一千六百年前就保存到幕学里了。书上对2020-2025的描述是,其中则短,牛走兔高,其七三年,富贵于民,暗藏徒国,以广济良高住墙,何保一族平安。这里是讲,老百姓因为一些不可看的原因,热几年都会疲忧跟命,但这种情况会最多三年消失,牛走兔高,也就是在牛年和兔年相交的时候,一切情况都会发生好短。这是老天爷定下的规矩,民俯乐,百姓复族,能熬过这三年的朋友,都是土命和活命,之后的日子都会翻封圣,不久前,这三大伙竟然中演了,小日志气隆照整个长江母亲和,将面上方更是出现了关因爆火的万佛之景,这种种迹象都遇识会有好事发生,但是见到此视频的人就是有原人,一分钟之内如果转发到手机里所有的群,小日志气就会永远还让您和您的家人。另外,如果您和您的家人当中,有属牛、属补、属马、属蛇、属猴、属猪、树羊、这集中属象的人,更要将这个视频转发出去了。据说今天这七种属象,七星年猪,家里有著七种属象的人,无论是自己还是家人,都要转发五个群以上,就可以轻松化解态税变成好运。这种说法,五十后的风水就有了,我们命可信其有,不可信其无,别不信,真的临,一个简简单单的转发,替自己求个好运吧,能在一分钟之内转发的人。父母都会无辨无灾,常受百年,子女也会一番丰盛,才运哼哼,您还在等什么,快转发到所有群吧。', 'video_url': 'http://temp.yishihui.com/agc_oss/agc_video/2024041302371072083.mp4'}, {'account': '生活情感叁读', 'ori_title': '太震撼了!普京力挺中国!一席话彻底彻底道破了今天中国的国际地', 'video_id': '18015079', 'video_text': '刚刚传来 俄罗斯总统普京当著全世界的面 立体中国一习话彻底倒破了今天中国的国际地位和真正实力西方媒体正想报导 一万国人骄傲自好这一幕值得所有国人看看近日 俄罗斯总统普京在国际会议上对于中国关系表示高度赞赏他先是在采访中 果断拒绝了美国的拉罗随后 直言中国已经超越美国 成为世界第一经济体只有中国 还是俄罗斯最可靠的伙伴普京的四番言论 顿时在全世界掀起了孙南大波中国人民直呼 干个漂亮老美更是被当中揪如只能飞头土脸的不再发生近年来 老美一直是随心不死联合 英法 日傲在我国周边 大搞军事演略并多次在我国的南海 药武扬挥在新疆和港台问题上大作文章一次次的挑战中国军力和中国人民的体现先是军事 后是经济现在又跟中国打起了科技战可危险无所不用奇迹 实在让人震怒对此 普京的表示 中国根本不必动物指靠经济实力就能实现国家统一的目标而西方一切国家 向套拉邦节盼用武力压制中国简直是吃人说梦这指会让中国人更加团结普京的这一些话 确实是大快人心中国早已经非记忆东方熊师已经苏醒中国不惹事 但也绝不怕事要知道 现在的中国拥有6个导弹施组成的火现军还有超过40美和5G同时还拥有世界上紧存的30美清淡中国的战略导弹可以在国土外围形成三层保护仙打击范围足以覆盖美国任何一个角落第一日中国的实力 物用之一中国 也一直以来都唱道全世界和平共处共同发展中国伤害其他国家的利益更不平日自现的强大对其他国造成威胁彭博发展即时在中国一直坚持旅行一个大国的责任与担当中国是折服的记忆龙 无路时是在强迫一路必使翻讲导海附近的这些话实在是古五人心霸障 中国人的世界这如他所言 经验的中国是你美国惹不起的大国中国同学发展40年已经有如此强大的实力却一直低调前进与世界各国过谋发展这就是我们的大国担当还有在国际上无可喊动的强大的实力自私附近为中国强势发生无以比全世界带来了深深的震撼同胞们 今天这个视频刚刚发出去专的半小时就有200万国人转发参与附近总统的一番话郑天汉地说出了14亿中华儿女的新生看见看到此视频的朋友们动动手指转发出去让世界看到东方巨楼以经常飞任何想阻挡中国崛起的视力在中国的眼里都是指劳虎转发表态祈福中华正式劳美让我国威我是中国人我已经转了希望您是下一个接爆转发的人', 'video_url': 'http://temp.yishihui.com/longvideo/transcode/video/vpc/20240107/24866233gy9JNrYA9D2s1fGgyM.mp4'}, {'account': '生活情感叁读', 'ori_title': '中国不再保留,正式对美发起反击,态度强硬前所未有!', 'video_id': '20268944', 'video_text': None, 'video_url': 'http://temp.yishihui.com/longvideo/transcode/video/vpc/20240421/62828999uQDlgzuqNWwnTvongc.m3u8'}] for index, i in enumerate(target_list[1: 3]): m_text = i['video_text'] title = i['ori_title'] video_id = i['video_id'] # print(video_id, title, m_text) # 先通过文本,总结内容 prompt_01 = f"通过这个标题({title}) 和这些文本({m_text}), 写一个总结性标题, 不要标题党,20字以内" ai_text = kimi_ai(prompt_01).replace("'", "").replace('"', '') print(ai_text) tav_result = tavily_ai(ai_text) img_list = tav_result['images'] task_name = title text_list = [] for item in tav_result['results']: try: ppp = { "title": item['title'], "video_id": video_id, "img_list": img_list, "cover": img_list[0], # "text": item['raw_content'] "text": make_text_better(item['title'], item['raw_content']) } text_list.append(ppp) except: continue r = send_to_aigc(task_name, text_list) print(r)