File size: 2,613 Bytes
b374298
12d3e1a
 
 
 
 
 
 
 
12b0dd7
1286e81
 
 
cb23311
1286e81
7eb86f7
 
1286e81
 
 
7eb86f7
cb23311
1286e81
 
7eb86f7
1286e81
baeaaa5
12b0dd7
7eb86f7
1286e81
8f3dc39
b374298
 
12b0dd7
 
2607648
 
 
cb23311
 
 
 
 
1286e81
baeaaa5
55f46c1
baeaaa5
12b0dd7
baeaaa5
cb23311
1286e81
12b0dd7
7eb86f7
 
 
 
 
 
 
 
 
 
 
 
b374298
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
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,
)


class GerarDocumentoView(AsyncAPIView):
    # parser_classes = [MultiPartParser]

    @extend_schema(
        request=GerarDocumentoSerializer,
    )
    async def post(self, request):
        print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
        serializer = GerarDocumentoSerializer(data=request.data)
        if serializer.is_valid(raise_exception=True):
            if not serializer.validated_data:
                raise ValueError("Erro no validated_data")
            data = cast(Dict[str, Any], serializer.validated_data)
            print("\n\ndata: ", 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)

            return Response({"resposta": resposta_llm})


class GerarDocumentoComPDFProprioView(AsyncAPIView):
    parser_classes = [MultiPartParser]

    @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)

            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)

            return Response({"resposta": resposta_llm})