O projeto Chatbot Waproject é um chatbot interativo e educacional, utilizando tecnologias como LangChain, LangGraph, ChromaDB, e Streamlit. O agente é especializado em responder perguntas sobre o livro "O Pequeno Príncipe", utilizando um mecanismo de Recuperação de Dados por Busca (RAG). Ele pode realizar buscas no banco de dados ChromaDB, analisar o contexto e fornecer respostas relevantes com base nas mensagens anteriores.
- Pré-requisitos
- Configuração do Ambiente
- Como Executar
- Estrutura do Projeto
- Principais Dependências
- Uso
- Debugging e Logs
- Contribuições
- Licença
Certifique-se de ter as seguintes ferramentas instaladas antes de configurar o projeto:
- Python 3.10+
- Docker e Docker Compose
- Git
-
Clone o repositório:
git clone <https://github.com/dore4n/chatbot_waproject.git> cd chatbot_waproject
-
Configure o ambiente virtual:
python -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Configure as variáveis de ambiente: Crie um arquivo
.envna raiz do projeto com as seguintes variáveis:GROQ_API_KEY=<sua_api_key> HUGGING_FACE_API_KEY=<sua_api_key>
-
Construa e inicie os contêineres:
docker-compose up --build
-
Acesse o Streamlit no navegador em:
http://localhost:8501
-
Execute o Streamlit diretamente:
streamlit run app.py
-
O chatbot estará disponível na interface do Streamlit.
langgraph.json: Configurações e definições do LangGraph para roteamento do agente.dockerfile: Configuração para criar a imagem Docker.docker-compose.yml: Orquestração dos contêineres Docker.app.py: Arquivo principal do Streamlit para interface do usuário..env.example: Exemplo de como você vai criar seu .env com variáveis de ambiente sensíveis.requirements.txt: Lista de dependências.
agent.py: Implementação principal do agente e integração com LangGraph.graph.py: Configuração e manipulação do grafo do LangGraph.
- LangChain: Framework para construção de agentes LLM.
- LangGraph: Integração com gráficos para roteamento dinâmico.
- ChromaDB: Banco de dados vetorial para armazenamento e recuperação.
- Streamlit: Interface gráfica interativa.
- Hugging Face: Para embeddings vetoriais.
Veja a lista completa de dependências em requirements.txt.
- Acesse o Streamlit:
http://localhost:8501 - Interaja com o chatbot enviando mensagens sobre "O Pequeno Príncipe". O agente responderá com base no contexto do livro e nas interações anteriores.
Se você precisar adicionar novos chunks ao banco de dados Chroma (por exemplo, para atualizar o conteúdo com mais informações ou incluir novos tópicos), será necessário rodar o script chroma_config.py para gerar novamente o banco de dados com os novos dados.
- Rodar o chroma_config.py para adicionar novos chunks:
Caso deseje atualizar o Chroma com novos dados, execute o script chroma_config.py, que irá processar os novos chunks e atualizar o banco de dados:
python agent_chatbot/chroma_config.py- Rodar o Streamlit novamente:
Após rodar o chroma_config.py e atualizar o banco de dados Chroma, execute novamente o Streamlit:
streamlit run app.pyO chatbot agora estará usando o banco de dados atualizado, pronto para interagir com os novos dados.
Os logs são gerados automaticamente e exibidos no terminal. Para maior detalhamento, ative o modo DEBUG:
export DEBUG=true
streamlit run app.py- Erro no Docker Compose:
- Verifique o arquivo
requirements.txt. - Confirme se as variáveis no
.envestão configuradas corretamente.
- Verifique o arquivo
- Respostas vazias do chatbot:
- Certifique-se de que o ChromaDB está ativo e funcional.
- Faça um fork do projeto.
- Crie uma branch para suas alterações:
git checkout -b minha-nova-feature
- Envie suas alterações e crie um Pull Request.
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

