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 |