DEV Community

César Augusto de Fázio
César Augusto de Fázio

Posted on

Projeto Prático do ONE AI for Tech: Seiya AI

Como falei em um artigo anterior, havia um desafio a ser entregue no ONE AI for Tech, que era a construção de um agente de inteligência artificial. Não queria chamar Chaves de API, que depois pudessem custar caro nem hospedar um modelo que pesasse inúmeros gigas do meu armazenamento limitado.

Com isso em mente, criei o Seiya AI: Sem chamadas de API, sem monetização cara. Completamente on-prem (a menos que você queira hospedá-lo na nuvem), é viável para qualquer computador, inclusive aqueles sem GPU dedicada (embora ele perca um pouco da qualidade).

O Seiya AI é um agente focado em consulta interativa a documentos PDF via RAG (Retrieval-Augmented Generation) 100% local. Ele utiliza LangChain, embeddings com FastEmbed, busca vetorial no FAISS, re-ranqueamento com Cross-Encoder e inferência privada via Ollama com o modelo DeepSeek-R1 (com apenas 1,5 bilhão de parâmetros), sem depender de chaves de API ou de armazenamento (pesa apenas 1 GB).

O que é o Seiya AI?

O Seiya AI foi criado como um agente especializado para orientar engenheiros de software nos padrões de qualidade back-end de acordo com os documentos oferecidos pela Alura, da empresa fictícia “Santo Pegasus Soluciones”.

Ele utiliza uma arquitetura de duas etapas (Chunking com Regex + Re-ranking) para recuperar trechos de documentos e sintetizar respostas precisas via DeepSeek-R1.

O fluxo de processamento é assim:

  1. Chunking por RegEx: O texto do PDF é “fatiado”, respeitando a estrutura de capítulos e numerações (ex: 1.1. Introdução) e preservando o contexto das seções originais.
  2. Re-ranking de Duas Etapas: O sistema busca os 15 trechos mais semelhantes no banco FAISS e aplica um modelo Cross-Encoder para selecionar apenas o trecho de maior relevância (Top-1).
  3. Tratamento de Perguntas Genéricas: Perguntas amplas de resumo (ex: "sobre o que é este documento?") ativam uma regra de sobreposição (Generic Query Override), injetando diretamente os trechos introdutórios do documento e evitando falhas da busca vetorial.

Arquitetura do Seiya AI

O projeto prioriza baixo consumo de memória RAM e execução offline em

Componente Tecnologia Função no Sistema
Embeddings FastEmbed Vetorização rápida de texto localmente
Banco Vetorial FAISS Armazenamento e busca por similaridade de vetores
Re-ranker Cross-Encoder Re-ordenamento dos trechos mais relevantes
Motor de Inferência Ollama Execução privada de LLMs locais
Modelo LLM DeepSeek-R1 (1.5B) Síntese e geração de respostas estruturadas

Desafios ao Criar o Seiya AI

Superando Alucinações com Prompt Engineering e Many-Shot

Durante os testes iniciais, o modelo de 1,5 bilhão de parâmetros apresentava alucinações frequentes quando o chunking não continha a resposta completa ou quando as instruções eram genéricas.

Então fiz o fatiamento dos capítulos (chunking). Isso garantiu que termos de busca e suas explicações permanecessem no mesmo bloco de texto, e o modelo poderia lê-los melhor.

Da mesma forma, dada a limitação natural de parâmetros do modelo DeepSeek-R1 (1.5B), foi necessário escrever o prompt com diversos exemplos práticos de entrada e saída. Essa técnica instruiu a rede neural sobre a estrutura exata exigida para a resposta.

Em um modelo tão pequeno, o Prompt Engineering e o Chunking trouxeram mais estabilidade no output do que o RAG.

Interface e Performance no Terminal (CLI)

O Seiya AI opera exclusivamente via interface de linha de comando (CLI). Testes com frameworks web como Streamlit demonstraram degradação na resposta.

Em um conjunto de teste contendo 16 perguntas sobre políticas de desenvolvimento back-end, o agente obteve 15 acertos e 1 erro.

Para minha surpresa, o modelo rodou tranquilamente sem GPU dedicada em uma máquina virtual Ubuntu no OCI.

Infraestrutura na Nuvem da OCI

Criei uma pasta com todos os arquivos terraform necessários para subir a infraestrutura no OCI.

Ela não sobe nenhum cluster GPU ou supercluster RDMA, mas você pode alterá-la para fazê-lo; caso faça isso, recomendo que também troque o modelo por um com mais parâmetros; isso melhorará a experiência!

Conclusão

É possível construir um agente de inteligência artificial funcional, privado e de baixo custo sem depender de APIs pagas ou de infraestrutura robusta. A execução offline em CPUs convencionais é viável, inclusive em máquinas sem GPU dedicada, se o modelo for leve o suficiente.

Contudo, isso exige uma boa engenharia de prompts. A experiência mostrou que, em modelos pequenos como o DeepSeek-R1 com 1.5B de parâmetros, as decisões de chunking e a adoção de prompts many-shot tiveram impacto mais significativo na qualidade das respostas do que o próprio mecanismo de recuperação vetorial.

Espero que no futuro, vejamos IAs cada mais eficientes e mais portáteis para o uso cotidiano!

Top comments (0)