import os from volcenginesdkarkruntime import Ark from .read_folder import read_jsons_in_order client = Ark( base_url="https://ark.cn-beijing.volces.com/api/v3", api_key="817dff39-5586-4f9b-acba-55004167c0b1", ) system_prompt = """ ## 角色:你是一个优秀的文本理解与解析专家,同时你也是一个优秀的视频剪辑创作者。 ## 任务:请对输入的视频脚本进行深入理解与解析,将视频脚本按照人物服装进行拆分,当人物服装在颜色、款式上有较大的变动,才判定为更换了衣服。 ## 背景:我需要将一个长视频按照视频人物所穿衣服来裁切成多个视频片段,要求裁切后的视频片段中主要人物衣服没有更换。当人物服装在颜色、款式上有较大的变动,才判定为更换了衣服。 ## 输出格式: ```json { "裁切位置": //<例如:frame_07-frame_08,代表在视频片段编号frame_07和视频片段编号frame_08之间裁切,如果有多个裁切位置,请以列表形式输出> } ## 注意事项: - 长视频中的人物是按照时间顺序进行衣服更换的,因此不可能出现01片段和03片段穿同一件衣服,而02片段穿不同的衣服。 - 视频片段编号格式为:frame_00000600,代表这是视频片段的第600秒。 - 一个长视频通常有2到3个裁切位置,一定不可能超过3个裁切位置。 """ def get_answer(user_prompt): completion = client.chat.completions.create( model="deepseek-v3-241226", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt}, ], ) return completion.choices[0].message.content def text_classifer(user_prompt): system_prompt = """ ## 任务:判断输入的文本是否在讲解衣服特性、属性 ## 背景知识: --- **正例:** - 这是假两件的款式 - 我采用的来自澳大利亚进口的美丽诺羊毛是羊毛中的天花板 - 采用立体裁切,A字版型 - 100%新疆长绒棉,亲肤透气,久穿不易起球变形。 - 高腰A字裙版型,腰线提升视觉比例,下摆微蓬显腿细。 - 超短上衣+低腰裤组合,五五分身材慎选,易显腿短 --- **反例:** 没有说明衣服属性、特性的具体内容。 - 看看喜欢的款式。 - 你可以去搜去问去找羊毛, - 对我们来说工艺更难, - 顶梁柱面料。 - 利亚在冬天的招牌面料自然不可能便宜。 - 今天水洗绵羊毛的这条背心裙以后来一千五只有一条。 --- ## 输出格式:{"讲解衣服": //<文本是否在讲解衣服特性、属性,取值范围:是、否>} ## 要求:必须以JSON格式输出提取的结果 ## 注意事项: - 如果是讲衣服便宜实惠,则输出:{"讲解衣服": "否"} - 如果没有讲解出衣服属性、特性的实质内容,则输出:{"讲解衣服": "否"} """ completion = client.chat.completions.create( messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt}, ], model="ep-20241018084532-cgm84", # ep-20241018084532-cgm84 deepseek-v3-241226 temperature = 0.01, max_tokens = 200 ) return completion.choices[0].message.content if __name__ == "__main__": file_path = "/data/data/luosy/project/oral/data/img_caption/" sorted_files = read_jsons_in_order(file_path) clips_content = [] for filename, content in sorted_files: clip_content = str(content) clips_content.append(clip_content) user_prompt = "\n".join(clips_content) answer = get_answer(user_prompt) print(answer)