Evoluindo Meu Chatbot: Um Sprint de Uma Semana para Interações Mais Inteligentes
Reconstruí meu chatbot em uma semana, evoluindo de resumos básicos para busca em texto completo com chunking, segurança e metadados — veja o que aprendi sobre equilibrar o poder da IA com os custos.
Atualização (2026): Esse chatbot evoluiu e se tornou a Sydney! Depois de muitas iterações, a Sydney agora vive em /ask/ e foca no conteúdo do blog e nos produtos.
Quando lancei a versão 0.1 do meu chatbot DIY na semana passada, meu objetivo era criar um agente conversacional que pudesse sintetizar informações dos meus posts para responder perguntas. Embora a v0.1 tenha representado um grande primeiro passo como iniciante em programação, ela tinha limitações significativas. A base de conhecimento incluía apenas resumos dos meus posts, e o chatbot tinha dificuldade em recuperar detalhes específicos como números ou datas com precisão. Minha motivação foi melhorar incrementalmente as capacidades do chatbot por meio de aprendizado prático. Este post traz uma atualização após uma semana de otimizações. Meu foco foi expandir a base de conhecimento para incluir o conteúdo completo dos artigos, fortalecer as medidas de segurança e otimizar o modelo de IA em termos de custo-benefício. Embora o chatbot ainda tenha um longo caminho pela frente, essas melhorias iniciais representam um progresso promissor.
Aqui está o que foi feito desde a última versão:
1. Funcionalidade
O chatbot inclui todos os posts mais recentes até o final de outubro de 2023
Publiquei seis posts em outubro, todos os quais agora estão incluídos na base de conhecimento do chatbot. Por exemplo, você pode fazer perguntas como: "Me conta os principais insights sobre o Coursera que o Chandler escreveu" e o chatbot pode fornecer uma resposta com base nos artigos que escrevi em outubro de 2023.
A base de conhecimento inclui o post completo, não apenas o resumo
Para a primeira versão, por causa da minha falta de conhecimento/experiência trabalhando com a limitação de comprimento da janela de contexto da API da OpenAI, tive que gerar o resumo de cada post e então incorporá-los usando o endpoint de API de embedding da OpenAI. Eu não sabia como dividir o artigo completo em seções menores e incorporar cada uma mantendo o contexto intacto (ou seja, metadados, URL, título etc...).
A primeira iteração do chunking foi feita nesta semana. A base de conhecimento do chatbot agora tem o post completo, não apenas o resumo. Ainda há espaço para melhoria enquanto continuo refinando o limite e a abordagem de chunking ideais para artigos longos. Por enquanto, divido artigos longos em seções menores com no máximo 800 tokens e uso "parágrafo" como ponto de quebra natural.
Dessa forma, na próxima versão ele poderá responder perguntas sobre números específicos escritos com mais facilidade.
A data de publicação, o título e a URL do post são incluídos
Depois que o usuário faz uma pergunta, durante o processo de recuperação, o título do post, a data de publicação e a URL também são fornecidos ao chatbot. Então o chatbot agora pode fornecer a URL específica ou as datas de publicação de volta aos usuários, se solicitado.
Isso vai ajudar na validação caso os usuários queiram verificar ou ler o post completo.
2. Segurança
Medidas de segurança básicas foram implementadas, como:
- Validar entradas antes de enviá-las para a API
- Função básica de limitador de taxa — ou seja, quantas perguntas você pode fazer por minuto ao chatbot
- Consultas e respostas do chatbot são validadas com a API de moderação da OpenAI
3. GPT-4 vs GPT-3.5
Vou continuar usando o modelo GPT-3.5 para o chatbot por causa do custo. As respostas do GPT-4 são muito melhores do que as do GPT-3.5. No entanto, como ainda não encontrei a melhor maneira de trabalhar com o comprimento da janela de contexto mantendo o histórico da conversa, para perguntas complexas que exigem que o chatbot consulte vários posts, o custo por resposta fica alto, como $0,15 ou $0,20 por resposta do GPT-4. Ainda não consigo arcar com isso para este projeto pessoal. T.T
É isso por enquanto. Se quiser experimentar o chatbot, aqui está novamente. Este é o link para o meu post anterior sobre o chatbot. Tenha um ótimo fim de semana.
Se você construiu seu próprio chatbot ou trabalhou com embeddings e chunking, fico curioso — qual tamanho de chunk e abordagem funcionou melhor para você? Ainda estou experimentando :)
Próximo na jornada do chatbot: Alguns meses depois, reconstruí o chatbot inteiro do zero usando LangChain e FAISS — How I Emerged From Coding Quicksand With an AI Agent.
Abraços,
Chandler
P.S.: O novo curso sobre Generative AI for Everyone, ministrado por Andrew Ng, não decepciona. É um curso gratuito que vai te dar um conhecimento geral sobre IA Generativa, como softwares ou aplicações web típicos de Gen AI estão sendo construídos etc... É bem curto também, então você consegue assistir todos os vídeos em um fim de semana.





