from functools import partial import json from multiprocessing.pool import ThreadPool as Pool import gradio as gr from utils import * from clip_retrieval.clip_client import ClipClient def text2image_gr(): def clip_api(query_text='', return_n=8, model_name=clip_base, thumbnail="是"): #client = ClipClient(url="http://9.135.121.52:1234//knn-service", client = ClipClient(url="http://127.0.0.1:1234//knn-service", indice_name="ltr_cover_index", aesthetic_weight=0, num_images=int(return_n)) #result = client.query(embedding_input=query_emb) result = client.query(text=query_text) if not result or len(result) == 0: print("no result found") return None print(f"get result sucessed, num: {len(result)}") cover_urls = [res['cover_url'] for res in result] cover_info = [] for res in result: json_info = {"cover_url": res['cover_url'], "similarity": round(res['similarity'], 6), "docid": res['docids']} cover_info.append(str(json_info)) pool = Pool() new_url2image = partial(url2img, thumbnail=thumbnail) ret_imgs = pool.map(new_url2image, cover_urls) pool.close() pool.join() new_ret = [] for i in range(len(ret_imgs)): new_ret.append([ret_imgs[i], cover_info[i]]) return new_ret examples = [ ["cat", 12, clip_base, "是"], ["dog", 12, clip_base, "是"], ["bag", 12, clip_base, "是"], ["a cat is sit on the table", 12, clip_base, "是"] ] title = "