| 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() |