luanpoppe
feat: add print
a561ff7
raw
history blame
3.38 kB
from typing import Any, Dict, cast
from setup.easy_imports import (
Response,
AsyncAPIView,
APIView,
MultiPartParser,
extend_schema,
)
from datetime import datetime
from _utils.handle_files import handle_pdf_files_from_serializer, remove_pdf_temp_files
from _utils.resumo_completo_cursor import (
get_llm_summary_answer_by_cursor_complete,
)
from _utils.gerar_relatorio_modelo_usuario.prompts import prompt_auxiliar_inicio
from .serializer import (
GerarDocumentoComPDFProprioSerializer,
GerarDocumentoSerializer,
)
import asyncio
class GerarDocumentoView(AsyncAPIView):
# parser_classes = [MultiPartParser]
serializer = {}
@extend_schema(
request=GerarDocumentoSerializer,
)
async def post(self, request):
print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
print('request.data: ', request.data)
serializer = GerarDocumentoSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
if not serializer.validated_data:
raise ValueError("Erro no validated_data")
async def proccess_data_after_response():
# await asyncio.sleep(0)
data = cast(Dict[str, Any], serializer.validated_data)
print("\ndata: ", data)
self.serializer = data
# data["prompt_auxiliar"] = (
# prompt_auxiliar_inicio + "\n" + data["prompt_auxiliar"]
# )
# listaPDFs = handle_pdf_files_from_serializer(data["files"])
listaPDFs = [l["link_arquivo"] for l in data["files"]]
print("\n\nlistaPDFs: ", listaPDFs)
resposta_llm = await get_llm_summary_answer_by_cursor_complete(
data, listaPDFs, True
)
print("\n\nresposta_llm: ", resposta_llm)
# remove_pdf_temp_files(listaPDFs)
# print("PRÓXIMA LINHA ENVIA A RESPOSTA A QUEM FEZ A REQUISIÇÃO")
# asyncio.create_task(proccess_data_after_response())
loop = asyncio.get_running_loop()
loop.run_in_executor(None, lambda: asyncio.run(proccess_data_after_response()))
return Response({"resposta": "Requisição está sendo processada em segundo plano"})
class GerarDocumentoComPDFProprioView(AsyncAPIView):
parser_classes = [MultiPartParser]
serializer = {}
@extend_schema(
request=GerarDocumentoComPDFProprioSerializer,
)
async def post(self, request):
print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
serializer = GerarDocumentoComPDFProprioSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
data = cast(Dict[str, Any], serializer.validated_data)
print("\n\ndata: ", data)
self.serializer = data
listaPDFs = handle_pdf_files_from_serializer(data["files"])
resposta_llm = await get_llm_summary_answer_by_cursor_complete(
data, listaPDFs
)
print("\n\nresposta_llm: ", resposta_llm)
remove_pdf_temp_files(listaPDFs)
print("PRÓXIMA LINHA ENVIA A RESPOSTA A QUEM FEZ A REQUISIÇÃO")
return Response({"resposta": resposta_llm})