Ficha do projeto

02 / 03

Cuidado compartilhado com assistente de IA e RAG

RotinaPet

A família inteira cuida do mesmo pet sem duplicar remédio nem perder vacina: cada tutor vê o que já foi feito, por quem e quando. O assistente de IA só enxerga o que aquela família tem direito de ver e nunca registra nada sem a confirmação de uma pessoa.

O RotinaPet organiza agenda, histórico clínico, documentos e cuidado compartilhado. A camada de IA consulta somente fontes autorizadas da família, cita o que encontrou e entrega rascunhos que ainda passam pelas regras determinísticas do domínio.

Período
05.2025 · atual
Minha atuação
Arquitetura do backend, autorização do RAG, pipeline de indexação e integração do assistente com o frontend Angular.
Tecnologia
Kotlin · Spring Boot · Angular · PostgreSQL/pgvector · OpenAI
Estado
Produto publicado e desenvolvimento ativo
Logotipo oficial do RotinaPet em verde, preto e amarelo
Identidade do RotinaPet, produto que reúne agenda, documentos e decisões de cuidado por família.

CÍRCULO

Responder sem atravessar famílias nem prescrever sozinho

Uma busca semanticamente parecida pode pertencer a outro pet ou outra família. Mesmo com a fonte correta, texto clínico insuficiente não sustenta uma resposta. E uma sugestão de cuidado não pode virar plano apenas porque o modelo devolveu JSON válido.

SETOR

Limites impostos à IA

  1. Autorização define o corpus

    Família, pet e fontes com estado READY delimitam o conjunto pesquisável antes do ranking. Um documento revogado sai da elegibilidade imediatamente, mesmo que a limpeza física dos chunks ocorra depois.

  2. Busca híbrida com citação validada

    FTS em português e distância vetorial são combinados por RRF. As citações retornadas precisam apontar para trechos do conjunto autorizado; sem suporte suficiente, o assistente se abstém.

  3. Indexação recuperável

    Fonte, atividade e outbox são gravadas na mesma transação. O worker cria embeddings em lote e publica chunks e estado READY atomicamente, com retry e dead letter para falhas persistentes.

  4. Confirmação pelo domínio

    Structured Outputs produz um rascunho versionado. Antes de escrever um plano, o caso de uso revalida papel, versão, expiração, idempotência e confirmação explícita da pessoa responsável.

MARCA

Critérios registrados no projeto

  • Dataset de avaliação versionado, com casos respondíveis e não respondíveis, cobrindo recuperação, citação e abstenção
  • Casos de prompt injection e testes de integração com Testcontainers e pgvector
  • Estados de fonte, chunks e citações preservam o caminho entre resposta e documento autorizado
  • Backend Kotlin/Spring Boot e frontend Angular publicados separadamente, com repositórios públicos

SÚMULA