jina-rerank / app.py
TheresaQWQ's picture
Update app.py
4d2a98a verified
import gradio as gr
from transformers import AutoModelForSequenceClassification
import torch
# Load the pre-trained model
model = AutoModelForSequenceClassification.from_pretrained(
'jinaai/jina-reranker-v2-base-multilingual',
torch_dtype="auto",
trust_remote_code=True,
)
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model.to(device) # Move model to GPU if available, otherwise CPU
model.eval()
def compute_scores(query, documents):
"""
Compute scores between a query and multiple documents using the loaded model.
Args:
query (str): The input query string.
documents (list of str): List of document strings to compare against the query.
Returns:
list of float: Scores representing the relevance of each document to the query.
"""
documents_list = documents.split('\n')
sentence_pairs = [[query, doc] for doc in documents_list]
scores = model.compute_score(sentence_pairs, max_length=1024)
return scores
# Define Gradio interface
iface = gr.Interface(
fn=compute_scores,
inputs=[
gr.Textbox(lines=2, placeholder="Enter your query here..."),
gr.Textbox(lines=8, placeholder="Enter your documents separated by newlines...")
],
outputs="json",
title="Sentence Pair Scoring with Jina Reranker Model",
description="This tool computes the relevance scores between a given query and a set of documents using the Jina Reranker model."
)
# Launch the interface
if __name__ == "__main__":
iface.launch()