Spaces:
Running
Running
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] | |
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}) | |