Skip to content

developer‐manual

Renato Crivano edited this page Jan 9, 2025 · 2 revisions

Manual Técnico

1. Visão Geral da Arquitetura

A ApoIA foi desenvolvida em TypeScript, com uso de NextJS e Vercel AI SDK. Ela funciona como uma API de Inteligência Artificial Generativa que pode se conectar a múltiplos provedores (OpenAI, Google, Llama, Anthropic etc.).

Diagrama de Integração (PDPJ-Br e MNI)

%% Exemplo em Mermaid para visualização

flowchart LR
    A(ApoIA) --> B(Serviço SSO)
    B --> A
    B --> C(Data Lake Codex)
    A --> C
    C --> A
    A --> D(Banco PostgreSQL)
    D --> A
Loading
  • Serviço SSO: realiza autenticação e fornece credenciais.
  • Data Lake Codex: repositório de dados dos processos.
  • Banco PostgreSQL: armazenamento de relatórios de triagem, respostas da IA e demais dados persistentes.

Observação: O mesmo diagrama se aplica à integração MNI, pois a estrutura de comunicação é semelhante.

2. Requisitos de Instalação

  1. Ambiente de Desenvolvimento

    • Node.js (versão 16 ou superior)
    • Banco de dados PostgreSQL (ou MySQL)
    • Acesso a chaves de API dos provedores de IA (caso seja necessária inferência fora da infraestrutura do tribunal)
  2. Configurações do Projeto

  3. Compilação e Deploy

    • Executar npm install para instalar as dependências.
    • Rodar npm run build para compilar o projeto.
    • Iniciar o servidor: npm start ou configurar em ambiente containerizado (Docker).

3. Integrações Detalhadas

3.1. Integração com PDPJ-Br

  • Autenticação: realizada via serviço SSO.
  • Consulta de Processos: ApoIA se comunica com o Data Lake Codex para obter textos das peças processuais.
  • Armazenamento: informações mínimas (metadados) podem ser mantidas no banco de dados local.

3.2. Integração MNI

O mesmo fluxo de comunicação do PDPJ-Br é replicado para o MNI (Modelo Nacional de Interoperabilidade), respeitando normas de autenticação e segurança.

4. Repositório de Prompts

A ApoIA possui um Repositório de Prompts, onde ficam armazenadas instruções pré-configuradas para cada tipo de tarefa (síntese, revisão, geração de ementas etc.). Os prompts podem ser:

  • Versão de Produção: prompts oficiais, testados e aprovados.
  • Versão de Teste: prompts em desenvolvimento, que podem ser modificados e comparados.

O repositório registra:

  • Histórico de alterações
  • Resultados de testes
  • Ranking de prompts

5. Configuração de Chaves de API

Para cada provedor de IA (OpenAI, Google, Llama, Anthropic, etc.), o usuário ou o tribunal pode cadastrar a chave de acesso na através da opção de menu Modelo de IA.

Caso o Tribunal não possua contrato direto com algum provedor, um usuário autorizado pode inserir a própria chave de API para habilitar o uso daquele modelo.

6. Segurança e Sigilo

  • Sigilo de Dados: a ApoIA utiliza conexões seguras (HTTPS) e faz chamadas à API de forma controlada, reduzindo o risco de vazamento de informações.
  • Nível de Acesso: atualmente, somente processos e peças de nível zero (sem informação sigilosa) são tratados.
  • Controle de Logs: é possível customizar o nível de detalhamento dos logs para proteger dados sensíveis.

7. Escalabilidade e Monitoramento

  • Escalabilidade: a ApoIA pode ser executada em clusters ou serviços de nuvem.
  • Monitoramento: recomenda-se o uso de ferramentas para acompanhar performance e consumo de tokens de IA.

8. Roadmap de Evolução

  • Suporte a novos modelos de IA conforme forem surgindo.
  • Ampliação do escopo de processos sigilosos mediante implementação de camadas adicionais de segurança.
  • Novas funcionalidades que podem ser adicionadas ao repositório de prompts, auxiliando ainda mais na automação de tarefas do Judiciário.

9. Conclusão

A ApoIA foi desenvolvida para ser uma base sólida de criação, teste e disponibilização de ferramentas de IA para o Judiciário. Com sua arquitetura modular e open-source, é facilmente adaptável às necessidades de cada Tribunal. Seguindo as boas práticas de segurança e configuração recomendadas neste manual, a implantação e o uso da ApoIA podem trazer ganhos expressivos de eficiência e confiabilidade no tratamento de processos judiciais.