luanpoppe
fix
08ffa6d
raw
history blame
2.01 kB
from rest_framework.views import APIView
from adrf.views import APIView as AsyncAPIView
import tempfile, os
from rest_framework.response import Response
from _utils.resumo_completo_cursor import (
get_llm_summary_answer_by_cursor_complete,
)
from .serializer import (
ResumoCursorCompeltoSerializer,
)
from rest_framework.parsers import MultiPartParser
from drf_spectacular.utils import extend_schema
class ResumoSimplesCursorCompletoView(AsyncAPIView):
parser_classes = [MultiPartParser]
@extend_schema(
request=ResumoCursorCompeltoSerializer,
)
async def post(self, request):
serializer = ResumoCursorCompeltoSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
print("\n\n\n")
listaPDFs = []
data = serializer.validated_data
print("\nserializer.validated_data: ", serializer.validated_data)
for file in serializer.validated_data["files"]:
file.seek(0)
with tempfile.NamedTemporaryFile(
delete=False, suffix=".pdf"
) as temp_file: # Create a temporary file to save the uploaded PDF
for (
chunk
) in (
file.chunks()
): # Write the uploaded file content to the temporary file
temp_file.write(chunk)
temp_file_path = (
temp_file.name
) # Get the path of the temporary file
listaPDFs.append(temp_file_path)
print("listaPDFs: ", listaPDFs)
resposta_llm = await get_llm_summary_answer_by_cursor_complete(
data, listaPDFs
)
final = resposta_llm
print("\n\n\n")
print("final: ", final)
for file in listaPDFs:
os.remove(file)
return Response({"resposta": final})