Este é um projeto de um chat bot implementado em Python, utilizando a biblioteca OpenAI para gerar respostas contextualizadas. O chat bot possui respostas automáticas para perguntas e palavras-chave específicas e, quando necessário, recorre ao modelo de linguagem da OpenAI para fornecer respostas mais elaboradas.
Funcionalidades:
- Respostas automáticas para perguntas e palavras-chave comuns.
- Utilização da API do OpenAI para respostas mais elaboradas e contextualizadas.
- Interface de linha de comando para interação fácil com o chat bot.
-
Certifique-se de ter o Docker instalado em sua máquina.
-
No terminal, navegue até o diretório raiz do projeto.
-
Renomeie o arquivo
.env.example
para.env
. -
Abra o arquivo
.env
e adicione sua chave de API da OpenAI na variávelOPENAI_API_KEY
. -
Execute o seguinte comando para construir a imagem Docker e iniciar a aplicação:
docker compose run app
-
A aplicação será iniciada e você verá as mensagens de boas-vindas no terminal.
-
Digite as mensagens de entrada e a aplicação responderá de acordo.
-
Para encerrar a aplicação, pressione
Ctrl + C
no terminal ou digite sair.
-
Certifique-se de ter o Docker instalado em sua máquina.
-
No terminal, navegue até o diretório raiz do projeto.
-
Execute o seguinte comando para executar os testes:
docker compose run tests
-
Os testes serão executados e você verá a saída dos resultados no terminal.
Lembre-se de ter o Docker e o Docker Compose corretamente instalados em sua máquina para poder executar os comandos.
Nota: Antes de executar o projeto, é necessário adicionar sua chave de API da OpenAI no arquivo .env
na variável OPENAI_API_KEY
. Certifique-se de fornecer uma chave válida para garantir o funcionamento correto da aplicação. Se a versão do seu docker compose for a mais antiga, utilize o comando docker-compose ao invés de docker compose.
A arquitetura do chat bot consiste em duas principais classes: ChatGPT
e ChatBot
. A classe ChatGPT
interage com o modelo OpenAI ChatGPT para gerar respostas com base no contexto da conversa. A classe ChatBot
processa as mensagens dos usuários, utiliza correspondência de padrões para respostas automáticas e integra as respostas geradas pelo ChatGPT
para fornecer respostas mais elaboradas e contextuais.
- Interage com o modelo OpenAI ChatGPT através da API para gerar respostas.
- Utiliza o contexto da conversa para manter o contexto entre as interações.
- Implementa o método
get_response()
para enviar as mensagens do usuário para o modelo ChatGPT e obter a resposta gerada.
- Processa as mensagens dos usuários e verifica se há correspondência com padrões predefinidos para respostas automáticas.
- Utiliza a instância
ChatGPT
para gerar respostas mais elaboradas usando o modelo ChatGPT. - Implementa o método
process_message()
para lidar com as mensagens do usuário e determinar a resposta apropriada. - Controla a interação com o usuário por meio do método
run_chat_bot()
.
- Abordagem baseada em classes: A utilização de classes fornece uma base de código estruturada e modular, facilitando a manutenção e a escalabilidade.
- Separação de responsabilidades: A separação de responsabilidades entre as classes
ChatGPT
eChatBot
garante clareza e modularidade. - Integração com o ChatGPT: A integração com o modelo ChatGPT possibilita respostas mais sofisticadas e contextuais, melhorando a experiência do usuário.
- Correspondência de padrões: A utilização da correspondência de padrões com a classe
Chat
do NLTK permite respostas automáticas a perguntas específicas ou palavras-chave, aumentando a eficiência. - Controle do contexto da conversa: O controle do contexto da conversa na classe
ChatGPT
garante respostas relevantes e coerentes, atualizando e mantendo o contexto a cada mensagem do usuário.
Essas decisões de design contribuem para a efetividade do chat bot, fornecendo respostas automáticas, respostas elaboradas e contextuais com o modelo ChatGPT e mantendo o contexto da conversa para interações coerentes. O design modular facilita a manutenção, a escalabilidade e a adição de novos recursos no futuro.