Como adicionei um chatbot com RAG ao meu portfólio usando ferramentas gratuitas
Quando comecei a estudar IA, uma das primeiras coisas que quis fazer foi criar um projeto próprio para o portfólio. Algo que não fosse só seguir um tutorial, mas que resolvesse um problema real. Então tive a ideia de desenvolver um chatbot que respondesse perguntas com base em um documento específico, usando uma técnica chamada RAG (Retrieval-Augmented Generation, ou Geração Aumentada por Recuperação). Em vez de o modelo simplesmente "inventar" respostas, ele consulta uma fonte de dados antes de responder. Isso reduz bastante as alucinações dos LLMs.
O plano parecia simples, mas a execução, nem tanto. Minha primeira tentativa foi rodar tudo localmente no Google Colab, usando a GPU T4 gratuita que a plataforma oferece. O raciocínio era direto: baixar um modelo do Hugging Face, rodar ele no ambiente e pronto. O problema é que modelos de linguagem, mesmo os menores, são pesados. Um modelo de 8 bilhões de parâmetros já ocupa vários gigabytes de memória. A GPU T4 do Colab tem um limite, e quando esse limite é atingido, o ambiente simplesmente trava, então recorrentemente precisei reiniciar tudo do zero e torcer para aguentar mais um pouco na próxima vez.
Depois de algumas rodadas de frustração, percebi que o gargalo não era minha lógica de código, era o lugar onde o modelo estava rodando. Se eu tirasse o LLM do ambiente local e chamasse ele via API, o Colab ficaria livre para fazer o que realmente precisava fazer: processar os documentos, gerar embeddings e orquestrar o pipeline. Foi aí que encontrei a API do Groq. O Groq oferece acesso gratuito a modelos de linguagem muito mais potentes do que os que eu conseguia rodar localmente, incluindo o Llama 3 com 70 bilhões de parâmetros, contra os 8B que eu tentava carregar na memória da GPU. O plano gratuito tem limites de tokens por minuto e por dia, e esses limites variam de acordo com o modelo: quanto mais poderoso, menor a cota disponível. Por isso, é importante acompanhar o consumo direto no painel do Groq, que mostra em tempo real quantos tokens você já usou e o quanto ainda tem disponível naquele período.
Faltava a interface visual
Mas o modelo resolvido era só metade do problema. Ainda precisava de uma interface para interagir com o chatbot de forma visual, sem ficar digitando comandos no terminal o tempo todo. No meu primeiro projeto com essa abordagem, o PIBITI que desenvolvi na universidade, resolvi essa parte com uma combinação de FastAPI e ngrok. A ideia era criar uma API REST com FastAPI para expor o agente, e usar o ngrok para gerar um endereço público para essa API, o que permitia conectar o Open WebUI como interface visual. Funcionou, e funcionou bem o suficiente para validar o sistema. Mas é uma solução com bastante configuração envolvida: você mantém a FastAPI rodando, o ngrok aberto, e ainda precisa conectar tudo ao Open WebUI na mão.
Quando fiz o segundo projeto, um chatbot guia turístico sobre Penedo/AL, minha cidade natal, queria algo mais simples. Foi nesse contexto que descobri o Gradio.
O Gradio é uma biblioteca Python que permite criar interfaces visuais interativas diretamente no notebook, com poucas linhas de código, sem configurar servidores, sem ngrok, sem etapas intermediárias.
Combinando a API do Groq para chamar o LLM e o Gradio para a interface, o projeto ficou mais enxuto e muito mais fácil de apresentar. O stack completo rodava no Google Colab sem travar, porque o modelo pesado estava na nuvem do Groq, não na memória da GPU local. O Colab ficava responsável apenas por processar os documentos, gerar os embeddings com um modelo de embedding leve, armazenar os vetores no ChromaDB e orquestrar tudo com LangChain.
O que cada ferramenta faz nesse stack:
- LangChain - a biblioteca que amarra tudo. Ela conecta o documento, o banco de vetores e o LLM em um pipeline coeso.
- ChromaDB - o banco de dados vetorial. Armazena os fragmentos do documento em formato numérico (os embeddings), permitindo buscar por similaridade semântica em vez de palavras-chave exatas.
- API do Groq - cuida da parte mais pesada: a geração da resposta em linguagem natural.
- Gradio - entrega a interface para o usuário final interagir.
Se você está começando em IA e quer um projeto para o portfólio, essa combinação entre Google Colab + Groq + Gradio é um bom ponto de entrada pois não precisa de máquina potente nem de conta premium em nenhuma plataforma. O que você precisa é de uma ideia, um documento (ou alguns documentos) como base de conhecimento, e disposição para entender como as peças se encaixam. O RAG é uma arquitetura acessível, e projetos como esse provam que dá para construir algo funcional e relevante mesmo no começo da jornada em IA.




