luanpoppe commited on
Commit
b909baa
·
1 Parent(s): 78aaed0

fix: adicionando mais regexs aos contextuals

Browse files
_utils/gerar_documento_utils/contextual_retriever.py CHANGED
@@ -257,12 +257,14 @@ class ContextualRetrieverUtils:
257
 
258
  def check_regex_patterns(self, context: str, lista_de_document_ids: List[int]):
259
  patterns = [
260
- # r"\[*([\d.\-]+)\]*\s*---\s*\[*([^]]+)\]*\s*---\s*\[*([^]]+)\]*\s*</chunk_context>", # PRIMEIRO DE TODOS
261
- # r"<chunk_context>\s*([\d.\-]+)\s*---\s*([^<]+)\s*---\s*([^<]+)\s*</chunk_context>",
262
  r"\[(.*?)\] --- \[(.*?)\] --- \[(.*?)\](?=\n|\s*$)",
263
  r"\[([^\[\]]+?)\]\s*---\s*\[([^\[\]]+?)\]\s*---\s*(.*?)</chunk_context>",
264
  r"<chunk_context>\s*(\d+)(?:\s*-\s*Pág\.\s*\d+)?\s*---\s*([^-\n]+)\s*---\s*([^<]+)</chunk_context>",
265
  r"<chunk_context>\s*(?:\[*([\d]+)\]*\s*[-–]*\s*(?:Pág\.\s*\d+\s*[-–]*)?)?\s*\[*([^\]]+)\]*\s*[-–]*\s*\[*([^\]]+)\]*\s*[-–]*\s*\[*([^\]]+)\]*\s*</chunk_context>",
 
 
 
 
266
  # r"\[([\d.\-]+)\]\s*---\s*\[([^]]+)\]\s*---\s*\[([^]]+)\]\s*</chunk_context>",
267
  # r"<chunk_context>\s*\[?([\d.\-]+)\]?\s*---\s*\[?([^\]\[]+?)\]?\s*---\s*\[?([^<]+?)\]?\s*</chunk_context>",
268
  # r"<chunk_context>\s*\[([\d.\-]+)\]\s*---\s*\[([^\]]+)\]\s*---\s*\[([^\]]+)\]\s*</chunk_context>"
@@ -272,6 +274,7 @@ class ContextualRetrieverUtils:
272
  resultado = None
273
  for pattern in patterns:
274
  matches: List[str] = re.findall(pattern, context, re.DOTALL)
 
275
  condition_tuples_3_items = all(len(m) == 3 for m in matches)
276
  if len(matches) == len(lista_de_document_ids) and condition_tuples_3_items:
277
  print("\n--------------- REGEX DO CONTEXTUAL FUNCIONOU")
@@ -286,6 +289,38 @@ class ContextualRetrieverUtils:
286
  resultado.append((first_item, m[1], m[2]))
287
  break
288
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  return resultado
290
 
291
 
 
257
 
258
  def check_regex_patterns(self, context: str, lista_de_document_ids: List[int]):
259
  patterns = [
 
 
260
  r"\[(.*?)\] --- \[(.*?)\] --- \[(.*?)\](?=\n|\s*$)",
261
  r"\[([^\[\]]+?)\]\s*---\s*\[([^\[\]]+?)\]\s*---\s*(.*?)</chunk_context>",
262
  r"<chunk_context>\s*(\d+)(?:\s*-\s*Pág\.\s*\d+)?\s*---\s*([^-\n]+)\s*---\s*([^<]+)</chunk_context>",
263
  r"<chunk_context>\s*(?:\[*([\d]+)\]*\s*[-–]*\s*(?:Pág\.\s*\d+\s*[-–]*)?)?\s*\[*([^\]]+)\]*\s*[-–]*\s*\[*([^\]]+)\]*\s*[-–]*\s*\[*([^\]]+)\]*\s*</chunk_context>",
264
+ r"<chunk_context>\s*(.*?)\s*---\s*(.*?)\s*---\s*(.*?)\s*</chunk_context>",
265
+ # -------------- ABAIXO SÃO OS ANTIGOS
266
+ # r"\[*([\d.\-]+)\]*\s*---\s*\[*([^]]+)\]*\s*---\s*\[*([^]]+)\]*\s*</chunk_context>", # PRIMEIRO DE TODOS
267
+ # r"<chunk_context>\s*([\d.\-]+)\s*---\s*([^<]+)\s*---\s*([^<]+)\s*</chunk_context>",
268
  # r"\[([\d.\-]+)\]\s*---\s*\[([^]]+)\]\s*---\s*\[([^]]+)\]\s*</chunk_context>",
269
  # r"<chunk_context>\s*\[?([\d.\-]+)\]?\s*---\s*\[?([^\]\[]+?)\]?\s*---\s*\[?([^<]+?)\]?\s*</chunk_context>",
270
  # r"<chunk_context>\s*\[([\d.\-]+)\]\s*---\s*\[([^\]]+)\]\s*---\s*\[([^\]]+)\]\s*</chunk_context>"
 
274
  resultado = None
275
  for pattern in patterns:
276
  matches: List[str] = re.findall(pattern, context, re.DOTALL)
277
+ print("\n\nmatches", matches)
278
  condition_tuples_3_items = all(len(m) == 3 for m in matches)
279
  if len(matches) == len(lista_de_document_ids) and condition_tuples_3_items:
280
  print("\n--------------- REGEX DO CONTEXTUAL FUNCIONOU")
 
289
  resultado.append((first_item, m[1], m[2]))
290
  break
291
 
292
+ if not resultado:
293
+ context = (
294
+ context.replace("</final_output>", "")
295
+ .replace("<final_output>", "")
296
+ .strip()
297
+ )
298
+ raw_chunks = context.split("</chunk_context>")[0:20]
299
+
300
+ resultado_temporario = []
301
+ for r in raw_chunks:
302
+ lista_3_itens = r.split("---")
303
+ page_id = re.search(r"Num\.\s*(\d+)\s*-", lista_3_itens[0].strip())
304
+ page_id_tentativa_2 = re.search(
305
+ r"\d+\.\s+(\d+)\s+-\s+Pág\.", lista_3_itens[0].strip()
306
+ )
307
+ if page_id:
308
+ first_item = page_id.group(1)
309
+ elif page_id_tentativa_2:
310
+ first_item = page_id_tentativa_2.group(1)
311
+ else:
312
+ first_item = "0"
313
+ resultado_temporario.append(
314
+ (first_item, lista_3_itens[1], lista_3_itens[2])
315
+ )
316
+
317
+ condition_tuples_3_items = all(len(m) == 3 for m in resultado_temporario)
318
+ if (
319
+ len(resultado_temporario) == len(lista_de_document_ids)
320
+ and condition_tuples_3_items
321
+ ):
322
+ resultado = resultado_temporario
323
+
324
  return resultado
325
 
326
 
_utils/gerar_documento_utils/tests/fixtures/resposta_llm_com_20_chunks.py CHANGED
@@ -1,4 +1,12 @@
1
  resposta_llm_com_20_chunks_fixture_array = [
 
 
 
 
 
 
 
 
2
  """1. <chunk_context>
3
  [76915] --- [APELAÇÃO CRIMINAL] --- Este chunk apresenta os dados iniciais do processo de Apelação Criminal, incluindo o número, classe, órgão julgador, partes envolvidas (Estado da Bahia, Defensor Dativo, e Adenilton da Conceição Samuel), e os assuntos tratados (Honorários Advocatícios, Crimes de Trânsito). Ele se encaixa na descrição do resumo do processo, que trata da apelação do Estado da Bahia sobre os honorários do defensor dativo em um caso de crimes de trânsito.
4
  </chunk_context>
 
1
  resposta_llm_com_20_chunks_fixture_array = [
2
+ """1. <chunk_context> 72909022 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a procuração outorgada, com poderes específicos para atuar em ações cíveis e procedimentos administrativos, incluindo a capacidade de receber valores e praticar atos necessários ao cumprimento do mandato. A procuração tem validade até 31 de dezembro de 2023 e é assinada digitalmente. </chunk_context> 2. <chunk_context> 72909148 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta informações sobre a plataforma de assinatura digital NEOENERGIA, incluindo links e códigos para verificação das assinaturas digitais no documento. Detalha os signatários e seus status em 09/08/2023, com Luciana Maximino Maia e Renato De Almeida Rocha representando a COELBA, e Alana Cristina Braz Duarte como autorizador. </chunk_context> 3. <chunk_context> 72914243 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a certidão de triagem inicial, emitida pela Diretoria de Distribuição do 2º Grau do Tribunal de Justiça da Bahia, confirmando a regularidade dos dados cadastrais do processo, como classe, partes, advogados e assuntos. A certidão atesta que foram realizadas alterações necessárias nos dados. </chunk_context> 4. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do Desembargador Cássio José Barbosa Miranda, relator do Agravo de Instrumento, que trata da antecipação dos efeitos da tutela concedida em primeira instância. A decisão de primeira instância determinou o restabelecimento do serviço de energia elétrica, com base na essencialidade do serviço e na inscrição da autora no Programa de Baixa Renda Quilombola. </chunk_context> 5. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a decisão do Desembargador, detalhando os argumentos da COELBA no Agravo de Instrumento, que questiona a decisão de primeira instância por ser genérica e permitir o fornecimento de energia sem garantia de pagamento. A COELBA também contesta o valor da multa imposta. O trecho também apresenta os artigos do CPC que fundamentam a decisão. </chunk_context> 6. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho da decisão do Desembargador Cássio Miranda analisa os requisitos para a concessão do efeito suspensivo. O relator entende que os requisitos foram parcialmente preenchidos, considerando a inscrição da agravada no Programa de Baixa Renda Quilombola, o ajuizamento de ações e o relatório que atesta erros no medidor. </chunk_context> 7. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho da decisão do Desembargador Cássio Miranda estabelece as condições para o restabelecimento do serviço de energia elétrica, condicionando-o ao pagamento das parcelas vincendas e reduzindo o valor da multa diária. O trecho também determina a intimação da parte agravada para apresentar contrarrazões e o envio de ofício ao juízo de primeira instância. </chunk_context> 8. <chunk_context> 72976135 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a certidão de juntada da decisão nos autos de primeiro grau, emitida pela Secretaria da Quinta Câmara Cível. </chunk_context> 9. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta as contrarrazões ao Agravo de Instrumento, interposto por Isailde Maria da Silva, através de sua advogada, Paloma Oliveira de Jesus Jambeiro. O documento solicita o recebimento das contrarrazões e a remessa ao Tribunal de Justiça para que seja negado provimento ao recurso. </chunk_context> 10. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho das contrarrazões apresenta uma síntese do recurso, com os argumentos da agravada, Isailde Maria da Silva, que ajuizou ação para restabelecer o serviço de energia elétrica. A agravada argumenta que a multa aplicada é proporcional e que a COELBA tenta distorcer os fatos. </chunk_context> 11. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho das contrarrazões argumenta sobre a impossibilidade de reforma da decisão que deferiu a tutela de urgência, com base na atuação irregular da COELBA e na condição de vulnerabilidade da agravada. A agravada também defende que a liminar deferida é provisória e visa garantir a continuidade do serviço. </chunk_context> 12. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho das contrarrazões aborda a alegação de enriquecimento ilícito e o descumprimento do prazo da obrigação de fazer. A agravada argumenta que não há enriquecimento ilícito e que a multa é proporcional ao descumprimento da decisão judicial. </chunk_context> 13. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho das contrarrazões aborda o histórico de falhas na prestação do serviço pela COELBA, o tempo sem energia elétrica devido ao erro da concessionária e a legalidade e razoabilidade da multa imposta. A agravada defende a manutenção da multa. </chunk_context> 14. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho das contrarrazões apresenta a conclusão, requerendo o não provimento do Agravo de Instrumento e a manutenção da decisão de primeira instância, com a reafirmação da multa imposta. </chunk_context> 15. <chunk_context> 73079323 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a qualificação da advogada da agravada, Paloma Oliveira de Jesus Jambeiro, e a data da assinatura das contrarrazões. </chunk_context> 16. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do Desembargador Cássio José Barbosa Miranda, que trata da antecipação dos efeitos da tutela concedida em primeira instância. A decisão de primeira instância determinou o restabelecimento do serviço de energia elétrica, com base na essencialidade do serviço e na inscrição da autora no Programa de Baixa Renda Quilombola. </chunk_context> 17. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a decisão do Desembargador, detalhando os argumentos da COELBA no Agravo de Instrumento, que questiona a decisão de primeira instância por ser genérica e permitir o fornecimento de energia sem garantia de pagamento. A COELBA também contesta o valor da multa imposta. O trecho também apresenta os artigos do CPC que fundamentam a decisão. </chunk_context> 18. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho da decisão do Desembargador Cássio Miranda analisa os requisitos para a concessão do efeito suspensivo. O relator entende que os requisitos foram parcialmente preenchidos, considerando a inscrição da agravada no Programa de Baixa Renda Quilombola, o ajuizamento de ações e o relatório que atesta erros no medidor. </chunk_context> 19. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho da decisão do Desembargador Cássio Miranda estabelece as condições para o restabelecimento do serviço de energia elétrica, condicionando-o ao pagamento das parcelas vincendas e reduzindo o valor da multa diária. O trecho também determina a intimação da parte agravada para apresentar contrarrazões e o envio de ofício ao juízo de primeira instância. </chunk_context> 20. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho da decisão do Desembargador Cássio Miranda estabelece as condições para o restabelecimento do serviço de energia elétrica, condicionando-o ao pagamento das parcelas vincendas e reduzindo o valor da multa diária. O trecho também determina a intimação da parte agravada para apresentar contrarrazões e o envio de ofício ao juízo de primeira instância. </chunk_context>
3
+ """,
4
+ """<final_output> <chunk_context> 1. 72909020 - Pág. 1 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta os dados iniciais do processo de Agravo de Instrumento (nº 8068804-29.2024.8.05.0000) interposto pela COELBA, incluindo as partes envolvidas, os advogados, os assuntos e o pedido de liminar. Ele se encaixa na introdução do processo, conforme descrito no resumo, e estabelece o contexto geral do caso. </chunk_context> 2. 72909020 - Pág. 2 --- AGRAVO DE INSTRUMENTO --- Esta parte do documento continua com a qualificação da COELBA como agravante, indicando seu endereço e a decisão interlocutória que motivou o agravo. Menciona o artigo 1.015 do CPC como base legal para a interposição do recurso e solicita efeito suspensivo. O trecho se alinha com a descrição da ação da COELBA no resumo, que busca reverter a decisão de primeira instância. </chunk_context> 3. 72909020 - Pág. 3 --- AGRAVO DE INSTRUMENTO --- O trecho apresenta as "RAZÕES DO RECURSO", com a identificação das partes (agravante e agravado) e um resumo da decisão de primeira instância que concedeu a antecipação dos efeitos da tutela. Este trecho é fundamental, pois detalha o cerne da disputa e a decisão que a COELBA busca modificar, conforme mencionado no resumo. </chunk_context> 4. 72909020 - Pág. 4 --- AGRAVO DE INSTRUMENTO --- Esta seção continua a detalhar a decisão de primeira instância, que determinou o restabelecimento do serviço de energia elétrica e impôs multa. O texto argumenta sobre a tempestividade do recurso, com base no artigo 219 do CPC. O trecho se encaixa na argumentação da COELBA contra a decisão, conforme o resumo. </chunk_context> 5. 72909020 - Pág. 5 --- AGRAVO DE INSTRUMENTO --- O texto discute o cabimento do recurso, mencionando a ação declaratória de inexistência de débito e a liminar concedida. Cita o artigo 1.015 do CPC, que trata do agravo de instrumento contra decisões interlocutórias. O trecho detalha os argumentos da COELBA sobre a inadequação da liminar, alinhando-se com o resumo. </chunk_context> 6. 72909020 - Pág. 6 --- AGRAVO DE INSTRUMENTO --- O texto continua a argumentar sobre a necessidade de revogação da liminar, alegando que ela é genérica e não especifica as faturas em questão. O trecho critica a decisão de primeira instância por não abordar a contraprestação do cliente e por decidir o mérito em sede de tutela de urgência. Isso se encaixa na crítica da COELBA à decisão, conforme o resumo. </chunk_context> 7. 72909020 - Pág. 7 --- AGRAVO DE INSTRUMENTO --- O texto argumenta sobre a falta dos requisitos para manter a liminar, mencionando a ausência de verossimilhança e de prova inequívoca. Cita o artigo 14, §3º, do CDC, sobre a responsabilidade do fornecedor. O trecho defende a legalidade da conduta da COELBA e a necessidade de provimento do agravo, conforme o resumo. </chunk_context> 8. 72909020 - Pág. 8 --- AGRAVO DE INSTRUMENTO --- O texto cita o artigo 356 da Resolução da ANEEL, que trata da suspensão do fornecimento de energia por inadimplemento. Menciona o parecer do Ministro do STF, Eros Roberto Grau, sobre a legalidade da suspensão. O trecho reforça a argumentação da COELBA com base em normas e jurisprudência, conforme o resumo. </chunk_context> 9. 72909020 - Pág. 9 --- AGRAVO DE INSTRUMENTO --- O texto cita jurisprudência do TJSP sobre corte de energia por inadimplemento e conclui pela necessidade de revogação da liminar. O trecho se alinha com a argumentação da COELBA, que busca a suspensão da liminar, conforme o resumo. </chunk_context> 10. 72909020 - Pág. 10 --- AGRAVO DE INSTRUMENTO --- O texto discute o valor excessivo das astreintes (multa) e a necessidade de sua exclusão ou redução, citando o artigo 461, §6º, do CPC. Menciona a doutrina de Luiz Guilherme Marinoni sobre a função da multa. O trecho se encaixa na argumentação da COELBA sobre a necessidade de reduzir a multa, conforme o resumo. </chunk_context> 11. 72909020 - Pág. 11 --- AGRAVO DE INSTRUMENTO --- O texto continua a argumentar sobre a necessidade de redução da multa, citando jurisprudência do STJ e de tribunais estaduais. O trecho reforça a argumentação da COELBA sobre a necessidade de reduzir a multa, conforme o resumo. </chunk_context> 12. 72909020 - Pág. 12 --- AGRAVO DE INSTRUMENTO --- O texto conclui a argumentação sobre a multa e passa a discutir a atribuição do efeito suspensivo ao agravo de instrumento, com base no artigo 1.019, I, do CPC. O trecho se encaixa na argumentação da COELBA sobre a necessidade de suspender os efeitos da liminar, conforme o resumo. </chunk_context> 13. 72909020 - Pág. 13 --- AGRAVO DE INSTRUMENTO --- O texto continua a argumentar sobre o efeito suspensivo, citando Humberto Theodoro Júnior. Apresenta os pedidos da COELBA, incluindo a revogação da decisão liminar ou a atribuição de efeito suspensivo. O trecho resume os pedidos da COELBA, conforme o resumo. </chunk_context> 14. 72909020 - Pág. 14 --- AGRAVO DE INSTRUMENTO --- O texto apresenta os pedidos da COELBA, incluindo a declaração de nulidade da decisão agravada, a atribuição de efeito ativo, a revogação da decisão agravada, a restrição dos efeitos da liminar, o pagamento das faturas vincendas, a retirada ou minoração da multa, a comunicação ao juiz a quo e a intimação do patrono do agravado. O trecho detalha os pedidos da COELBA, conforme o resumo. </chunk_context> 15. 72909021 - Pág. 1 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta os documentos de arrecadação judicial e extrajudicial (DAJE) referentes ao processo, indicando os valores pagos e as datas de vencimento. O trecho demonstra o pagamento das custas processuais pela COELBA, conforme o resumo. </chunk_context> 16. 72909021 - Pág. 2 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta os documentos de arrecadação judicial e extrajudicial (DAJE) referentes ao processo, indicando os valores pagos e as datas de vencimento. O trecho demonstra o pagamento das custas processuais pela COELBA, conforme o resumo. </chunk_context> 17. 72909021 - Pág. 3 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta os documentos de arrecadação judicial e extrajudicial (DAJE) referentes ao processo, indicando os valores pagos e as datas de vencimento. O trecho demonstra o pagamento das custas processuais pela COELBA, conforme o resumo. </chunk_context> 18. 72909021 - Pág. 4 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta os documentos de arrecadação judicial e extrajudicial (DAJE) referentes ao processo, indicando os valores pagos e as datas de vencimento. O trecho demonstra o pagamento das custas processuais pela COELBA, conforme o resumo. </chunk_context> 19. 72909022 - Pág. 1 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta a procuração da COELBA, com a qualificação dos advogados outorgados. O trecho demonstra a representação da COELBA no processo, conforme o resumo. </chunk_context> 20. 72909022 - Pág. 2 --- AGRAVO DE INSTRUMENTO --- Este trecho continua a apresentar a procuração da COELBA, com a qualificação dos advogados outorgados. O trecho demonstra a representação da COELBA no processo, conforme o resumo. </chunk_context> </final_output>
5
+ """,
6
+ """1. <chunk_context> 72909022 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a procuração outorgada, com poderes específicos para atuar em ações cíveis e procedimentos administrativos, incluindo a representação da COELBA. A procuração é um documento relevante para o processo, pois define os limites da atuação dos representantes da empresa. </chunk_context> 2. <chunk_context> 72909148 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta informações sobre a plataforma de assinatura digital utilizada para o documento, incluindo os nomes dos signatários da COELBA e a data das assinaturas. Ele corrobora a validade e autenticidade do documento, conforme o resumo do processo. </chunk_context> 3. <chunk_context> 72914243 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a certidão de triagem inicial, que confirma a conferência dos dados cadastrais do processo, como classe do recurso, partes, advogados e assuntos. Ele demonstra a regularidade formal do processo, conforme o resumo do processo. </chunk_context> 4. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho reproduz a decisão do juízo de primeira instância que deferiu a antecipação dos efeitos da tutela, determinando o restabelecimento do serviço de energia elétrica. Ele estabelece o contexto da decisão agravada, conforme o resumo do processo. </chunk_context> 5. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a reproduzir a decisão de primeira instância, incluindo a determinação de multa pelo descumprimento da decisão. Ele detalha os termos da decisão agravada, conforme o resumo do processo. </chunk_context> 6. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a análise do relator sobre os requisitos para a concessão do efeito suspensivo, mencionando o "fumus boni iuris" e o "periculum in mora". Ele introduz a fundamentação da decisão do relator, conforme o resumo do processo. </chunk_context> 7. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context> 8. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho finaliza a decisão do relator, determinando a intimação da parte agravada para apresentar contrarrazões e oficiando o juiz a quo. Ele encerra a decisão do relator, conforme o resumo do processo. </chunk_context> 9. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta as contrarrazões ao agravo de instrumento, interpostas pela agravada, com a identificação da advogada e o pedido de não provimento do recurso. Ele introduz a defesa da agravada, conforme o resumo do processo. </chunk_context> 10. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a síntese do recurso, a impossibilidade de reforma da decisão e a alegação de que a liminar não é genérica. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 11. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua com os argumentos da agravada, abordando a inexistência de enriquecimento ilícito e a legalidade da multa imposta. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 12. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho aborda o descumprimento do prazo da obrigação de fazer e o histórico de falhas na prestação do serviço. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 13. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho aborda o tempo sem energia elétrica devido ao erro da concessionária e a legalidade e razoabilidade da multa imposta. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 14. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a conclusão das contrarrazões, com o pedido de não provimento do agravo de instrumento. Ele encerra a defesa da agravada, conforme o resumo do processo. </chunk_context> 15. <chunk_context> 8068804-29.2024.8.05.0000 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta informações sobre o processo, como número, classe, órgão julgador, partes e advogados. Ele fornece uma visão geral do processo, conforme o resumo do processo. </chunk_context> 16. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho reproduz a decisão do juízo de primeira instância, que deferiu a antecipação dos efeitos da tutela, determinando o restabelecimento do serviço de energia elétrica. Ele estabelece o contexto da decisão agravada, conforme o resumo do processo. </chunk_context> 17. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a reproduzir a decisão de primeira instância, incluindo a determinação de multa pelo descumprimento da decisão. Ele detalha os termos da decisão agravada, conforme o resumo do processo. </chunk_context> 18. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a análise do relator sobre os requisitos para a concessão do efeito suspensivo, mencionando o "fumus boni iuris" e o "periculum in mora". Ele introduz a fundamentação da decisão do relator, conforme o resumo do processo. </chunk_context> 19. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context> 20. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context>
7
+ """,
8
+ """1. <chunk_context> 72909022 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a procuração outorgada, com poderes específicos para atuar em ações cíveis e procedimentos administrativos, incluindo a representação da COELBA. A procuração é um documento relevante para o processo, pois define os limites da atuação dos representantes da empresa. </chunk_context> 2. <chunk_context> 72909148 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta informações sobre a plataforma de assinatura digital utilizada para o documento, incluindo os nomes dos signatários da COELBA e a data das assinaturas. Ele corrobora a validade e autenticidade do documento, conforme o resumo do processo. </chunk_context> 3. <chunk_context> 72914243 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a certidão de triagem inicial, que confirma a conferência dos dados cadastrais do processo, como classe do recurso, partes, advogados e assuntos. Ele demonstra a regularidade formal do processo, conforme o resumo do processo. </chunk_context> 4. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho reproduz a decisão do juízo de primeira instância que deferiu a antecipação dos efeitos da tutela, determinando o restabelecimento do serviço de energia elétrica. Ele estabelece o contexto da decisão agravada, conforme o resumo do processo. </chunk_context> 5. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a reproduzir a decisão de primeira instância, incluindo a determinação de multa pelo descumprimento da decisão. Ele detalha os termos da decisão agravada, conforme o resumo do processo. </chunk_context> 6. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a análise do relator sobre os requisitos para a concessão do efeito suspensivo, mencionando o "fumus boni iuris" e o "periculum in mora". Ele introduz a fundamentação da decisão do relator, conforme o resumo do processo. </chunk_context> 7. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context> 8. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho finaliza a decisão do relator, determinando a intimação da parte agravada para apresentar contrarrazões e oficiando o juiz a quo. Ele encerra a decisão do relator, conforme o resumo do processo. </chunk_context> 9. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta as contrarrazões ao agravo de instrumento, interpostas pela agravada, com a identificação da advogada e o pedido de não provimento do recurso. Ele introduz a defesa da agravada, conforme o resumo do processo. </chunk_context> 10. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a síntese do recurso, a impossibilidade de reforma da decisão e a alegação de que a liminar não é genérica. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 11. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua com os argumentos da agravada, abordando a inexistência de enriquecimento ilícito e a legalidade da multa imposta. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 12. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho aborda o descumprimento do prazo da obrigação de fazer e o histórico de falhas na prestação do serviço. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 13. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho aborda o tempo sem energia elétrica devido ao erro da concessionária e a legalidade e razoabilidade da multa imposta. Ele detalha os argumentos da agravada em suas contrarrazões, conforme o resumo do processo. </chunk_context> 14. <chunk_context> 73079321 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a conclusão das contrarrazões, com o pedido de não provimento do agravo de instrumento. Ele encerra a defesa da agravada, conforme o resumo do processo. </chunk_context> 15. <chunk_context> 8068804-29.2024.8.05.0000 --- AGRAVO DE INSTRUMENTO --- Este trecho apresenta informações sobre o processo, como número, classe, órgão julgador, partes e advogados. Ele fornece uma visão geral do processo, conforme o resumo do processo. </chunk_context> 16. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho reproduz a decisão do juízo de primeira instância, que deferiu a antecipação dos efeitos da tutela, determinando o restabelecimento do serviço de energia elétrica. Ele estabelece o contexto da decisão agravada, conforme o resumo do processo. </chunk_context> 17. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho continua a reproduzir a decisão de primeira instância, incluindo a determinação de multa pelo descumprimento da decisão. Ele detalha os termos da decisão agravada, conforme o resumo do processo. </chunk_context> 18. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a análise do relator sobre os requisitos para a concessão do efeito suspensivo, mencionando o "fumus boni iuris" e o "periculum in mora". Ele introduz a fundamentação da decisão do relator, conforme o resumo do processo. </chunk_context> 19. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context> 20. <chunk_context> 72933123 --- AGRAVO DE INSTRUMENTO n. 8068804-29.2024.8.05.0000 --- Este trecho apresenta a decisão do relator que defere parcialmente o efeito suspensivo, condicionando o restabelecimento do serviço ao pagamento das parcelas vincendas e reduzindo a multa. Ele apresenta a conclusão da decisão do relator, conforme o resumo do processo. </chunk_context>
9
+ """,
10
  """1. <chunk_context>
11
  [76915] --- [APELAÇÃO CRIMINAL] --- Este chunk apresenta os dados iniciais do processo de Apelação Criminal, incluindo o número, classe, órgão julgador, partes envolvidas (Estado da Bahia, Defensor Dativo, e Adenilton da Conceição Samuel), e os assuntos tratados (Honorários Advocatícios, Crimes de Trânsito). Ele se encaixa na descrição do resumo do processo, que trata da apelação do Estado da Bahia sobre os honorários do defensor dativo em um caso de crimes de trânsito.
12
  </chunk_context>
_utils/gerar_documento_utils/utils.py CHANGED
@@ -9,6 +9,7 @@ from _utils.gerar_documento_utils.prompts import (
9
  create_prompt_auxiliar_do_contextual_prompt,
10
  )
11
 
 
12
  from gerar_documento.serializer import GerarDocumentoSerializerData
13
 
14
 
@@ -91,7 +92,7 @@ async def get_full_text_and_all_PDFs_chunks(
91
  should_use_llama_parse: bool,
92
  isBubble: bool,
93
  ):
94
- all_PDFs_chunks = []
95
 
96
  pages: List[str] = []
97
 
 
9
  create_prompt_auxiliar_do_contextual_prompt,
10
  )
11
 
12
+ from _utils.models.gerar_documento import DocumentChunk
13
  from gerar_documento.serializer import GerarDocumentoSerializerData
14
 
15
 
 
92
  should_use_llama_parse: bool,
93
  isBubble: bool,
94
  ):
95
+ all_PDFs_chunks: List[DocumentChunk] = []
96
 
97
  pages: List[str] = []
98
 
gerar_documento/urls.py CHANGED
@@ -3,6 +3,8 @@ from django.urls import path
3
  from gerar_documento.views import (
4
  GerarDocumentoView,
5
  GerarDocumentoComPDFProprioView,
 
 
6
  )
7
 
8
  urlpatterns = [
@@ -16,4 +18,14 @@ urlpatterns = [
16
  GerarDocumentoComPDFProprioView.as_view(),
17
  name="generate-document-with-own-pdf",
18
  ),
 
 
 
 
 
 
 
 
 
 
19
  ]
 
3
  from gerar_documento.views import (
4
  GerarDocumentoView,
5
  GerarDocumentoComPDFProprioView,
6
+ GerarEmentaComPDFProprioView,
7
+ GerarEmentaView,
8
  )
9
 
10
  urlpatterns = [
 
18
  GerarDocumentoComPDFProprioView.as_view(),
19
  name="generate-document-with-own-pdf",
20
  ),
21
+ path(
22
+ "gerar-ementa",
23
+ GerarEmentaView.as_view(),
24
+ name="generate-ementa",
25
+ ),
26
+ path(
27
+ "gerar-ementa/pdf",
28
+ GerarEmentaComPDFProprioView.as_view(),
29
+ name="generate-ementa-with-own-pdf",
30
+ ),
31
  ]
