MixoMax/Universal-Sentence-Encoder-Multilingual-3-Large
1
1import tensorflow as tf2import tensorflow_hub as hub3from tensorflow_text import SentencepieceTokenizer4import gradio as gr5import math6 7 8model = hub.load("./model")9 10def embed_text(text: str) -> dict:11 embeddings = model(text)12 return embeddings.numpy().tolist()[0]13 14embed_text_inter = gr.Interface(15 fn = embed_text,16 inputs = "text",17 outputs = gr.JSON(),18 title = "Universal Sentence Encoder 3 Large"19)20 21def distance(text_1: str, text_2: str) -> float:22 embeddings_1 = embed_text(text_1)23 embeddings_2 = embed_text(text_2)24 25 dist = 026 for i in range(len(embeddings_1)):27 dist += (embeddings_1[i] - embeddings_2[i]) ** 228 dist = math.sqrt(dist)29 return dist30 31 32distance_inter = gr.Interface(33 fn = distance,34 inputs = ["text", "text"],35 outputs = "number",36 title = "Universal Sentence Encoder 3 Large"37)38 39 40iface = gr.TabbedInterface(41 interface_list=[embed_text_inter, distance_inter],42 title="Universal Sentence Encoder 3 Large"43)44 45iface.launch()