from shortGPT.api_utils.image_api import getBingImages from tqdm import tqdm import random import math def getImageUrlsTimed(imageTextPairs): return [(pair[0], searchImageUrlsFromQuery(pair[1])) for pair in tqdm(imageTextPairs, desc='Search engine queries for images...')] def searchImageUrlsFromQuery(query, top=3, expected_dim=[720,720], retries=5): images = getBingImages(query, retries=retries) if(images): distances = list(map(lambda x: math.dist([x['width'], x['height']], expected_dim), images[0:top])) shortest_ones = sorted(distances) random.shuffle(shortest_ones) for distance in shortest_ones: image_url = images[distances.index(distance)]['url'] return image_url return None