myrmidon / python /src /server /api_routes /rag_api.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.12 kB
from fastapi import APIRouter, Depends, HTTPException, status
from src.server.auth.dependencies import get_current_user
from src.server.schemas.rag import RagChunkResponse, RagSearchRequest, RagSearchResponse
from src.server.services.rag_service import RagService
router = APIRouter(prefix="/rag", tags=["rag"])
@router.post("/hybrid-search", response_model=RagSearchResponse)
async def hybrid_search(
request: RagSearchRequest,
current_user: dict = Depends(get_current_user),
):
try:
results = await RagService.hybrid_search(
query=request.query,
match_count=request.match_count,
similarity_threshold=request.similarity_threshold,
filter_dict=request.filter_dict,
source_filter=request.source_filter,
)
parsed_results = [RagChunkResponse(**r) for r in results]
return RagSearchResponse(status="success", results=parsed_results)
except Exception as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"RAG search failed: {str(e)}",
) from e