Spaces:
Running
Running
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from sentence_transformers import CrossEncoder | |
| app = FastAPI() | |
| model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L6-v2') | |
| class RerankRequest(BaseModel): | |
| query: str | |
| documents: list[str] | |
| def rerank(request: RerankRequest): | |
| if not request.documents: | |
| raise HTTPException(400, "No documents provided") | |
| pairs = [[request.query, doc] for doc in request.documents] | |
| scores = model.predict(pairs).tolist() | |
| ranked = sorted(zip(request.documents, scores), key=lambda x: x[1], reverse=True) | |
| return {"results": [{"document": doc, "score": score} for doc, score in ranked]} | |
| def health(): | |
| return {"status": "ok"} |