cross-encoder / main.py
Aravindhan-Master
[fix]: url path changes
c88f52d
raw
history blame contribute delete
803 Bytes
from sentence_transformers import CrossEncoder
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class ChunkSimilarityRequest(BaseModel):
query: str
chunks: list[str]
top_k: int = 5
model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L6-v2')
def keyword_similarity(query, candidates):
pairs = [[query, candidate] for candidate in candidates]
scores = model.predict(pairs)
return scores
@app.get("/")
async def health():
return {"status": "success"}
@app.post("/")
async def cross_encoding_similarity(
payload: ChunkSimilarityRequest
):
scores = keyword_similarity(payload.query, payload.chunks)
return [
chunk for chunk, _ in sorted(zip(payload.chunks, scores), key=lambda x: x[1], reverse=True)[:payload.top_k]
]