from shortGPT.gpt import gpt_utils import json def getImageQueryPairs(captions,n=15 ,maxTime=2): chat, _ = gpt_utils.load_local_yaml_prompt('prompt_templates/editing_generate_images.yaml') prompt = chat.replace('<>', f"{captions}").replace("<>", f"{n}") res = gpt_utils.gpt3Turbo_completion(chat_prompt=prompt) imagesCouples = ('{'+res).replace('{','').replace('}','').replace('\n', '').split(',') pairs = [] t0 = 0 end_audio = captions[-1][0][1] for a in imagesCouples: try: query = a[a.find("'")+1:a.rfind("'")] time = float(a.split(":")[0].replace(' ','')) if (time > t0 and time< end_audio): pairs.append((time, query+" image")) t0 = time except: print('problem extracting image queries from ', a) for i in range(len(pairs)): if(i!= len(pairs)-1): end = pairs[i][0]+ maxTime if (pairs[i+1][0] - pairs[i][0]) > maxTime else pairs[i+1][0] else: end = pairs[i][0]+ maxTime if (end_audio - pairs[i][0]) > maxTime else end_audio pairs[i] = ((pairs[i][0], end), pairs[i][1]) return pairs def getVideoSearchQueriesTimed(captions_timed): end = captions_timed[-1][0][1] chat, system = gpt_utils.load_local_yaml_prompt('prompt_templates/editing_generate_videos.yaml') chat = chat.replace("<>", f"{captions_timed}") out = [[[0,0],""]] while out[-1][0][1] != end: try: out = json.loads(gpt_utils.gpt3Turbo_completion(chat_prompt=chat, system=system, temp=1).replace("'", '"')) except Exception as e: print(e) print("not the right format") return out