Skip to content

[DEPENDENCIES] Migrar Spring AI 2.0.0-M6 para uma release estável #101

Description

@Luca5Eckert

Contexto

O Kairos utiliza spring-ai-bom e spring-ai-starter-model-google-genai na versão 2.0.0-M6. Essa é uma milestone release e, portanto, pode introduzir mudanças incompatíveis, APIs ainda não estabilizadas e maior risco operacional.

A integração atual é crítica para dois fluxos:

  • extração estruturada de triples durante a ingestão;
  • recognition memory durante a busca.

Objetivo

Migrar o projeto para a primeira release estável do Spring AI 2.x comprovadamente compatível com a versão de Spring Boot utilizada pelo Kairos, sem alterar os contratos de domínio nem degradar os comportamentos atuais.

Pré-condição

Antes da implementação, confirmar em fontes oficiais:

  • qual release estável do Spring AI suporta o Spring Boot atual;
  • compatibilidade do starter Google GenAI;
  • mudanças de configuração, ChatClient, structured output, advisors e observabilidade;
  • requisitos de Java e dependências transitivas.

Caso ainda não exista uma combinação estável compatível, documentar o bloqueio na issue e não substituir a milestone por outra versão pré-release apenas para alterar o número.

Escopo

  • Atualizar o BOM e os starters do Spring AI.
  • Adaptar APIs removidas, renomeadas ou estabilizadas.
  • Preservar os ports de domínio de extração e recognition memory.
  • Revisar propriedades em application.yml, .env.example e docs/configuration.md.
  • Validar structured output para respostas válidas, vazias e malformadas.
  • Validar timeout, retry e tratamento de erros transitórios do provider.
  • Revisar serialização/deserialização dos DTOs enviados ao Gemini.
  • Confirmar que prompts, limites e modelo continuam externalizados.
  • Executar análise de dependências e vulnerabilidades após o upgrade.
  • Remover do README e de docs/operations.md a limitação da milestone somente após a migração validada.
  • Registrar mudanças arquiteturalmente relevantes em ADR ou atualização de ADR existente.

Critérios de aceite

  • O projeto utiliza uma release GA/estável do Spring AI compatível com Spring Boot 4.
  • ./mvnw clean verify passa integralmente.
  • Extração de triples continua retornando structured output válido.
  • Recognition memory mantém o contrato e os limites atuais.
  • Falhas do provider continuam degradando de forma previsível.
  • Configuração antiga ou removida não permanece silenciosamente sem efeito.
  • Testes cobrem mapeamento, resposta vazia, resposta inválida e erro transitório.
  • Dependências transitivas foram revisadas por dependency:tree e pelos gates de segurança.
  • README, configuração e operações refletem a versão estável adotada.
  • A PR registra a matriz exata de compatibilidade validada.

Fora de escopo

  • trocar Gemini por outro provider;
  • adotar um LLM local;
  • substituir ONNX embeddings por Spring AI EmbeddingModel;
  • substituir a persistência pgvector por VectorStore do Spring AI;
  • alterar o algoritmo HippoRAG 2;
  • atualizar Spring Boot sem necessidade de compatibilidade demonstrada.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions