vella-backend-tests / _utils /gerar_documento.py
luanpoppe
feat: minor feat
59c4521
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