gerar_documento/views.py CHANGED
@@ -112,34 +112,46 @@ class GerarDocumentoComPDFProprioView(AsyncAPIView):
112
 
113
  class GerarEmentaView(AsyncAPIView):
114
  serializer = {}
 
115
 
116
  @extend_schema(
117
  request=GerarDocumentoSerializer,
118
  )
119
  async def post(self, request):
 
120
  print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
121
- print("request.data: ", request.data)
122
- serializer = GerarEmentaSerializer(data=request.data)
 
 
123
  if serializer.is_valid(raise_exception=True):
124
  if not serializer.validated_data:
125
  raise ValueError("Erro no validated_data")
126
 
127
  async def proccess_data_after_response():
128
  data = cast(Dict[str, Any], serializer.validated_data)
 
129
  self.serializer = data
130
 
131
  listaPDFs = [l["link_arquivo"] for l in data["files"]]
132
- print("\n\nlistaPDFs: ", listaPDFs)
 
 
133
 
134
  all_PDFs_chunks, full_text_as_array = (
135
  await get_full_text_and_all_PDFs_chunks(
136
  listaPDFs,
137
- Splitter(data["chunk_size"], data["chunk_overlap"]),
 
 
138
  False,
139
  True,
140
  )
141
  )
142
  full_text = "".join(full_text_as_array)
 
 
 
