| 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 |