Skip to content

Commit b0fbc78

Browse files
committed
After linting.
1 parent 8782c8e commit b0fbc78

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

app/models.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,4 @@ class QueryMultipleBody(BaseModel):
4747
class QueryMultipleDocs(BaseModel):
4848
query: str
4949
docs: List[str]
50-
config: dict
5150
k: int = 4

app/routes/document_routes.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
from app.utils.health import is_health_ok
4343

4444
router = APIRouter()
45+
reRankerInstance = Reranker(
46+
model_name=os.getenv("SIMPLE_RERANKER_MODEL_NAME"),
47+
model_type=os.getenv("SIMPLE_RERANKER_MODEL_TYPE"),
48+
lang=os.getenv("SIMPLE_RERANKER_LANG"),
49+
)
4550

4651

4752
def get_user_id(request: Request, entity_id: str = None) -> str:
@@ -704,6 +709,40 @@ async def query_embeddings_by_file_ids(request: Request, body: QueryMultipleBody
704709
)
705710
raise HTTPException(status_code=500, detail=str(e))
706711

712+
@router.post("/rerank")
713+
async def rerank_documents_by_query(request: Request, body: QueryMultipleDocs):
714+
try:
715+
docs = []
716+
for i, d in enumerate(body.docs):
717+
if isinstance(d, str):
718+
docs.append(ReRankDocument(text=d, doc_id=i))
719+
else:
720+
docs.append(
721+
ReRankDocument(
722+
text=d.get("text", ""),
723+
doc_id=d.get("doc_id", i),
724+
metadata=d.get("metadata", {}) or {},
725+
)
726+
)
727+
728+
top_k = body.k
729+
730+
results = reRankerInstance.rank(query=body.query, docs=docs)
731+
items = results.top_k(top_k) if top_k else results
732+
733+
return [
734+
{"text": getattr(r.document, "text", None), "score": r.score} for r in items
735+
]
736+
except Exception as e:
737+
logger.error(
738+
"Error in reranking documents | Query: %s | Error: %s | Traceback: %s",
739+
body.query,
740+
str(e),
741+
traceback.format_exc(),
742+
)
743+
raise HTTPException(status_code=500, detail=str(e))
744+
745+
707746
@router.post("/text")
708747
async def extract_text_from_file(
709748
request: Request,

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,6 @@ python-magic==0.4.27
3737
python-pptx==1.0.2
3838
xlrd==2.0.2
3939
pydantic==2.9.2
40-
chardet==5.2.0
4140
rerankers[transformers]==0.6.0
41+
rerankers[flashrank]==0.6.0
42+
chardet==5.2.0

0 commit comments

Comments
 (0)