Uma proposta de Arquitetura Extensível para Suportar Múltiplos Vector Stores

O que é o SEI-IA

Nos últimos anos, a administração pública vem incorporando cada vez mais recursos de inteligência artificial para aumentar a produtividade dos servidores públicos.

Um exemplo pioneiro é o SEI-IA, módulo bastante popular desenvolvido pela ANATEL (Agência Nacional de Telecomunicações) que adiciona funcionalidades de inteligência artificial diretamente ao SEI.

O segredo da popularidade do SEI-IA está na usabilidade da interface gráfica e, principalmente, na galeria de prompts, funcionalidade que incentiva o compartilhamento de ideias entre os colaboradores e o aprendizado contínuo dentro da plataforma.

Figura 1: Assistente de IA integrado à interface gráfica do SEI

Figura 2: Galeria de Prompts.

Outra funcionalidade bastante valorizada é a quota diária de tokens, uma opção eficiente para controlar custos — um aspecto essencial para a administração pública

Figura 3: Quota diária de tokens por usuário

O papel do Vector Store no SEI-IA

Na arquitetura do SEI-IA, uma das peças fundamentais é o vector store, componente responsável pela pesquisa semântica dos documentos do SEI.

Esse componente desempenha um papel essencial porque muitos documentos administrativos podem ser extensos e complexos, tornando pouco eficiente enviá-los integralmente para um modelo de linguagem.

Embora modelos modernos já ofereçam janelas de contexto muito amplas — em alguns casos chegando a centenas de milhares ou até milhões de tokens —, utilizar todo esse espaço nem sempre é a melhor estratégia. Enviar documentos muito longos pode aumentar significativamente o custo de processamento, além de reduzir a qualidade das respostas geradas.

Em documentos administrativos, que frequentemente possuem muitos itens, seções inter-relacionadas e referências cruzadas, o excesso de informação no contexto pode dificultar a identificação das partes realmente relevantes. Isso aumenta a probabilidade de o modelo cometer erros de interpretação ou produzir respostas imprecisas.

Por esse motivo, arquiteturas baseadas em vector store são amplamente utilizadas em aplicações de IA corporativa. Em vez de enviar todo o documento ao modelo, o sistema identifica e recupera apenas os trechos (chunks) mais relevantes, garantindo respostas mais rápidas, econômicas e confiáveis.

Para lidar com esse cenário, o SEI-IA utiliza uma estratégia de vetorização sob demanda. Quando um documento é acessado pela primeira vez para uso com o assistente de IA, o sistema divide o conteúdo em pequenos trechos (chunks) e gera vetores para cada chunk. Esses vetores são então armazenados no vector store, permitindo que futuras pesquisas semânticas sejam realizadas de forma eficiente.

Quando o usuário faz uma pergunta sobre um documento, o sistema primeiro avalia o tamanho do conteúdo em tokens. Se o documento for pequeno o suficiente para caber dentro da janela de contexto do modelo, ele pode ser enviado diretamente ao LLM para análise.

No entanto, quando o documento ultrapassa uma quantidade de tokens predefinida, o SEI-IA utiliza o vector store para realizar uma pesquisa semântica. Nesse caso, o sistema converte a pergunta do usuário em um vector e executa uma busca vetorial baseada na similaridade entre os vetores, recuperando apenas os chunks mais relevantes do documento previamente vetorizado. Somente esses chunks são então enviados ao modelo de linguagem para gerar a resposta.

Esse mecanismo traz duas vantagens importantes:

• acelera a busca em documentos extensos

• reduz significativamente o consumo de tokens, já que apenas partes relevantes do documento são enviadas ao modelo

Além disso, o SEI-IA também permite que o usuário selecione intervalos específicos de páginas de um documento ao utilizar funcionalidades de inteligência artificial. Essa opção é especialmente útil em processos administrativos extensos, permitindo restringir a análise a trechos relevantes do documento. Com isso, o volume de texto enviado ao modelo é reduzido, contribuindo ainda mais para diminuir o consumo de tokens e melhorar o tempo de resposta.

Figura 4: Exemplo de pesquisa com intervalo de páginas usando o prefixo # para identificar o documento e sufixo [] para indicar o intervalo de páginas. Nesse caso somente a primeira página do documento foi selecionada, visto que geralmente o objeto do edital se encontra no início do documento.

A implementação original do SEI-IA utiliza o PostgreSQL como vector store, atendendo plenamente às necessidades iniciais da solução.

No entanto, à medida que diferentes órgãos começaram a adotar o SEI-IA, tornou-se evidente a necessidade de suportar outras tecnologias de vector store amplamente utilizadas no setor público, já que muitos órgãos possuem infraestruturas tecnológicas consolidadas e adaptadas às suas necessidades.

Este artigo descreve como a arquitetura do SEI-IA pode evoluir para suportar, além do PostgreSQL, outras tecnologias de vector store, sem quebrar a lógica existente da aplicação.

Benefícios para os Órgãos que Desejam Usar o SEI-IA

Ao dar suporte a múltiplos vector stores, a arquitetura passa a oferecer maior flexibilidade de implantação.

Na prática, isso significa que cada órgão pode escolher a alternativa que melhor se integra ao seu ambiente tecnológico, considerando fatores como:

• infraestrutura já existente

• padrões corporativos de tecnologia adotados pelo órgão

