| 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('<<CAPTIONS TIMED>>', f"{captions}").replace("<<NUMBER>>", 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("<<TIMED_CAPTIONS>>", 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 |