paraphrase / app.py
omar12033's picture
Update app.py
1f69663 verified
import gradio as gr
import requests
import numpy as np
import os
# إعدادات الموديل
API_URL = "https://api-inference.huggingface.co/models/sentence-transformers/paraphrase-mpnet-base-v2"
HEADERS = {"Authorization": f"Bearer {os.getenv('HUGGINGFACE_API_TOKEN')}"}
def get_embedding(text):
response = requests.post(API_URL, headers=HEADERS, json={"inputs": text})
if response.status_code == 200:
return np.array(response.json()[0])
else:
return None
def cosine_similarity(vec1, vec2):
if vec1 is None or vec2 is None:
return "❌ Error fetching embeddings"
dot = np.dot(vec1, vec2)
norm_a = np.linalg.norm(vec1)
norm_b = np.linalg.norm(vec2)
if norm_a == 0 or norm_b == 0:
return 0.0
return float(dot / (norm_a * norm_b))
def compare_sentences(sentence1, sentence2):
embedding1 = get_embedding(sentence1)
embedding2 = get_embedding(sentence2)
similarity = cosine_similarity(embedding1, embedding2)
return {
"Sentence 1": sentence1,
"Sentence 2": sentence2,
"Cosine Similarity": round(similarity, 4) if isinstance(similarity, float) else similarity
}
# واجهة Gradio
iface = gr.Interface(
fn=compare_sentences,
inputs=[
gr.Textbox(label="Sentence 1", placeholder="Enter the first sentence..."),
gr.Textbox(label="Sentence 2", placeholder="Enter the second sentence...")
],
outputs="json",
title="Sentence Similarity using HuggingFace API",
description="Compares two sentences using the `paraphrase-mpnet-base-v2` model and returns the cosine similarity."
)
iface.launch(share=True)