Spaces:
Running
Running
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 | |