Spaces:
Sleeping
Sleeping
Versão 0.2.1
Browse files- notatecnica.txt +122 -65
- pages/0_Historico_de_Versoes.py +4 -0
- pages/9_Tela9_Laudo.py +230 -230
- template.py +1 -1
notatecnica.txt
CHANGED
|
@@ -92,93 +92,150 @@
|
|
| 92 |
**['id_norma: CF-1988 ; espécie_normativa: constituicao ; sigla: CF ; número: 1988 ; ano: 1988 ; órgão_emissor: Congresso Nacional ; referência_completa: Constituição Federal de 1988 da República Federativa do Brasil ; artigos_mencionados: artigo 150, parágrafos: nenhum, incisos: VI, c, alíneas: nenhum, fontes: NORMA-CF-1988, observação: Imunidades tributárias gerais | artigo 195, parágrafos: 7º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-CF-1988, observação: Imunidade para entidades beneficentes']**
|
| 93 |
|
| 94 |
|
|
|
|
| 95 |
|
| 96 |
-
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
- Defende que a ausência de menção direta ao
|
| 100 |
-
Nota Técnica 24051 (42710890) SEI 19739.152808/2023-70 / pg. 2
|
| 101 |
-
Berma na legislação federal é irrelevante, uma vez que a competência legislativa
|
| 102 |
-
sobre a matéria é concorrente, permitindo aos Estados legislarem sobre pontos
|
| 103 |
-
omissos pela União, conforme jurisprudência do Supremo Tribunal Federal. Nesse
|
| 104 |
-
sentido, o Órgão Federal não pode desconsiderar a normatização estadual, que,
|
| 105 |
-
embora específica à realidade do Estado do Ceará, exerce uma prerrogativa
|
| 106 |
-
constitucionalmente assegurada. Portanto, deve-se cumprir a legislação cearense.
|
| 107 |
|
| 108 |
|
| 109 |
**['id_norma: CTN ; espécie_normativa: lei_ordinaria ; sigla: CTN ; número: 5.172 ; ano: 1966 ; órgão_emissor: Presidência da República ; referência_completa: Código Tributário Nacional - Lei nº 5.172, de 25 de outubro de 1966 ; artigos_mencionados: artigo 14, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-CTN, observação: Requisitos para imunidade tributária | artigo 9º, parágrafos: nenhum, incisos: IV, alíneas: nenhum, fontes: NORMA-CTN, observação: Regras para imunidade']**
|
| 110 |
|
| 111 |
|
|
|
|
| 112 |
|
| 113 |
-
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
|
|
|
|
|
|
|
|
|
| 117 |
|
| 118 |
|
| 119 |
**['id_norma: LC187-2021 ; espécie_normativa: lei_complementar ; sigla: LC ; número: 187 ; ano: 2021 ; órgão_emissor: Congresso Nacional ; referência_completa: Lei Complementar nº 187, de 16 de dezembro de 2021 ; artigos_mencionados: artigo 3º, parágrafos: I, IV, VIII, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, COMPLIANCE-MEC, observação: Requisitos para certificação de entidades beneficentes | artigo 5º, parágrafos: I, III, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Vedação a remuneração de dirigentes e demonstrações financeiras | artigo 19, parágrafos: §1º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Regras para gratuidade e concessão de bolsas | artigo 20, parágrafos: §§ 1º e 2º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Critérios socioeconômicos para seleção de beneficiários | artigo 22, parágrafos: §1º, §2º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Cumprimento das proporções mínimas de concessão de bolsas | artigo 34, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Documentação exigida para requerimentos | artigo 39, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Prazo para interposição de recursos administrativos']**
|
| 120 |
|
| 121 |
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
|
| 128 |
|
| 129 |
**['id_norma: DECRETO11791-2023 ; espécie_normativa: decreto ; sigla: Decreto ; número: 11.791 ; ano: 2023 ; órgão_emissor: Presidência da República ; referência_completa: Decreto nº 11.791, de 21 de novembro de 2023 ; artigos_mencionados: artigo 5º, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: COMPLIANCE-MEC, observação: Declaração exigida para requerimentos | artigo 18, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Regras sobre documentação para solicitar certificação | artigo 23, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Requisito documental de atos autorizativos e corpo dirigente | artigo 34, parágrafos: §1º, §2º, §3º, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Prazos e forma de análise dos requerimentos | artigo 40, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Aplicabilidade do decreto aos requerimentos novos | artigo 52, parágrafos: §2º, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Critérios para demonstrações de proporções relativas às gratuidade | artigo 65, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: OFICIO-659-2024, observação: Diligências relativas à complementação documental']**
|
| 130 |
|
| 131 |
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
|
| 155 |
|
| 156 |
**['id_norma: RDC-CNE-CES-1-2010 ; espécie_normativa: resolucao ; sigla: Resolução CNE/CES ; número: 1 ; ano: 2010 ; órgão_emissor: Conselho Nacional de Educação (CNE) ; referência_completa: Resolução CNE/CES nº 1, de 8 de junho de 2010 ; artigos_mencionados: nenhum']**
|
| 157 |
|
| 158 |
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
[
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
com fundamento no § 3º do art. 4º do Decreto nº 10.543, de 13 de novembro de
|
| 178 |
-
Documento assinado eletronicamente por [NOME REMOVIDO],
|
| 179 |
-
Coordenador(a)-Geral, em 27/03/2025, às 09:59, conforme horário oficial de
|
| 180 |
-
Brasília, com fundamento no § 3º do art. 4º do Decreto nº 10.543, de 13 de
|
| 181 |
-
novembro de 2020.
|
| 182 |
|
| 183 |
|
| 184 |
## Nota Técnica Básica
|
|
|
|
| 92 |
**['id_norma: CF-1988 ; espécie_normativa: constituicao ; sigla: CF ; número: 1988 ; ano: 1988 ; órgão_emissor: Congresso Nacional ; referência_completa: Constituição Federal de 1988 da República Federativa do Brasil ; artigos_mencionados: artigo 150, parágrafos: nenhum, incisos: VI, c, alíneas: nenhum, fontes: NORMA-CF-1988, observação: Imunidades tributárias gerais | artigo 195, parágrafos: 7º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-CF-1988, observação: Imunidade para entidades beneficentes']**
|
| 93 |
|
| 94 |
|
| 95 |
+
- A Instituição é imune do recolhimento de tributos sobre o patrimônio, a renda e os serviços, conforme determinação do artigo 150, [PESSOA], alínea C da Constituição da Repú blica de 5 de outubro de 1988, cumprindo com os requisitos do artigo 14 do Código Tributário Nacional. É também imu ne das contribuições sociais PIS sobre folha, COFINS e INSS patronal por ser entidade beneficente de assistência social, portadora do CEBAS - [PESSOA] de [PESSOA], conforme artigo 195 da Constituição Federal, cumprindo com os requisitos da Lei Complementar 187/2021. NOTA 69 [PESSOA]: [PESSOA] o trabalho de voluntários, no exercí cio de suas funções, reconhecidos pelo valor justo da prestação do serviço como se tivesse ocorrido o desembolso financeiro, conforme exigência da Resolução nº 1.409/12 - ITG 2002 (R1) do Conselho Federal de Contabilidade. Os trabalhos de voluntários neste exercício estão representados pelas seguintes pelas seguintes rubricas: NOTA 7 0 [PESSOA]:
|
| 96 |
|
| 97 |
+
- A Instituição é imune do recolhimento de tributos sobre o patrimônio, a renda e os serviços, conforme determinação do artigo 150, [PESSOA], alínea C da Constituição da Repú blica de 5 de outubro de 1988, cumprindo com os requisitos do artigo 14 do Código Tributário Nacional. É também imu ne das contribuições sociais PIS sobre folha, COFINS e INSS patronal por ser entidade beneficente de assistência social, portadora do CEBAS - [PESSOA] de [PESSOA], conforme artigo 195 da Constituição Federal, cumprindo com os requisitos da Lei Complementar 187/2021. NOTA 69 [PESSOA]: [PESSOA] o trabalho de voluntários, no exercí cio de suas funções, reconhecidos pelo valor justo da prestação do serviço como se tivesse ocorrido o desembolso financeiro, conforme exigência da Resolução nº 1.409/12 - ITG 2002 (R1) do Conselho Federal de Contabilidade. Os trabalhos de voluntários neste exercício estão representados pelas seguintes pelas seguintes rubricas: NOTA 7 0 [PESSOA]:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
|
| 99 |
|
| 100 |
**['id_norma: CTN ; espécie_normativa: lei_ordinaria ; sigla: CTN ; número: 5.172 ; ano: 1966 ; órgão_emissor: Presidência da República ; referência_completa: Código Tributário Nacional - Lei nº 5.172, de 25 de outubro de 1966 ; artigos_mencionados: artigo 14, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-CTN, observação: Requisitos para imunidade tributária | artigo 9º, parágrafos: nenhum, incisos: IV, alíneas: nenhum, fontes: NORMA-CTN, observação: Regras para imunidade']**
|
| 101 |
|
| 102 |
|
| 103 |
+
- A Demonstração do Valo r Adicionado foi elaborada em conformidade com a Resolução CFC nº 1.138/2008 que aprovou a NBC TG 09 [PESSOA]. 20. IMUNIDADE TRIBUTÁRIA O CGSAP é imune e também isento à incidência de impostos por força do art. 150, [PESSOA], alínea parágrafo 4º e artigo 195, [PESSOA], parágrafo 7° da Constituição Federal de 05 de outubro de 1988, Lei nº 9.532/2007, Lei nº 11.[TELEFONE], Lei nº 12.101/2009 e [PESSOA] nº [TELEFONE]. [PESSOA] A única [PESSOA] que tra z requisitos para o gozo da imunidade tributária é o Código Tributário Nacional (CTN).
|
| 104 |
|
| 105 |
+
- 2, Livro A, Matricula
|
| 106 |
+
143513, em 12/11/2022. NOTA 22 - [PESSOA] O caixa e equivalentes de caixa e o imobilizado não estão comprometidos com obrigações ou contrato de
|
| 107 |
+
alienação. NOTA 23-IMUNIDADE TRIBUTARIA A Instituição é imune de incidência de impostos por força do art. 150, [PESSOA], alínea C e seu paragrafo 4°. E
|
| 108 |
+
art. 195, [PESSOA], paragrafo 7°. da Constituição Federal de 05 de outubro de 1988, Lei 9.532 07, Lei 12.101 09 e
|
| 109 |
+
[PESSOA] 7,237 10. Mas, está condicionado ao cumprimento de exigências legais e a apresentação de [PESSOA] de [PESSOA]. Para manutenção de tais benefícios, a Creche Instituto Crescer Estrela da Manhã cumpre rigorosamente às
|
| 110 |
+
exigências do Artigo 14 do Código Tributário Nacional, que são:
|
| 111 |
+
a)
|
| 112 |
|
| 113 |
|
| 114 |
**['id_norma: LC187-2021 ; espécie_normativa: lei_complementar ; sigla: LC ; número: 187 ; ano: 2021 ; órgão_emissor: Congresso Nacional ; referência_completa: Lei Complementar nº 187, de 16 de dezembro de 2021 ; artigos_mencionados: artigo 3º, parágrafos: I, IV, VIII, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, COMPLIANCE-MEC, observação: Requisitos para certificação de entidades beneficentes | artigo 5º, parágrafos: I, III, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Vedação a remuneração de dirigentes e demonstrações financeiras | artigo 19, parágrafos: §1º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Regras para gratuidade e concessão de bolsas | artigo 20, parágrafos: §§ 1º e 2º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Critérios socioeconômicos para seleção de beneficiários | artigo 22, parágrafos: §1º, §2º, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Cumprimento das proporções mínimas de concessão de bolsas | artigo 34, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Documentação exigida para requerimentos | artigo 39, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: NORMA-LC187-2021, observação: Prazo para interposição de recursos administrativos']**
|
| 115 |
|
| 116 |
|
| 117 |
+
- Não
|
| 118 |
+
Apresenta destacadamente receitas e despesas de
|
| 119 |
+
atividades que gerem recursos, inclusive por meio de suas
|
| 120 |
+
filiais, com ou sem cessão de mão de obra, de modo a
|
| 121 |
+
contribuir com a realização das atividades beneficentes
|
| 122 |
+
certificáveis? Base legal: § 2º do art. 7º, art. 30 e §6º do art. 32 da Lei
|
| 123 |
+
Complementar nº 187/2021.
|
| 124 |
+
( X ) [PESSOA] ( ) Não ( ) N/A
|
| 125 |
+
Informa que as receitas foram apuradas pelo regime de
|
| 126 |
+
competência?
|
| 127 |
+
( X ) [PESSOA] ( ) Não
|
| 128 |
+
Item 2
|
| 129 |
+
Doc. SEI nº 5223733
|
| 130 |
+
, pág. 08
|
| 131 |
+
[PESSOA], de modo segregado, as bolsas de estudo e os
|
| 132 |
+
benefícios concedidos, bem como evidenciar o
|
| 133 |
+
atendimento à proporção de bolsistas e beneficiários em
|
| 134 |
+
relação ao alunos pagantes, em atendimento à Lei
|
| 135 |
+
Complementar nº 187, de 2021? Base legal: art. 25, § 1º, da LC 187/2021 c.c. item 27, “m”,
|
| 136 |
+
da ITG 2002 e Item 112 da NBC TG 26.
|
| 137 |
+
( X ) [PESSOA] ( ) Não
|
| 138 |
+
Doc. SEI nº 5223733
|
| 139 |
+
, págs. 13 e 14
|
| 140 |
+
3.7.6. Relatório de auditoria independente. Base legal: art. 3, inciso [PESSOA] da [PESSOA] nº 187/2021 c. c.
|
| 141 |
+
|
| 142 |
+
- Não
|
| 143 |
+
Apresenta destacadamente receitas e despesas de
|
| 144 |
+
atividades que gerem recursos, inclusive por meio de suas
|
| 145 |
+
filiais, com ou sem cessão de mão de obra, de modo a
|
| 146 |
+
contribuir com a realização das atividades beneficentes
|
| 147 |
+
certificáveis? Base legal: § 2º do art. 7º, art. 30 e §6º do art. 32 da Lei
|
| 148 |
+
Complementar nº 187/2021.
|
| 149 |
+
( ) [PESSOA] ( ) Não ( ) N/A
|
| 150 |
+
Informa que as receitas foram apuradas pelo regime de
|
| 151 |
+
competência?
|
| 152 |
+
( ) [PESSOA] ( )
|
| 153 |
+
Não [PESSOA], de modo segregado, as bolsas de estudo e os
|
| 154 |
+
benefícios concedidos, bem como evidenciar o atendimento
|
| 155 |
+
à proporção de bolsistas e beneficiários em relação ao
|
| 156 |
+
alunos pagantes, em atendimento à [PESSOA] nº
|
| 157 |
+
187, de 2021? Base legal: art. 25, § 1º, da LC 187/2021 c.c. item 27, “m”, da
|
| 158 |
+
ITG 2002 e Item 112 da NBC TG 26.
|
| 159 |
+
( ) [PESSOA] ( ) Não 3.7.6. Relatório de auditoria independente. Base legal: art. 3, inciso [PESSOA] da [PESSOA] nº 187/2021 c. c. art.
|
| 160 |
+
46, inciso IV, do Decreto nº 11.791/2023. Apresentou?
|
| 161 |
+
( ) [PESSOA] (
|
| 162 |
+
x ) Não ( )
|
| 163 |
|
| 164 |
|
| 165 |
**['id_norma: DECRETO11791-2023 ; espécie_normativa: decreto ; sigla: Decreto ; número: 11.791 ; ano: 2023 ; órgão_emissor: Presidência da República ; referência_completa: Decreto nº 11.791, de 21 de novembro de 2023 ; artigos_mencionados: artigo 5º, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: COMPLIANCE-MEC, observação: Declaração exigida para requerimentos | artigo 18, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Regras sobre documentação para solicitar certificação | artigo 23, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Requisito documental de atos autorizativos e corpo dirigente | artigo 34, parágrafos: §1º, §2º, §3º, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Prazos e forma de análise dos requerimentos | artigo 40, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Aplicabilidade do decreto aos requerimentos novos | artigo 52, parágrafos: §2º, incisos: nenhum, alíneas: nenhum, fontes: ANÁLISE, observação: Critérios para demonstrações de proporções relativas às gratuidade | artigo 65, parágrafos: nenhum, incisos: nenhum, alíneas: nenhum, fontes: OFICIO-659-2024, observação: Diligências relativas à complementação documental']**
|
| 166 |
|
| 167 |
|
| 168 |
+
- Nº 187/2021 E DECRETOS Nº 11.791/2023) Os seguintes padrões decisórios são adotados na análise dos requerimentos, a menos que sejam motivadamente
|
| 169 |
+
dispensados alguns dos seus requisitos devido à
|
| 170 |
+
particularidade do caso. QUADRO 1 - [PESSOA] E PROCESSUAIS INTERESSADO:
|
| 171 |
+
Instituto Trilho
|
| 172 |
+
CNPJ: [CEP]/0001-
|
| 173 |
+
16 [PESSOA]: 85.11-2-00 - Educação infantil - creche
|
| 174 |
+
[PESSOA]
|
| 175 |
+
|
| 176 |
+
: Educação/Assistência Social
|
| 177 |
+
PREPONDERÂNCIA: Educação
|
| 178 |
+
COBRA MENSALIDADES: Não
|
| 179 |
+
PROCESSO:
|
| 180 |
+
[PROCESSO]
|
| 181 |
+
[PESSOA]:
|
| 182 |
+
08/11/2023 (Doc. SEI 4442907
|
| 183 |
+
, pág. 01)
|
| 184 |
+
[PESSOA]:
|
| 185 |
+
20/11/2020
|
| 186 |
+
a 19/11/2023
|
| 187 |
+
[PESSOA]: Portaria SERES/MEC nº 247, de 27 de
|
| 188 |
+
julho de 2023 (Doc. SEI 5202180
|
| 189 |
+
, pág. 13), DOU de 28/07/2023 , pág. 32. Tipo de solicitação:
|
| 190 |
+
( ) Concessão*
|
| 191 |
+
( ) Requerimento não conhecido (antes dos 360 dias que antecedem o fim
|
| 192 |
+
da anterior)
|
| 193 |
+
( x ) Renovação tempestiva* ( )
|
| 194 |
+
|
| 195 |
+
- SEI nº 3340309
|
| 196 |
+
, pág. 01, em
|
| 197 |
+
desacordo com o decreto 11.791/2023 Está assinado no ano do requerimento?
|
| 198 |
+
( X ) [PESSOA] ( ) Não
|
| 199 |
+
Há comprovação do representante legal?
|
| 200 |
+
( X ) [PESSOA] ( ) Não
|
| 201 |
+
[PESSOA] negativa, ou certidão positiva com efeito de negativa, de débitos relativos aos tributos administrados pela
|
| 202 |
+
Secretaria [PESSOA] do Brasil e pela Procuradoria-[PESSOA] do Ministério da
|
| 203 |
+
Fazenda. Base Legal: art. 3°, inciso [PESSOA] nº 187/2021 c. c. art. 5º , [PESSOA], do Decreto
|
| 204 |
+
nº 11.791/2023
|
| 205 |
+
.
|
| 206 |
+
Apresentou?
|
| 207 |
+
( ) [PESSOA] ( X ) Não Não Apresentou
|
| 208 |
+
Está vigente na data do requerimento?
|
| 209 |
+
( ) [PESSOA] ( ) Não
|
| 210 |
+
Comprovação de regularidade do Fundo de Garantia do Tempo de Serviço - FGTS. Base Legal: art. 3°, inciso [PESSOA] nº 187/2021 c. c. art. 5º, [PESSOA], do Decreto nº 11.791/2023
|
| 211 |
+
. Apresentou?
|
| 212 |
+
( ) [PESSOA] ( X ) Não Não Apresentou
|
| 213 |
+
Está vigente na data do requerimento?
|
| 214 |
+
( ) [PESSOA] ( ) Não
|
| 215 |
+
Estatuto social / Ato constitutivo.
|
| 216 |
|
| 217 |
|
| 218 |
**['id_norma: RDC-CNE-CES-1-2010 ; espécie_normativa: resolucao ; sigla: Resolução CNE/CES ; número: 1 ; ano: 2010 ; órgão_emissor: Conselho Nacional de Educação (CNE) ; referência_completa: Resolução CNE/CES nº 1, de 8 de junho de 2010 ; artigos_mencionados: nenhum']**
|
| 219 |
|
| 220 |
|
| 221 |
+
- A Diretoria Regional de Educação, responsável [PESSOA], verificará o fiel cumprimento das nor-mas contidas no Regimento Educacional, objeto desta Portaria. Art. 3° Esta [PESSOA] entra em vigor na data de sua pu-
|
| 222 |
+
blicação e revoga a [PESSOA] nº 206, de 10/12/2014, DOC de 11/12/2014, p. 19.
|
| 223 |
+
[RG]/[RG] PORTARIA Nº 313, DE 06 [PESSOA] 2021 A Diretora [PESSOA], no uso das atribuições que lhe foram conferidas pela Portaria SME nº 3.581/2018, ratificada no art. 2º da IN SME nº 19/2021, com fundamento na Resolução CME nº 06/2019, alterada pela Reso-lução CME nº 05/2020, expede a presente Portaria :
|
| 224 |
+
Art. 1º Fica aprovada a atualização do Regimento Educacio-
|
| 225 |
+
nal do CEI [PESSOA], sediado na [ENDERECO], 713 - Chá-cara Belenzinho, São [PESSOA]. Parágrafo único. A referida unidade já foi objeto de apro-
|
| 226 |
+
vação de Regimento Educacional pela Portaria nº 188, de 23/11/2017.
|
| 227 |
+
Art. 2º
|
| 228 |
+
|
| 229 |
+
- Documento assinado nos termos do Art. 38 do Decreto Estadual nº 7304/2021. AResolução de Funcionamentos (5313512) SEI [PROCESSO] / pg. 55 [PESSOA] E [PESSOA] N.º 6.785/2022 – GS/SEED O Diretor-Geral da Secretaria de Estado da Educação e do Esporte , no
|
| 230 |
+
uso de suas atribuições legais, e considerando: a Lei n.º 9394/1996, de 20 de
|
| 231 |
+
dezembro de 1996, as Deliberações n.º 03/2006, 03/2013, 12/2021 e o Parecer
|
| 232 |
+
n.º 546/2022 – CEIF, todos do Conselho Estadual de Educação, RESOLVE:
|
| 233 |
+
Art. 1º Renovar o reconhecimento do Ensino Fundamental (1º ao 9º ano), do
|
| 234 |
+
Colégio Dom Orione – Educação Infantil, Ensino Fundamental e Médio, situado na
|
| 235 |
+
[ENDERECO][PESSOA] [PESSOA], 33, do [PESSOA] , NRE da Área
|
| 236 |
+
Metropolitana Norte . § 1º A instituição de ensino é mantida pelo [PESSOA] e obteve a última
|
| 237 |
+
renovação do credenciamento pela Resolução n.º 2870/2022, de 26/05/2022 e
|
| 238 |
+
[PESSOA] n.º 1664/2022 – CEF/SEED, com vigência até 31/12/20 32. § 2º As Resoluções
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
|
| 240 |
|
| 241 |
## Nota Técnica Básica
|
pages/0_Historico_de_Versoes.py
CHANGED
|
@@ -9,6 +9,10 @@ st.title("Histórico de Versões")
|
|
| 9 |
st.write(f"Versão atual: **{VERSION}**")
|
| 10 |
|
| 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
st.markdown("""
|
| 13 |
- **0.2.0** — Inclusão da tela da criação do laudo
|
| 14 |
- Inclusão da função para busca no BDV (ainda sem BDV funcional)
|
|
|
|
| 9 |
st.write(f"Versão atual: **{VERSION}**")
|
| 10 |
|
| 11 |
|
| 12 |
+
st.markdown("""
|
| 13 |
+
- **0.2.1** — Correção da busca no BDV para o campo correto de retorno
|
| 14 |
+
""")
|
| 15 |
+
|
| 16 |
st.markdown("""
|
| 17 |
- **0.2.0** — Inclusão da tela da criação do laudo
|
| 18 |
- Inclusão da função para busca no BDV (ainda sem BDV funcional)
|
pages/9_Tela9_Laudo.py
CHANGED
|
@@ -1,230 +1,230 @@
|
|
| 1 |
-
|
| 2 |
-
import streamlit as st
|
| 3 |
-
from template import render_header, require_uploaded_pdf, CACHE, GERARCACHE
|
| 4 |
-
|
| 5 |
-
from bd.embeddings import get_embeddings
|
| 6 |
-
from bd.bdv import buscar_por_embeddings
|
| 7 |
-
import json
|
| 8 |
-
|
| 9 |
-
st.set_page_config(page_title="Tela 9 — Laudo", layout="wide", initial_sidebar_state="collapsed")
|
| 10 |
-
render_header()
|
| 11 |
-
|
| 12 |
-
st.header("Tela 9 — Laudo (Markdown + Preview)")
|
| 13 |
-
|
| 14 |
-
if not require_uploaded_pdf():
|
| 15 |
-
st.stop()
|
| 16 |
-
|
| 17 |
-
result = st.session_state["result_classificador"]
|
| 18 |
-
|
| 19 |
-
def normas_para_strings(normas):
|
| 20 |
-
resultado = []
|
| 21 |
-
|
| 22 |
-
for norma in normas:
|
| 23 |
-
partes = []
|
| 24 |
-
|
| 25 |
-
# Campos básicos da norma
|
| 26 |
-
partes.append(f"id_norma: {norma.get('id_norma')}")
|
| 27 |
-
partes.append(f"espécie_normativa: {norma.get('especie_normativa')}")
|
| 28 |
-
partes.append(f"sigla: {norma.get('sigla')}")
|
| 29 |
-
partes.append(f"número: {norma.get('numero')}")
|
| 30 |
-
partes.append(f"ano: {norma.get('ano')}")
|
| 31 |
-
partes.append(f"órgão_emissor: {norma.get('orgao_emissor')}")
|
| 32 |
-
partes.append(f"referência_completa: {norma.get('referencia_completa')}")
|
| 33 |
-
|
| 34 |
-
# Artigos mencionados
|
| 35 |
-
artigos = norma.get("artigos_mencionados", [])
|
| 36 |
-
artigos_str_list = []
|
| 37 |
-
|
| 38 |
-
for art in artigos:
|
| 39 |
-
artigo_str = (
|
| 40 |
-
f"artigo {art.get('artigo')}, "
|
| 41 |
-
f"parágrafos: {', '.join(art.get('paragrafos', [])) or 'nenhum'}, "
|
| 42 |
-
f"incisos: {', '.join(art.get('incisos', [])) or 'nenhum'}, "
|
| 43 |
-
f"alíneas: {', '.join(art.get('alineas', [])) or 'nenhum'}, "
|
| 44 |
-
f"fontes: {', '.join(art.get('ids_fontes_no_processo', []))}, "
|
| 45 |
-
f"observação: {art.get('observacao_curta')}"
|
| 46 |
-
)
|
| 47 |
-
artigos_str_list.append(artigo_str)
|
| 48 |
-
|
| 49 |
-
if artigos_str_list:
|
| 50 |
-
partes.append("artigos_mencionados: " + " | ".join(artigos_str_list))
|
| 51 |
-
else:
|
| 52 |
-
partes.append("artigos_mencionados: nenhum")
|
| 53 |
-
|
| 54 |
-
# Junta tudo em uma única string
|
| 55 |
-
norma_str = " ; ".join(partes)
|
| 56 |
-
resultado.append(norma_str)
|
| 57 |
-
|
| 58 |
-
return resultado
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
def pegarLegislacao(legislacoes_marcadas):
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
return textoleg
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
from typing import Any, Dict, List
|
| 94 |
-
|
| 95 |
-
def _md_escape(text: str) -> str:
|
| 96 |
-
# simples: evita quebrar markdown com quebras e mantém legível
|
| 97 |
-
return (text or "").replace("\r\n", "\n").strip()
|
| 98 |
-
|
| 99 |
-
def format_grupos_markdown(grupos: List[Dict[str, Any]]) -> str:
|
| 100 |
-
linhas: List[str] = []
|
| 101 |
-
|
| 102 |
-
for g in grupos:
|
| 103 |
-
nome_grupo = _md_escape(g.get("nome_grupo", "Grupo sem nome"))
|
| 104 |
-
status_grupo = _md_escape(g.get("status_grupo", ""))
|
| 105 |
-
|
| 106 |
-
# Título do grupo (em negrito)
|
| 107 |
-
#if status_grupo:
|
| 108 |
-
# linhas.append(f"**{nome_grupo}** _(status do grupo: {status_grupo})_")
|
| 109 |
-
#else:
|
| 110 |
-
# linhas.append(f"**{nome_grupo}**")
|
| 111 |
-
|
| 112 |
-
linhas.append(f"**{nome_grupo}**")
|
| 113 |
-
|
| 114 |
-
itens = g.get("itens", []) or []
|
| 115 |
-
if not itens:
|
| 116 |
-
linhas.append("- (sem itens)")
|
| 117 |
-
linhas.append("") # linha em branco
|
| 118 |
-
continue
|
| 119 |
-
|
| 120 |
-
for it in itens:
|
| 121 |
-
desc = _md_escape(it.get("descricao_item", "Item sem descrição"))
|
| 122 |
-
status = _md_escape(it.get("status", ""))
|
| 123 |
-
evidencias = it.get("evidencias", []) or []
|
| 124 |
-
pendencias = it.get("pendencias", []) or []
|
| 125 |
-
|
| 126 |
-
# Cabeçalho do item
|
| 127 |
-
if status:
|
| 128 |
-
linhas.append(f"- **Item:** {desc}")
|
| 129 |
-
linhas.append(f" - **Status:** {status}")
|
| 130 |
-
else:
|
| 131 |
-
linhas.append(f"- **Item:** {desc}")
|
| 132 |
-
|
| 133 |
-
# Evidências
|
| 134 |
-
if evidencias:
|
| 135 |
-
linhas.append(" - **Evidências:**")
|
| 136 |
-
for ev in evidencias:
|
| 137 |
-
doc = _md_escape(ev.get("id_documento", ""))
|
| 138 |
-
tipo = _md_escape(ev.get("tipo_documento", ""))
|
| 139 |
-
loc = _md_escape(ev.get("localizacao", ""))
|
| 140 |
-
resumo = _md_escape(ev.get("resumo_evidencia", ""))
|
| 141 |
-
|
| 142 |
-
partes = []
|
| 143 |
-
if doc: partes.append(f"doc: {doc}")
|
| 144 |
-
if tipo: partes.append(f"tipo: {tipo}")
|
| 145 |
-
if loc: partes.append(f"local: {loc}")
|
| 146 |
-
if resumo: partes.append(f"resumo: {resumo}")
|
| 147 |
-
|
| 148 |
-
linhas.append(f" - " + (" | ".join(partes) if partes else "(evidência sem detalhes)"))
|
| 149 |
-
else:
|
| 150 |
-
linhas.append(" - **Evidências:** (nenhuma)")
|
| 151 |
-
|
| 152 |
-
# Pendências
|
| 153 |
-
if pendencias:
|
| 154 |
-
linhas.append(" - **Pendências:**")
|
| 155 |
-
for p in pendencias:
|
| 156 |
-
linhas.append(f" - {_md_escape(str(p))}")
|
| 157 |
-
else:
|
| 158 |
-
linhas.append(" - **Pendências:** (nenhuma)")
|
| 159 |
-
|
| 160 |
-
linhas.append("") # linha em branco entre grupos
|
| 161 |
-
|
| 162 |
-
return "\n".join(linhas).rstrip()
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
#default_md = st.session_state.get("resumo_md") or (
|
| 166 |
-
# "## Resumo Inicial\n\n"
|
| 167 |
-
# "Escreva aqui um breve resumo da Nota Técnica.\n\n"
|
| 168 |
-
# f"**Arquivo original**: {st.session_state.get('uploaded_pdf_name')}\n"
|
| 169 |
-
#)
|
| 170 |
-
|
| 171 |
-
entrar =
|
| 172 |
-
|
| 173 |
-
#default_md = ""
|
| 174 |
-
if "notatecnica_md" not in st.session_state or st.session_state["notatecnica_md"] == "" or entrar == True:
|
| 175 |
-
print("processando IA - gerando laudo")
|
| 176 |
-
with st.spinner("🤖 Gerando Laudo com IA..."):
|
| 177 |
-
nome_arquivo = "notatecnica.txt"
|
| 178 |
-
if CACHE == False:
|
| 179 |
-
#default_md = sumarizador5(st.session_state["uploaded_pdf_text"], model=modelo, temperature=temperature, especializacao=especializacao, top_p=top_p, viewpoint=viewpoint)
|
| 180 |
-
#default_md = st.session_state["resumo_md"]
|
| 181 |
-
p1 = st.session_state["resumo_md"]
|
| 182 |
-
p2 = json.dumps(result["nota_tecnica"]["checklists"]["checklists"], ensure_ascii=False, indent=2)
|
| 183 |
-
leg = normas_para_strings(result["nota_tecnica"]["normas_processo"]["normas"])
|
| 184 |
-
p3 = pegarLegislacao(leg)
|
| 185 |
-
|
| 186 |
-
p2_text = format_grupos_markdown(result["nota_tecnica"]["checklists"]["checklists"])
|
| 187 |
-
|
| 188 |
-
default_md = f"""
|
| 189 |
-
# LAUDO
|
| 190 |
-
|
| 191 |
-
## Cheklist
|
| 192 |
-
|
| 193 |
-
{p2_text}
|
| 194 |
-
|
| 195 |
-
## Normas/Legislação
|
| 196 |
-
|
| 197 |
-
{p3}
|
| 198 |
-
|
| 199 |
-
## Nota Técnica Básica
|
| 200 |
-
|
| 201 |
-
{p1}
|
| 202 |
-
|
| 203 |
-
"""
|
| 204 |
-
#default_md = criadornotatecnica5(st.session_state["uploaded_pdf_text"], model=modelo, temperature=temperature, especializacao=especializacao, top_p=top_p, viewpoint=viewpoint,
|
| 205 |
-
# resultado_passo_1=p1, resultado_passo_2=p2, resultado_passo_3=p3)
|
| 206 |
-
if GERARCACHE == True:
|
| 207 |
-
with open(nome_arquivo, "w", encoding="utf-8") as arquivo:
|
| 208 |
-
arquivo.write(default_md)
|
| 209 |
-
else:
|
| 210 |
-
with open(nome_arquivo, 'r', encoding="utf-8") as f:
|
| 211 |
-
default_md = f.read()
|
| 212 |
-
#print(default_md)
|
| 213 |
-
else:
|
| 214 |
-
default_md = st.session_state["notatecnica_md"]
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
col1, col2 = st.columns([0.55, 0.45])
|
| 218 |
-
with col1:
|
| 219 |
-
st.session_state["notatecnica_md"] = st.text_area("Editar Laudo em Markdown", value=default_md, height=420)
|
| 220 |
-
|
| 221 |
-
with col2:
|
| 222 |
-
st.markdown("**Pré-visualização do Laudo**")
|
| 223 |
-
st.markdown(st.session_state["notatecnica_md"], unsafe_allow_html=False)
|
| 224 |
-
|
| 225 |
-
st.divider()
|
| 226 |
-
col1x, col2x, col3x = st.columns([0.1, 0.1, 0.8])
|
| 227 |
-
with col1x:
|
| 228 |
-
st.page_link("pages/8_Tela8_Grupo5.py", label="⬅️ Voltar")
|
| 229 |
-
with col2x:
|
| 230 |
-
st.page_link("pages/10_Tela10_Conclusao.py", label="Próximo passo ➡️")
|
|
|
|
| 1 |
+
|
| 2 |
+
import streamlit as st
|
| 3 |
+
from template import render_header, require_uploaded_pdf, CACHE, GERARCACHE
|
| 4 |
+
from agents.criadornotatecnica import criadornotatecnica5, modelo, temperature, especializacao, top_p, viewpoint
|
| 5 |
+
from bd.embeddings import get_embeddings
|
| 6 |
+
from bd.bdv import buscar_por_embeddings
|
| 7 |
+
import json
|
| 8 |
+
|
| 9 |
+
st.set_page_config(page_title="Tela 9 — Laudo", layout="wide", initial_sidebar_state="collapsed")
|
| 10 |
+
render_header()
|
| 11 |
+
|
| 12 |
+
st.header("Tela 9 — Laudo (Markdown + Preview)")
|
| 13 |
+
|
| 14 |
+
if not require_uploaded_pdf():
|
| 15 |
+
st.stop()
|
| 16 |
+
|
| 17 |
+
result = st.session_state["result_classificador"]
|
| 18 |
+
|
| 19 |
+
def normas_para_strings(normas):
|
| 20 |
+
resultado = []
|
| 21 |
+
|
| 22 |
+
for norma in normas:
|
| 23 |
+
partes = []
|
| 24 |
+
|
| 25 |
+
# Campos básicos da norma
|
| 26 |
+
partes.append(f"id_norma: {norma.get('id_norma')}")
|
| 27 |
+
partes.append(f"espécie_normativa: {norma.get('especie_normativa')}")
|
| 28 |
+
partes.append(f"sigla: {norma.get('sigla')}")
|
| 29 |
+
partes.append(f"número: {norma.get('numero')}")
|
| 30 |
+
partes.append(f"ano: {norma.get('ano')}")
|
| 31 |
+
partes.append(f"órgão_emissor: {norma.get('orgao_emissor')}")
|
| 32 |
+
partes.append(f"referência_completa: {norma.get('referencia_completa')}")
|
| 33 |
+
|
| 34 |
+
# Artigos mencionados
|
| 35 |
+
artigos = norma.get("artigos_mencionados", [])
|
| 36 |
+
artigos_str_list = []
|
| 37 |
+
|
| 38 |
+
for art in artigos:
|
| 39 |
+
artigo_str = (
|
| 40 |
+
f"artigo {art.get('artigo')}, "
|
| 41 |
+
f"parágrafos: {', '.join(art.get('paragrafos', [])) or 'nenhum'}, "
|
| 42 |
+
f"incisos: {', '.join(art.get('incisos', [])) or 'nenhum'}, "
|
| 43 |
+
f"alíneas: {', '.join(art.get('alineas', [])) or 'nenhum'}, "
|
| 44 |
+
f"fontes: {', '.join(art.get('ids_fontes_no_processo', []))}, "
|
| 45 |
+
f"observação: {art.get('observacao_curta')}"
|
| 46 |
+
)
|
| 47 |
+
artigos_str_list.append(artigo_str)
|
| 48 |
+
|
| 49 |
+
if artigos_str_list:
|
| 50 |
+
partes.append("artigos_mencionados: " + " | ".join(artigos_str_list))
|
| 51 |
+
else:
|
| 52 |
+
partes.append("artigos_mencionados: nenhum")
|
| 53 |
+
|
| 54 |
+
# Junta tudo em uma única string
|
| 55 |
+
norma_str = " ; ".join(partes)
|
| 56 |
+
resultado.append(norma_str)
|
| 57 |
+
|
| 58 |
+
return resultado
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
def pegarLegislacao(legislacoes_marcadas):
|
| 62 |
+
|
| 63 |
+
#print(legislacoes_marcadas)
|
| 64 |
+
textoleg = ""
|
| 65 |
+
#legislacoes_marcadas = st.session_state.get("legislacao", [])
|
| 66 |
+
|
| 67 |
+
if legislacoes_marcadas:
|
| 68 |
+
for idx, legislacao in enumerate(legislacoes_marcadas, start=1):
|
| 69 |
+
#print(f"{idx, legislacao}")
|
| 70 |
+
embedding = get_embeddings([legislacao])
|
| 71 |
+
resultados = buscar_por_embeddings(embedding, top_k=2)
|
| 72 |
+
#print(resultados)
|
| 73 |
+
pontos = resultados.get("result", []) if resultados else []
|
| 74 |
+
textoleg = f"{textoleg}\n\n**{[legislacao]}**\n\n"
|
| 75 |
+
if pontos:
|
| 76 |
+
print(f"Legislações similares encontradas para a legislação {idx}:")
|
| 77 |
+
for i, ponto in enumerate(pontos, start=1):
|
| 78 |
+
chave = ponto.get("id", "Sem ID")
|
| 79 |
+
score = ponto.get("score", 0)
|
| 80 |
+
payload = ponto.get("payload", {})
|
| 81 |
+
|
| 82 |
+
conteudo = payload.get("content", "")
|
| 83 |
+
|
| 84 |
+
textoleg = f"{textoleg}\n- {conteudo}\n"
|
| 85 |
+
else:
|
| 86 |
+
print(f"Nenhum resultado encontrado para a legislação {idx}.")
|
| 87 |
+
|
| 88 |
+
else:
|
| 89 |
+
print("Marque pelo menos uma legislação para buscar similares.")
|
| 90 |
+
return textoleg
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
from typing import Any, Dict, List
|
| 94 |
+
|
| 95 |
+
def _md_escape(text: str) -> str:
|
| 96 |
+
# simples: evita quebrar markdown com quebras e mantém legível
|
| 97 |
+
return (text or "").replace("\r\n", "\n").strip()
|
| 98 |
+
|
| 99 |
+
def format_grupos_markdown(grupos: List[Dict[str, Any]]) -> str:
|
| 100 |
+
linhas: List[str] = []
|
| 101 |
+
|
| 102 |
+
for g in grupos:
|
| 103 |
+
nome_grupo = _md_escape(g.get("nome_grupo", "Grupo sem nome"))
|
| 104 |
+
status_grupo = _md_escape(g.get("status_grupo", ""))
|
| 105 |
+
|
| 106 |
+
# Título do grupo (em negrito)
|
| 107 |
+
#if status_grupo:
|
| 108 |
+
# linhas.append(f"**{nome_grupo}** _(status do grupo: {status_grupo})_")
|
| 109 |
+
#else:
|
| 110 |
+
# linhas.append(f"**{nome_grupo}**")
|
| 111 |
+
|
| 112 |
+
linhas.append(f"**{nome_grupo}**")
|
| 113 |
+
|
| 114 |
+
itens = g.get("itens", []) or []
|
| 115 |
+
if not itens:
|
| 116 |
+
linhas.append("- (sem itens)")
|
| 117 |
+
linhas.append("") # linha em branco
|
| 118 |
+
continue
|
| 119 |
+
|
| 120 |
+
for it in itens:
|
| 121 |
+
desc = _md_escape(it.get("descricao_item", "Item sem descrição"))
|
| 122 |
+
status = _md_escape(it.get("status", ""))
|
| 123 |
+
evidencias = it.get("evidencias", []) or []
|
| 124 |
+
pendencias = it.get("pendencias", []) or []
|
| 125 |
+
|
| 126 |
+
# Cabeçalho do item
|
| 127 |
+
if status:
|
| 128 |
+
linhas.append(f"- **Item:** {desc}")
|
| 129 |
+
linhas.append(f" - **Status:** {status}")
|
| 130 |
+
else:
|
| 131 |
+
linhas.append(f"- **Item:** {desc}")
|
| 132 |
+
|
| 133 |
+
# Evidências
|
| 134 |
+
if evidencias:
|
| 135 |
+
linhas.append(" - **Evidências:**")
|
| 136 |
+
for ev in evidencias:
|
| 137 |
+
doc = _md_escape(ev.get("id_documento", ""))
|
| 138 |
+
tipo = _md_escape(ev.get("tipo_documento", ""))
|
| 139 |
+
loc = _md_escape(ev.get("localizacao", ""))
|
| 140 |
+
resumo = _md_escape(ev.get("resumo_evidencia", ""))
|
| 141 |
+
|
| 142 |
+
partes = []
|
| 143 |
+
if doc: partes.append(f"doc: {doc}")
|
| 144 |
+
if tipo: partes.append(f"tipo: {tipo}")
|
| 145 |
+
if loc: partes.append(f"local: {loc}")
|
| 146 |
+
if resumo: partes.append(f"resumo: {resumo}")
|
| 147 |
+
|
| 148 |
+
linhas.append(f" - " + (" | ".join(partes) if partes else "(evidência sem detalhes)"))
|
| 149 |
+
else:
|
| 150 |
+
linhas.append(" - **Evidências:** (nenhuma)")
|
| 151 |
+
|
| 152 |
+
# Pendências
|
| 153 |
+
if pendencias:
|
| 154 |
+
linhas.append(" - **Pendências:**")
|
| 155 |
+
for p in pendencias:
|
| 156 |
+
linhas.append(f" - {_md_escape(str(p))}")
|
| 157 |
+
else:
|
| 158 |
+
linhas.append(" - **Pendências:** (nenhuma)")
|
| 159 |
+
|
| 160 |
+
linhas.append("") # linha em branco entre grupos
|
| 161 |
+
|
| 162 |
+
return "\n".join(linhas).rstrip()
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
#default_md = st.session_state.get("resumo_md") or (
|
| 166 |
+
# "## Resumo Inicial\n\n"
|
| 167 |
+
# "Escreva aqui um breve resumo da Nota Técnica.\n\n"
|
| 168 |
+
# f"**Arquivo original**: {st.session_state.get('uploaded_pdf_name')}\n"
|
| 169 |
+
#)
|
| 170 |
+
|
| 171 |
+
entrar = False
|
| 172 |
+
|
| 173 |
+
#default_md = ""
|
| 174 |
+
if "notatecnica_md" not in st.session_state or st.session_state["notatecnica_md"] == "" or entrar == True:
|
| 175 |
+
print("processando IA - gerando laudo")
|
| 176 |
+
with st.spinner("🤖 Gerando Laudo com IA..."):
|
| 177 |
+
nome_arquivo = "notatecnica.txt"
|
| 178 |
+
if CACHE == False or entrar == True:
|
| 179 |
+
#default_md = sumarizador5(st.session_state["uploaded_pdf_text"], model=modelo, temperature=temperature, especializacao=especializacao, top_p=top_p, viewpoint=viewpoint)
|
| 180 |
+
#default_md = st.session_state["resumo_md"]
|
| 181 |
+
p1 = st.session_state["resumo_md"]
|
| 182 |
+
p2 = json.dumps(result["nota_tecnica"]["checklists"]["checklists"], ensure_ascii=False, indent=2)
|
| 183 |
+
leg = normas_para_strings(result["nota_tecnica"]["normas_processo"]["normas"])
|
| 184 |
+
p3 = pegarLegislacao(leg)
|
| 185 |
+
|
| 186 |
+
p2_text = format_grupos_markdown(result["nota_tecnica"]["checklists"]["checklists"])
|
| 187 |
+
|
| 188 |
+
default_md = f"""
|
| 189 |
+
# LAUDO
|
| 190 |
+
|
| 191 |
+
## Cheklist
|
| 192 |
+
|
| 193 |
+
{p2_text}
|
| 194 |
+
|
| 195 |
+
## Normas/Legislação
|
| 196 |
+
|
| 197 |
+
{p3}
|
| 198 |
+
|
| 199 |
+
## Nota Técnica Básica
|
| 200 |
+
|
| 201 |
+
{p1}
|
| 202 |
+
|
| 203 |
+
"""
|
| 204 |
+
#default_md = criadornotatecnica5(st.session_state["uploaded_pdf_text"], model=modelo, temperature=temperature, especializacao=especializacao, top_p=top_p, viewpoint=viewpoint,
|
| 205 |
+
# resultado_passo_1=p1, resultado_passo_2=p2, resultado_passo_3=p3)
|
| 206 |
+
if GERARCACHE == True:
|
| 207 |
+
with open(nome_arquivo, "w", encoding="utf-8") as arquivo:
|
| 208 |
+
arquivo.write(default_md)
|
| 209 |
+
else:
|
| 210 |
+
with open(nome_arquivo, 'r', encoding="utf-8") as f:
|
| 211 |
+
default_md = f.read()
|
| 212 |
+
#print(default_md)
|
| 213 |
+
else:
|
| 214 |
+
default_md = st.session_state["notatecnica_md"]
|
| 215 |
+
|
| 216 |
+
|
| 217 |
+
col1, col2 = st.columns([0.55, 0.45])
|
| 218 |
+
with col1:
|
| 219 |
+
st.session_state["notatecnica_md"] = st.text_area("Editar Laudo em Markdown", value=default_md, height=420)
|
| 220 |
+
|
| 221 |
+
with col2:
|
| 222 |
+
st.markdown("**Pré-visualização do Laudo**")
|
| 223 |
+
st.markdown(st.session_state["notatecnica_md"], unsafe_allow_html=False)
|
| 224 |
+
|
| 225 |
+
st.divider()
|
| 226 |
+
col1x, col2x, col3x = st.columns([0.1, 0.1, 0.8])
|
| 227 |
+
with col1x:
|
| 228 |
+
st.page_link("pages/8_Tela8_Grupo5.py", label="⬅️ Voltar")
|
| 229 |
+
with col2x:
|
| 230 |
+
st.page_link("pages/10_Tela10_Conclusao.py", label="Próximo passo ➡️")
|
template.py
CHANGED
|
@@ -4,7 +4,7 @@ from pathlib import Path
|
|
| 4 |
|
| 5 |
# ========= Global settings =========
|
| 6 |
PROJECT_TITLE = "Agente CEBAS"
|
| 7 |
-
VERSION = "0.2.
|
| 8 |
CACHE = True
|
| 9 |
GERARCACHE = False
|
| 10 |
if CACHE == True:
|
|
|
|
| 4 |
|
| 5 |
# ========= Global settings =========
|
| 6 |
PROJECT_TITLE = "Agente CEBAS"
|
| 7 |
+
VERSION = "0.2.1" # variável global com a versão
|
| 8 |
CACHE = True
|
| 9 |
GERARCACHE = False
|
| 10 |
if CACHE == True:
|