Skip to content

crivano/apoia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

ApoIA

ApoIA é uma ferramenta de inteligência artificial generativa originalmente desenvolvida para auxiliar na triagem de acervos. Ela analisa documentos de processos e gera resumos das principais peças e gera um relatório sobre acervo.

A ApoIA também pode ser utilizada para realizar uma Síntese do Processo on-line, a partir da informação do número do processo.

Outros recursos disponíveis são a geração de ementas conforme Resolução 156/2024 do CNJ e a revisão de textos por inteligência artificial.

Clique aqui para ver uma apresentação da ApoIA.

Funcionalidades

Integração com Eproc: Login, consulta processual e obtenção de peças via MNI.

Integração com IA: Repositório de prompts, envio e recebimento, limites de acesso.

Interface com o Usuário: Informação do número do processo, apresentação dos resultados em tempo real, processamento de relatórios.

Arquitetura

  • Nodejs 20 LTS
  • Desenvolvido em TypeScript, NextJS e Vercel AI SDK
  • Compatível com ChatGPT, Claude, Gemini, Llama, etc
  • MySQL para gerar relatórios de triagem e armazenar respostas de IA (opcional)
  • Pode ser acoplado a qualquer sistema compatível com o MNI
  • Sem nenhuma outra dependência

Configuração

A ApoIA requer que diversas variáveis de ambiente sejam informadas. No ambiente de desenvolvimento, isso pode ser feito criando um arquivo na raiz do projeto chamado .env.local.

Primeiro, indique quais são os sistemas aos quais deseja conectar a ApoIA, depois, para cada sistema, informe o endereço do WSDL e do Endpoint do MNI:

Observação: caso haja a necessidade de utilizar senhas criptografadas ao enviar as requisições, devemos adicionar a variavél de anbiente <SYSTEM>_HASH_PASSWORD

SYSTEMS=TRF2,JFRJ,JFES
TRF2_MNI_WSDL_URL="https://epr.trf2.jus.br/eproc/wsdl.php?srv=intercomunicacao2.2"
TRF2_MNI_ENDPOINT_URL="https://epr.trf2.jus.br/eproc/ws/controlador_ws.php?srv=intercomunicacao2.2"
JFRJ_MNI_WSDL_URL="https://epr.jfrj.jus.br/eproc/wsdl.php?srv=intercomunicacao2.2"
JFRJ_MNI_ENDPOINT_URL="https://epr.jfrj.jus.br/eproc/ws/controlador_ws.php?srv=intercomunicacao2.2"
JFES_MNI_WSDL_URL="https://epr.jfes.jus.br/eproc/wsdl.php?srv=intercomunicacao2.2"
JFES_MNI_ENDPOINT_URL="https://epr.jfes.jus.br/eproc/ws/controlador_ws.php?srv=intercomunicacao2.2"
JFES_HAS_PASSWORD=true

Informe o identificador do modelo de inteligência artificial que deseja utilizar. Outros possíveis seriam: gpt-4o-mini-2024-07-18, claude-3-5-sonnet-20241022 ou qualquer outro suportado pelo framework Vercel AI.

MODEL=gpt-4o-2024-08-06

Forneça a chave da API relativa ao modelo selecionado. Caso nenhuma seja fornecida, a ApoIA vai solicitar as chaves ao usuário.

OPENAI_API_KEY=CHAVE_DE_API_OPENAI (opcional)
ANTHROPIC_API_KEY=CHAVE_DE_API_ANTHROPIC (opcional)
GOOGLE_API_KEY=CHAVE_DE_API_GOOGLE (opcional)
GROQ_API_KEY=CHAVE_DE_API_GROQ (opcional)

Sugerimos que a ApoIA não tenha acesso a documentos sigilosos. Isso pode ser obtido aplicando a propriedade abaixo:

CONFIDENTIALITY_LEVEL_MAX=0

A Apoia utiliza o framework de autenticação NextAuth, portanto é necessário configurar as propriedades abaixo:

NEXTAUTH_URL_INTERNAL=http://localhost:8081
NEXTAUTH_URL=http://localhost:8081
NEXTAUTH_SECRET=SUBSTITUIR_POR_UM_UUID_ALEATORIO

A API da ApoIA funciona com um token JWE, portanto, é necessário configurar as seguintes propriedades:

JWT_SECRET=SUBSTITUIR_POR_UM_UUID_ALEATORIO
JWT_ISSUER=apoia.trf2.jus.br
JWT_AUDIENCE=apoia.trf2.jus.br

Uma encriptação a mais é realizada na senha a partir da chave abaixo:

PWD_SECRET=SUBSTITUIR_POR_UM_UUID_ALEATORIO

Inicialização do banco de dados

Para criar o esquema apoia, execute os comandos encontrados nos arquivos mysql/migration para MySQL e postgres/migration para postgres

Para conectar ao MySQL, utilize propriedades como as descritas abaixo:

DB_CLIENT=mysql2
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=SUBSTITUIR_PELA_SENHA_DO_MYSQL
DB_DATABASE=apoia
DB_POOL=2
DB_SSL=

Para conectar ao PostgreSQL, utilize siga o padrão abaixo:

DB_CLIENT=pg
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=SUBSTITUIR_PELA_SENHA_DO_POSTGRESQL
DB_DATABASE=apoia
DB_POOL=2
DB_SSL=

O nome do host e da porta pode variar caso esteja executando a partir de sua máquina, como desenvolvimento a fim de fazer debug, ou caso esteja rodando a aplicação a partir de containers

Se desejar que a ApoIA, ao clicar sobre o número de um processo, abra o sistema processual, use a configuração abaixo:

NAVIGATE_TO_PROCESS_URL=https://balcaojush.jfrj.jus.br/balcaojus/#/processo/{numero}?avisos=0

Executando a ApoIA em Modo de Desenvolvimento

  1. Faça o download e instale o Node.js ou, se já tiver o Node.js instalado, atualize o Node.js e o NPM para as últimas versões

  2. Faça o donwload e instale o VSCode

  3. Clone o repositório da ApoIA

$ cd seu-diretorio-de-repositórios
$ git clone https://github.com/trf2-jus-br/apoia
  1. Abra o VSCode no diretório seu-diretorio-de-repositórios/apoia (utilize o menu File/Open Folder)

  2. Crie o arquivo de configuração conforme explicado acima

  3. Abra o terminal no VSCode (utilize o menu Terminal/New Terminal) depois instale as dependências com o comando abaixo:

$ npm install
  1. Execute a aplicação em modo de desenvolvimento com o comando no terminal:
$ npm run dev

Fazendo o Deploy em Produção com Docker ou Vercel

  1. Instale o Docker na sua máquina

  2. Edite o arquivo docker-compose.yaml e ajuste o valor das configurações em services/apoiaserver/environment

  3. Execute a aplicação e depois aponte o navegador para http://localhost:8080

$ docker-compose up
  1. Se desejar apenas criar o container do docker, isso pode ser realizado assim:
$ docker build -t apoiaserver .

Caso deseje fazer deploy na nuvem, a ApoIA funciona perfeitamente no Vercel, basta indicar o repositório do GitHub e inserir as configurações.