• requisitos de desempenho e escalabilidade

• políticas de governança e operação de dados

A possibilidade de utilizar diferentes tecnologias de vector store reduz barreiras de adoção, evitando a necessidade de introduzir uma nova tecnologia apenas para suportar funcionalidades de inteligência artificial.

Com isso, o SEI-IA pode se adaptar ao ambiente tecnológico do órgão, em vez de exigir mudanças na infraestrutura já estabelecida.

Essa flexibilidade contribui para que o SEI-IA continue evoluindo de forma interoperável, mantendo compatibilidade com os diferentes cenários de infraestrutura utilizados pela administração pública.

Arquitetura da Solução

Para viabilizar o uso de diferentes tecnologias como vector store, a arquitetura foi evoluída por meio da introdução de uma camada de abstração baseada no padrão de projeto Adapter.

A lógica de negócio não precisa conhecer os detalhes de implementação de cada vector store. Em vez disso, ela interage com uma interface comum de vector store.

Essa interface define operações como:

• inserção de vetores no vector store

• busca por similaridade no vector store

• verificar se o vector já existe para um documento

• remoção de vetores associados a um documento

Cada tecnologia passa então a possuir um adapter específico, responsável por traduzir essas operações para as funcionalidades equivalentes do vector store utilizado.

Na versão atual dessa evolução criamos adaptadores para Oracle, MySQL e PostgreSQL.

Figura 5: Adaptadores atualmente disponíveis

Um aspecto importante dessa abordagem é que as alterações necessárias no código do SEI-IA foram mínimas e bastante pontuais. A maior parte da lógica existente pôde ser preservada, sendo necessário apenas introduzir a interface de vector store e redirecionar os pontos de acesso para utilizar essa abstração. Dessa forma, a evolução da arquitetura não exige mudanças profundas no funcionamento da aplicação, reduzindo riscos e facilitando a manutenção futura do código.

Esse modelo permite que novas implementações sejam adicionadas no futuro sem alterar a lógica principal da aplicação.

Embora a interface defina um conjunto comum de operações, cada adapter continua livre para utilizar recursos específicos da tecnologia subjacente. Isso significa que funcionalidades avançadas — como diferentes tipos de índices vetoriais, estratégias de busca aproximada ou otimizações de desempenho — podem ser exploradas quando disponíveis em cada plataforma.

Dessa forma, a camada de abstração garante portabilidade da aplicação sem impedir o aproveitamento das capacidades nativas de cada vector store.

Essa estratégia também permite que, além de bancos relacionais, sejam utilizados mecanismos especializados de busca. Tecnologias amplamente utilizadas em arquiteturas de busca, como o OpenSearch, também podem suportar consultas vetoriais por meio da implementação de um adapter específico.

Apesar do Apache Solr já fazer parte do ecossistema do SEI para busca textual, neste momento ele não foi considerado como uma opção de vector store na arquitetura proposta. Embora versões mais recentes do Solr tenham introduzido suporte à consultas vetoriais, ele ainda não oferece o mesmo nível de maturidade de outras soluções de nicho. Por esse motivo, optou-se por manter a arquitetura aberta para a integração com tecnologias mais maduras nesse domínio, sem impedir que, no futuro, um adapter específico para Solr seja desenvolvido caso a evolução da ferramenta torne essa integração mais vantajosa.

Inicialização Automática da Infraestrutura Vetorial

Durante a inicialização da aplicação, cada adapter executa uma rotina responsável por garantir que as estruturas necessárias do vector store estejam presentes.

Essa rotina é implementada de forma idempotente, ou seja, antes de tentar criar qualquer recurso, o sistema verifica se ele já existe.

Essa abordagem evita erros durante reinicializações da aplicação e permite que a infraestrutura necessária seja criada automaticamente em novos ambientes.

Como essa lógica está encapsulada dentro de cada adapter, as diferenças entre as tecnologias de indexação vetorial ficam isoladas da lógica principal da aplicação.

Nossa Contribuição ao SEI-IA

A proposta de evolução de arquitetura apresentada aqui não tem como objetivo competir ou substituir a iniciativa oficial do SEI-IA conduzida pela ANATEL.

O objetivo é ampliar as opções de tecnologias de vector store, permitindo que os gestores públicos implementem o SEI-IA de forma mais flexível e sem fricção com seus ambientes tecnológicos atuais.

Nesse modelo:

A ANATEL continua responsável por:

• definir as interfaces da camada de vector store

• garantir estabilidade dessas interfaces

• manter o roadmap funcional do SEI-IA

Já a comunidade pode colaborar com implementações específicas para diferentes tecnologias de vector store.

Conclusão

A evolução do SEI-IA para operar com diferentes vector stores demonstra como pequenas mudanças arquiteturais podem ampliar significativamente as opções de implantação da solução.

Ao introduzir uma camada de abstração baseada em interfaces e no padrão Adapter, foi possível preservar a lógica existente da aplicação e, ao mesmo tempo, permitir a integração com diferentes tecnologias de vector store.

Essa abordagem segue um princípio fundamental de arquiteturas corporativas: separar a lógica de negócio das decisões de infraestrutura.

Com isso, o SEI-IA se torna mais adaptável às diferentes realidades tecnológicas da administração pública.

E, mais importante:

O poder da escolha passa a ser seu!