File size: 2,068 Bytes
1fd7b67
aae4d3d
f9a1a18
 
2ce5e93
dc376b6
1286e81
ca8a144
a1f037d
 
 
 
 
ab34606
1fd7b67
c625f4c
 
 
1fd7b67
c625f4c
 
1fd7b67
756fca0
a1f037d
 
 
 
ab34606
a1f037d
59c4521
f8e2c8b
f9a1a18
aae4d3d
d514965
aae4d3d
f8e2c8b
aae4d3d
a263183
f9a1a18
a263183
f9a1a18
a263183
f9a1a18
f8e2c8b
f9a1a18
f8e2c8b
 
 
 
f9a1a18
f8e2c8b
f9a1a18
d8410b4
f8e2c8b
f9a1a18
f8e2c8b
 
f9a1a18
 
f8e2c8b
aae4d3d
f8e2c8b
 
f9a1a18
a1c6081
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
import os
from typing import Any, Union
from _utils.custom_exception_handler import custom_exception_handler_without_api_handler
from rest_framework.response import Response
from _utils.gerar_documento_utils.GerarDocumento import (
    GerarDocumento,
)

from gerar_documento.serializer import (
    GerarDocumentoComPDFProprioSerializer,
    GerarDocumentoComPDFProprioSerializerData,
    GerarDocumentoSerializerData,
)
from setup.logging import Axiom


os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ.get("LANGCHAIN_API_KEY")
os.environ["LANGCHAIN_PROJECT"] = "VELLA"


async def gerar_documento(
    serializer: Union[
        GerarDocumentoSerializerData, GerarDocumentoComPDFProprioSerializerData, Any
    ],
    listaPDFs,
    axiom_instance: Axiom,
    isBubble=False,
) -> Response | dict[str, Any]:
    try:
        summarizer = GerarDocumento(serializer, isBubble, axiom_instance)
        summarizer.lista_pdfs = listaPDFs

        await summarizer.get_text_and_pdf_chunks()

        await summarizer.get_response_from_auxiliar_contextual_prompt()

        await summarizer.generate_chunks_processados()

        await summarizer.generate_query_for_vector_store()

        await summarizer.create_enhanced_vector_store()

        structured_summaries = await summarizer.do_last_requests()

        if not isinstance(structured_summaries, list):
            return Response({"erro": structured_summaries})

        await summarizer.generate_complete_text()

        await summarizer.get_document_title()

        if isBubble:
            await summarizer.send_to_bubble()

        return {
            "texto_completo": summarizer.texto_completo_como_html,
            "titulo_do_documento": summarizer.titulo_do_documento,
            "resultado": structured_summaries,
            "parametros-utilizados": summarizer.gerar_resposta_compilada(),
        }
    except Exception as e:
        custom_exception_handler_without_api_handler(e, serializer, axiom_instance)
        raise