|
import gradio as gr |
|
from sentence_transformers import SentenceTransformer |
|
import numpy as np |
|
|
|
|
|
model = SentenceTransformer("preetidav/salesforce-similarity-model") |
|
|
|
|
|
def get_embedding(sentence): |
|
embedding = model.encode(sentence) |
|
return str(embedding) |
|
|
|
|
|
def get_similarity(sentence1, sentence2): |
|
emb1 = model.encode(sentence1) |
|
emb2 = model.encode(sentence2) |
|
similarity = np.dot(emb1, emb2) / (np.linalg.norm(emb1) * np.linalg.norm(emb2)) |
|
return f"Similarity Score: {similarity:.2f}" |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## Sentence Embedding & Similarity App π") |
|
|
|
with gr.Tab("Get Sentence Embedding"): |
|
input_text = gr.Textbox(label="Enter a sentence:") |
|
output_embedding = gr.Textbox(label="Embedding:") |
|
btn = gr.Button("Generate Embedding") |
|
btn.click(get_embedding, inputs=input_text, outputs=output_embedding) |
|
|
|
with gr.Tab("Compare Sentence Similarity"): |
|
text1 = gr.Textbox(label="Sentence 1:") |
|
text2 = gr.Textbox(label="Sentence 2:") |
|
output_similarity = gr.Textbox(label="Similarity Score:") |
|
btn2 = gr.Button("Compare") |
|
btn2.click(get_similarity, inputs=[text1, text2], outputs=output_similarity) |
|
|
|
|
|
demo.launch() |