Spaces:
Runtime error
Runtime error
| from typing import Any | |
| from fastapi import APIRouter, Depends, HTTPException | |
| from starlette.responses import Response | |
| import requests | |
| from app.deps.users import current_user | |
| from app.models.user import User | |
| from app.vectorstore.qdrant import qdrant_manager | |
| from app.openai.base import openai_manager | |
| from app.openai.core import ask, filter, summarize | |
| from pydantic import BaseModel | |
| class QueryRequest(BaseModel): | |
| query: str | |
| document_id: int | |
| class QueryResponse(BaseModel): | |
| answer: str | |
| document_id: int | |
| router = APIRouter(prefix="/queries") | |
| async def query( | |
| query_request: QueryRequest, | |
| response: Response, | |
| user: User = Depends(current_user), | |
| ) -> QueryResponse: | |
| # add check that this user actually owns this document | |
| query_vector = openai_manager.get_embedding(query_request.query) | |
| # print(">>>>>>>>>>>>") | |
| # print("query vector") | |
| # print(query_vector) | |
| # print(">>>>>>>>>>>>>>>") | |
| # print("document_id: ", query_request.document_id) | |
| # print("--------------") | |
| # print(">>>>>>>>>>>>") | |
| # print("user_id") | |
| # print(user.id.hex) | |
| points = qdrant_manager.search_point( | |
| query_vector=query_vector, | |
| user_id=str(user.id.hex), | |
| document_id=int(query_request.document_id), | |
| limit=1000, | |
| ) | |
| # print(">>>>>>>>>>>>") | |
| # print("points") | |
| # print(points) | |
| context = "\n\n\n".join([point.payload["chunk"] for point in points]) | |
| # print(">>>>>>>>>>>>") | |
| # print("context") | |
| # print(context) | |
| # filter_response = filter(context, query_request.query, openai_manager) | |
| # print(">>>>>>>>>>>>>>>>") | |
| # print("filter resopnse") | |
| # print(filter_response) | |
| # print("----------------") | |
| # remove later | |
| filter_response = True | |
| if filter_response: | |
| answer = ask( | |
| context, | |
| query_request.query, | |
| openai_manager, | |
| ) | |
| query_response = QueryResponse( | |
| answer=answer, document_id=query_request.document_id | |
| ) | |
| else: | |
| query_response = QueryResponse( | |
| answer="Sorry, Your question is out of Context!", | |
| document_id=query_request.document_id, | |
| ) | |
| return query_response | |