143
 
144
  llm = LLM()
145
  prompt_template = PromptTemplate(
@@ -165,33 +177,44 @@ class GerarEmentaView(AsyncAPIView):
165
  class GerarEmentaComPDFProprioView(AsyncAPIView):
166
  parser_classes = [MultiPartParser]
167
  serializer = {}
 
168
 
169
  @extend_schema(
170
  request=GerarDocumentoComPDFProprioSerializer,
171
  )
172
  async def post(self, request):
 
173
  print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
 
 
 
174
  serializer = GerarDocumentoComPDFProprioSerializer(data=request.data)
175
  if serializer.is_valid(raise_exception=True):
176
  data = cast(Dict[str, Any], serializer.validated_data)
177
- print("\n\ndata: ", data)
178
  self.serializer = data
179
 
180
  data = cast(Dict[str, Any], serializer.validated_data)
 
181
  self.serializer = data
182
 
183
- listaPDFs = [l["link_arquivo"] for l in data["files"]]
184
- print("\n\nlistaPDFs: ", listaPDFs)
 
 
185
 
186
  all_PDFs_chunks, full_text_as_array = (
187
  await get_full_text_and_all_PDFs_chunks(
188
  listaPDFs,
189
- Splitter(data["chunk_size"], data["chunk_overlap"]),
190
  False,
191
  True,
192
  )
193
  )
194
  full_text = "".join(full_text_as_array)
 
 
 
195
 
196
  llm = LLM()
197
  prompt_template = PromptTemplate(
@@ -201,8 +224,10 @@ class GerarEmentaComPDFProprioView(AsyncAPIView):
201
  prompt_template.format(context=full_text)
202
  )
203
 
204
- print("\n\nresposta_llm: ", response.content)
205
 
206
  remove_pdf_temp_files(listaPDFs)
207
- print("PRÓXIMA LINHA ENVIA A RESPOSTA A QUEM FEZ A REQUISIÇÃO")
 
 
208
  return Response({"resposta": response.content})
 
112
 
113
  class GerarEmentaView(AsyncAPIView):
114
  serializer = {}
115
+ axiom_instance = Axiom()
116
 
117
  @extend_schema(
118
  request=GerarDocumentoSerializer,
119
  )
120
  async def post(self, request):
121
+ self.axiom_instance.generate_new_uuid()
122
  print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
123
+ self.axiom_instance.send_axiom(
124
+ f"COMEÇOU NOVA REQUISIÇÃO - request.data: {request.data}"
125
+ )
126
+ serializer = GerarDocumentoSerializer(data=request.data)
127
  if serializer.is_valid(raise_exception=True):
128
  if not serializer.validated_data:
129
  raise ValueError("Erro no validated_data")
130
 
131
  async def proccess_data_after_response():
132
  data = cast(Dict[str, Any], serializer.validated_data)
133
+ serializer_obj = serializer.get_obj()
134
  self.serializer = data
135
 
136
  listaPDFs = [l["link_arquivo"] for l in data["files"]]
137
+ self.axiom_instance.send_axiom(
138
+ f"listaPDFs: {listaPDFs}",
139
+ )
140
 
141
  all_PDFs_chunks, full_text_as_array = (
142
  await get_full_text_and_all_PDFs_chunks(
143
  listaPDFs,
144
+ Splitter(
145
+ serializer_obj.chunk_size, serializer_obj.chunk_overlap
146
+ ),
147
  False,
148
  True,
149
  )
150
  )
151
  full_text = "".join(full_text_as_array)
152
+ self.axiom_instance.send_axiom(
153
+ f"full_text gerado dos pdfs: {full_text}"
154
+ )
155
 
156
  llm = LLM()
157
  prompt_template = PromptTemplate(
 
177
  class GerarEmentaComPDFProprioView(AsyncAPIView):
178
  parser_classes = [MultiPartParser]
179
  serializer = {}
180
+ axiom_instance = Axiom()
181
 
182
  @extend_schema(
183
  request=GerarDocumentoComPDFProprioSerializer,
184
  )
185
  async def post(self, request):
186
+ self.axiom_instance.generate_new_uuid()
187
  print(f"\n\nDATA E HORA DA REQUISIÇÃO: {datetime.now()}")
188
+ self.axiom_instance.send_axiom(
189
+ f"COMEÇOU NOVA REQUISIÇÃO - request.data: {request.data}"
190
+ )
191
  serializer = GerarDocumentoComPDFProprioSerializer(data=request.data)
192
  if serializer.is_valid(raise_exception=True):
193
  data = cast(Dict[str, Any], serializer.validated_data)
194
+ self.axiom_instance.send_axiom(f"data: {data}")
195
  self.serializer = data
196
 
197
  data = cast(Dict[str, Any], serializer.validated_data)
198
+ serializer_obj = serializer.get_obj()
199
  self.serializer = data
200
 
201
+ listaPDFs = handle_pdf_files_from_serializer(
202
+ data["files"], self.axiom_instance
203
+ )
204
+ self.axiom_instance.send_axiom(f"listaPDFs: {listaPDFs}")
205
 
206
  all_PDFs_chunks, full_text_as_array = (
207
  await get_full_text_and_all_PDFs_chunks(
208
  listaPDFs,
209
+ Splitter(serializer_obj.chunk_size, serializer_obj.chunk_overlap),
210
  False,
211
  True,
212
  )
213
  )
214
  full_text = "".join(full_text_as_array)
215
+ self.axiom_instance.send_axiom(
216
+ f"full_text[0:100] gerado do PDF: {full_text[0:100]}"
217
+ )
218
 
219
  llm = LLM()
220
  prompt_template = PromptTemplate(
 
224
  prompt_template.format(context=full_text)
225
  )
226
 
227
+ self.axiom_instance.send_axiom(f"resposta_llm: {response.content}")
228
 
229
  remove_pdf_temp_files(listaPDFs)
230
+ self.axiom_instance.send_axiom(
231
+ "PRÓXIMA LINHA ENVIA A RESPOSTA A QUEM FEZ A REQUISIÇÃO"
232
+ )
233
  return Response({"resposta": response.content})