File size: 1,225 Bytes
fcce6a8 699e6ab ff88e84 fcce6a8 7c49535 699e6ab 7c49535 699e6ab fcce6a8 699e6ab 7c49535 2a5588e 699e6ab 7c49535 157594b 7c49535 2a5588e 699e6ab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
from fastapi import FastAPI
import numpy as np
from sentence_transformers import CrossEncoder
from typing import List
from pydantic import BaseModel
app = FastAPI()
class InputListModel(BaseModel):
keywords: List[str]
contents: List[str]
class InputModel(BaseModel):
keyword: str
content: str
model = CrossEncoder(
"jinaai/jina-reranker-v2-base-multilingual",
trust_remote_code=True,
)
@app.get("/")
def greet_json():
return {"Hello": "World!"}
@app.post("/predict_list")
async def predict_list(inp : InputListModel):
sentence_pairs = [[query, doc] for query,doc in zip(inp.keywords, inp.contents)]
scores = model.predict(sentence_pairs, convert_to_tensor=False)#.tolist()
# (-scores).argsort().tolist()
return {"results":scores.tolist()}
@app.post("/predict")
async def predict(inp : InputModel):
sentence_pairs = [[inp.keyword, inp.content]]
scores = model.predict(sentence_pairs, convert_to_tensor=False)#.tolist()
# (-scores).argsort().tolist()
return {"results":scores.tolist()[0]}
# keywords = model.encode(inp.keywords)
# contents = model.encode(inp.contents)
# return {"results":np.linalg.norm(contents-keywords).tolist()}
|