Spaces:
Sleeping
Sleeping
File size: 3,381 Bytes
b374298 12d3e1a 12b0dd7 1286e81 cb23311 1286e81 7eb86f7 1286e81 095b5f1 1286e81 7eb86f7 cb23311 095b5f1 1286e81 7eb86f7 1286e81 baeaaa5 12b0dd7 a561ff7 7eb86f7 1286e81 8f3dc39 b374298 095b5f1 12b0dd7 095b5f1 cb23311 095b5f1 cb23311 095b5f1 1286e81 095b5f1 baeaaa5 095b5f1 1286e81 095b5f1 7eb86f7 095b5f1 7eb86f7 b374298 7eb86f7 095b5f1 7eb86f7 0f952b3 7eb86f7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
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})
|