Skip to content

dore4n/chatbot_waproject

Repository files navigation


Documentação do Projeto Chatbot Waproject

Resumo

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.


Índice

  1. Pré-requisitos
  2. Configuração do Ambiente
  3. Como Executar
  4. Estrutura do Projeto
  5. Principais Dependências
  6. Uso
  7. Debugging e Logs
  8. Contribuições
  9. Licença

Pré-requisitos

Certifique-se de ter as seguintes ferramentas instaladas antes de configurar o projeto:

  • Python 3.10+
  • Docker e Docker Compose
  • Git

Configuração do Ambiente

  1. Clone o repositório:

    git clone <https://github.com/dore4n/chatbot_waproject.git>
    cd chatbot_waproject
  2. Configure o ambiente virtual:

    python -m venv venv
    source venv/bin/activate  # No Windows: venv\Scripts\activate
  3. Instale as dependências:

    pip install -r requirements.txt
  4. Configure as variáveis de ambiente: Crie um arquivo .env na raiz do projeto com as seguintes variáveis:

    GROQ_API_KEY=<sua_api_key>
    HUGGING_FACE_API_KEY=<sua_api_key>
    

Como Executar

Usando o Docker

  1. Construa e inicie os contêineres:

    docker-compose up --build
  2. Acesse o Streamlit no navegador em:

    http://localhost:8501
    

Sem Docker

  1. Execute o Streamlit diretamente:

    streamlit run app.py
  2. O chatbot estará disponível na interface do Streamlit.


Estrutura do Projeto

Raiz do Projeto

  • 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.

Diretório agent_chatbot/

  • agent.py: Implementação principal do agente e integração com LangGraph.
  • graph.py: Configuração e manipulação do grafo do LangGraph.

Principais Dependências

  • 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.


Uso

Interação com o Agente

  1. Acesse o Streamlit:
    http://localhost:8501
    
  2. 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.

Adicionar Novos Dados ao Chroma (Caso Necessário)

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.

  1. 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
  1. 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.py

O chatbot agora estará usando o banco de dados atualizado, pronto para interagir com os novos dados.


Debugging e Logs

Logs

Os logs são gerados automaticamente e exibidos no terminal. Para maior detalhamento, ative o modo DEBUG:

export DEBUG=true
streamlit run app.py

Problemas Comuns

  • Erro no Docker Compose:
    • Verifique o arquivo requirements.txt.
    • Confirme se as variáveis no .env estão configuradas corretamente.
  • Respostas vazias do chatbot:
    • Certifique-se de que o ChromaDB está ativo e funcional.

Contribuições

  1. Faça um fork do projeto.
  2. Crie uma branch para suas alterações:
    git checkout -b minha-nova-feature
  3. Envie suas alterações e crie um Pull Request.

Licença

Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.


About

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).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors