1+ from utils .workflow_type import WorkflowType
2+
13AGENT_DESCRIPTION = """
24你是一个视频剪辑专家,你现在要做这样的一个任务:
35现在有一整段视频,来自于一名主播的直播录像,你要担任视频切片员,根据提供的切片指令要求进行切分。
1012"""
1113
1214
13-
1415def get_clip_prompt (query : dict , key : str ) -> str :
15- # 使用 textwrap.dedent 去除公共缩进
16- easy_prompt = (
17- f"你需要对一段视频执行剪辑操作,要求如下\n " +
18- f"在原素材上切分出一段视频,随后修改标题,要求全过程都使用工具完成。\n " +
19- f"参数如下:\n " +
20- f"1. origin_video_path: { query ['origin_video_path' ]} :\n " +
21- f"2. task_id: { query ['task_id' ]} \n " +
22- f"3. start_time:{ query ['start_time' ]} \n " +
23- f"4. stop_time:{ query ['stop_time' ]} \n " +
24- f"5. title: { query ['title' ]} \n " +
25- f"请完成剪辑任务,注意,每次任务结束后,都要调用任务结束对应的工具。"
26- )
27-
28- two_step_prompt = (
29- f"你需要对一段视频执行剪辑操作,要求如下\n " +
30- f"先在原素材上切分出两段视频,随后按顺序合并。\n " +
31- f"参数如下:\n " +
32- f"1. origin_video_path: { query ['origin_video_path' ]} :\n " +
33- f"2. 第一段视频\n " +
34- f" 2.1 task_id: { query ['clip' ][0 ]['task_id' ]} \n " +
35- f" 2.2. start_time:{ query ['clip' ][0 ]['start_time' ]} \n " +
36- f" 2.3. stop_time:{ query ['clip' ][0 ]['stop_time' ]} \n " +
37- f"3. 第二段视频\n " +
38- f" 3.1 task_id: { query ['clip' ][1 ]['task_id' ]} \n " +
39- f" 3.2 start_time:{ query ['clip' ][1 ]['start_time' ]} \n " +
40- f" 3.3 stop_time:{ query ['clip' ][1 ]['stop_time' ]} \n " +
41- f"4. 合并两段视频\n " +
42- f" 4.1 task_id: { query ['merge' ]['task_id' ]} ,\n " +
43- f" 4.2 video_paths: 请你根据前两段视频合并操作的结果来决定\n " +
44- f"5. 将视频重命名为\n " +
45- f"请完成剪辑任务\n "
46- )
47-
48-
49- prompt_dict = {
50- 'easy' : easy_prompt ,
51- 'two_step' : two_step_prompt
52- }
53- if key not in prompt_dict :
54- raise KeyError (f"Please set a usable key. I don't know what this '{ key } ' you found is." )
55-
56- return prompt_dict [key ]
16+ match key :
17+ case WorkflowType .EASY :
18+ prompt = (
19+ f"你需要对一段视频执行剪辑操作,要求如下\n " +
20+ f"在原素材上切分出一段视频,随后修改标题,要求全过程都使用工具完成。\n " +
21+ f"参数如下:\n " +
22+ f"1. origin_video_path: { query ['origin_video_path' ]} :\n " +
23+ f"2. task_id: { query ['task_id' ]} \n " +
24+ f"3. start_time:{ query ['start_time' ]} \n " +
25+ f"4. stop_time:{ query ['stop_time' ]} \n " +
26+ f"5. title: { query ['title' ]} \n " +
27+ f"请完成剪辑任务,注意,每次任务结束后,都要调用任务结束对应的工具。"
28+ )
29+ case WorkflowType .TWO_STEP :
30+ prompt = (
31+ f"你需要对一段视频执行剪辑操作,要求如下\n " +
32+ f"先在原素材上切分出两段视频,随后按顺序合并。\n " +
33+ f"参数如下:\n " +
34+ f"1. origin_video_path: { query ['origin_video_path' ]} :\n " +
35+ f"2. 第一段视频\n " +
36+ f" 2.1 task_id: { query ['clip' ][0 ]['task_id' ]} \n " +
37+ f" 2.2. start_time:{ query ['clip' ][0 ]['start_time' ]} \n " +
38+ f" 2.3. stop_time:{ query ['clip' ][0 ]['stop_time' ]} \n " +
39+ f"3. 第二段视频\n " +
40+ f" 3.1 task_id: { query ['clip' ][1 ]['task_id' ]} \n " +
41+ f" 3.2 start_time:{ query ['clip' ][1 ]['start_time' ]} \n " +
42+ f" 3.3 stop_time:{ query ['clip' ][1 ]['stop_time' ]} \n " +
43+ f"4. 合并两段视频\n " +
44+ f" 4.1 task_id: { query ['merge' ]['task_id' ]} ,\n " +
45+ f" 4.2 video_paths: 请你根据前两段视频合并操作的结果来决定\n " +
46+ f"5. 将视频重命名为\n " +
47+ f"请完成剪辑任务\n "
48+ )
49+ case _:
50+ raise KeyError (f"Please set a usable key. I don't know what this '{ key } ' you found is." )
51+
52+ return prompt
0 commit comments