Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import json | |
| from sentence_transformers import SentenceTransformer, util | |
| def predict(body): | |
| # Check if body is a string and try to convert it to a dictionary | |
| if isinstance(body, str): | |
| try: | |
| body = json.loads(body) | |
| except json.JSONDecodeError: | |
| return {"error": "Invalid input format. Please provide a dictionary or a valid JSON string."} | |
| # Extract text1 and text2 from the body | |
| t1 = body.get("text1") | |
| t2 = body.get("text2") | |
| # Check if text1 and text2 are not None | |
| if t1 is None or t2 is None: | |
| return {"error": "Missing text1 or text2 in the input."} | |
| # Initialize the model | |
| model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2') | |
| # Compute embeddings for both texts | |
| embedding_1 = model.encode(t1, convert_to_tensor=True) | |
| embedding_2 = model.encode(t2, convert_to_tensor=True) | |
| # Compute the cosine similarity | |
| similarity_score = util.pytorch_cos_sim(embedding_1, embedding_2) | |
| # Return the result in the desired format | |
| return {"similarity score": similarity_score.item()} | |
| iface = gr.Interface(fn=predict, inputs="text", outputs="text") | |
| iface.launch(share=True) | |