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