Spaces:
Sleeping
Sleeping
import gradio as gr | |
from optimum.pipelines import pipeline | |
from transformers import AutoTokenizer | |
# Load ONNX optimized model | |
model_name = "jinaai/jina-reranker-v2-base-multilingual" | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = pipeline("text-classification", model=model_name, tokenizer=tokenizer) | |
# Function to rerank documents | |
def rerank(query, documents): | |
documents = documents.split("&&&") | |
inputs = [[query, doc] for doc in documents if doc.strip()] | |
scores = model(inputs) | |
ranked_docs = sorted(zip(documents, [s['score'] for s in scores]), key=lambda x: x[1], reverse=True) | |
return [{"document": doc, "score": round(score, 4)} for doc, score in ranked_docs] | |
# Gradio Interface | |
iface = gr.Interface( | |
fn=rerank, | |
inputs=["text", gr.Textbox(label="Documents (Separate with &&&)", placeholder="Doc1 &&& Doc2 &&& Doc3")], | |
outputs="json", | |
title="JinaAI v2 Reranker API (Optimized)", | |
description="Enter a query and documents (separated by '&&&'). The model will rank them based on relevance.", | |
) | |
iface.launch() | |