Spaces:
Sleeping
Sleeping
File size: 1,654 Bytes
cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 cb6652c 1f69663 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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)
|