|
import gradio as gr |
|
from sentence_transformers import SentenceTransformer |
|
import spaces |
|
import torch |
|
import ast |
|
|
|
|
|
model = SentenceTransformer("Qwen/Qwen3-Embedding-0.6B") |
|
|
|
@spaces.GPU |
|
def compute(queries_input, documents_input): |
|
try: |
|
|
|
queries = ast.literal_eval(queries_input) |
|
documents = ast.literal_eval(documents_input) |
|
|
|
|
|
if not isinstance(queries, list) or not isinstance(documents, list): |
|
return "Inputs must be lists." |
|
|
|
|
|
query_embeddings = model.encode(queries, prompt_name="query") |
|
document_embeddings = model.encode(documents) |
|
|
|
|
|
similarity_matrix = torch.tensor(model.similarity(query_embeddings, document_embeddings)) |
|
return similarity_matrix.tolist() |
|
except Exception as e: |
|
return str(e) |
|
|
|
demo = gr.Interface( |
|
fn=compute, |
|
inputs=[ |
|
gr.Textbox(label="Queries (Python list, e.g. ['query1', 'query2'])"), |
|
gr.Textbox(label="Documents (Python list, e.g. ['doc1', 'doc2'])") |
|
], |
|
outputs="json", |
|
title="embedding" |
|
) |
|
demo.launch() |