MixoMax's picture
Update app.py
46ff08e verified
raw
history blame
1.1 kB
import tensorflow as tf
import tensorflow_hub as hub
from tensorflow_text import SentencepieceTokenizer
import gradio as gr
import math
model_url = "https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3"
model = hub.load(model_url)
def embed_text(text: str) -> dict:
embeddings = model(text)
return embeddings.numpy().tolist()[0]
embed_text_inter = gr.Interface(
fn = embed_text,
inputs = "text",
outputs = gr.JSON(),
title = "Universal Sentence Encoder 3 Large"
)
def distance(text_1: str, text_2: str) -> float:
embeddings_1 = embed_text(text_1)
embeddings_2 = embed_text(text_2)
dist = 0
for i in range(len(embeddings_1)):
dist += (embeddings_1[i] - embeddings_2[i]) ** 2
dist = math.sqrt(dist)
return dist
distance_inter = gr.Interface(
fn = distance,
inputs = ["text", "text"],
outputs = "number",
title = "Universal Sentence Encoder 3 Large"
)
iface = gr.TabbedInterface(
interface_list=[embed_text_inter, distance_inter],
title="Universal Sentence Encoder 3 Large"
)
iface.launch()