Fatequino

Interação

Equipe responsável por pesquisar e desenvolver a solução de interação do Fatequino com alunos, professores, funcionários e visitantes.

Requisitos:

  • Sistema de comunicação audível.
  • Reconhecimento prévio de alunos, professores e funcionários.
  • Conversação.
  • Esclarecimento de dúvidas. Exemplos: localização de salas de aula, disciplinas por sala, sala de cada professor, etc.
  • Armazenamento de conversas para fins de levantamentos estatísticos.

Integrantes

  • Andre Santos
  • Arthur Silveira
  • Diogo Rocha
  • Tulio Vieira
  • Yuri Barbosa

Introdução

O projeto proporcionou minha primeira experiência com a linguagem Python, que se mostrou muito pratica, por contar com diversas bibliotecas e opções para desenvolvimento, no projeto tive também a oportunidade de usar a biblioteca Chatterbot, que possibilita a criação de um chat que responde usando IA.


Construção do módulo de interação

Nesta parte iremos detalhar os passos que a equipe de interação utilizou para construção do modulo de interação do projeto ‘FATEQUINO’, tratando dos programas usados, códigos e referências para sua concepção.

Passo 1:

O primeiro passo para o desenvolvimento do nosso chatbot é instalar as ferramentas necessárias. Para isso, vamos precisar do Python, PIP e da biblioteca Chatterbot. Também vamos utilizar o PyCharm em sua versão Community para ajudar no desenvolvimento, mas seu uso é opcional.

O download do Python pode ser feito por meio do seu site oficial e o processo é bem simples (next>next>finish).

O PIP, gerenciador de pacotes do Python, pode ser baixado também por meio de seu site oficial. Todo o processo de instalação do PIP pode ser visto neste post do blog da TreinaWeb.

Por fim, com o Python e o PIP instalados, precisamos instalar a biblioteca Chatterbot. Para isso, após criar o projeto no PyCharm, vamos até a aba “Project Interpreter”, localizado em “Preferences” dentro do PyCharm. Lá, vamos buscar pela biblioteca Chatterbot e realizar sua instalação, como podemos ver abaixo: Definir o Bot que utilizaremos para conversar com os usuários.

Passo 2:

O processo de criação do Chatbot é bem simples. Basicamente vamos criar uma lista de perguntas e respostas que serão usadas como aprendizado inicial do nosso Bot. A partir daí, utilizaremos alguns métodos para que todas as perguntas e respostas que forem informadas sejam analisadas, processadas e aprendidas conforme o tempo. Veremos abaixo todo o código detalhado:

from chatterbot.trainers import ListTraine
from chatterbot import ChatBot

O primeiro passo para a criação do nosso chatbot é importar o método ListTrainer responsável por permitir que uma lista de strings seja utilizada no processo de aprendizagem do Bot. Após isso, importamos o construtor Chatbot para que possamos criá-lo em nosso programa.

Feito isso, precisamos inicializar nosso Chatbot e determinar a lista inicial de mensagens que serão utilizadas como base para o aprendizado do Bot:

bot = ChatBot(‘Fatequino Chat bot’)
saudacoes = [‘Oi’, ‘Olá’, ‘Tudo bem?’,’TudoOtimo’, ‘Como está seu dia ?’
, ‘Não tenho a mesma noção de tempo que você humano, mas vai bem’, ]
fatecPergunta= [‘Aonde é a sala dos professores?’, ‘primeiro andar ao lado da sala 110’
, ‘Aonde é a secretaria?’, ‘No primeiro predio da ETEC’
, ‘Qual o nome da Diretora?’, ‘Vanessa Priscila Salvador Lopes’, ‘Tem o link do SIGA ?’
, ‘https://siga.cps.sp.gov.br/aluno/home.aspx’ ]
perguntaRobotais= [‘Quem te criou?’, ‘Alunos desocupados da FATEC, turma da noite’, ‘Você gosta do que faz?’, ‘Não tenho escolha’]
bot.set_trainer(ListTrainer)
bot.train(saudacoes)
bot.train(fatecPergunta)
bot.train(perguntaRobotais)

Com isso nós registramos três perguntas. Por padrão, cada resposta se refere ao item anterior da lista. Por exemplo: a string ‘Olá’ se refere como resposta da pergunta ‘Oi’, já a string ‘Tudo ótimo’ é resposta da pergunta ‘Tudo bem?’ e assim por diante.

Em seguida definimos, através do método train(), que utilizaremos a lista conversa como ponto de partida para o aprendizado do Bot.

Finalmente, criamos um loop infinito que vai capturar a pergunta do usuário, buscar uma possível resposta e retornar ao usuário. Definimos, também, que se o grau de confiança da resposta for menor que 0.5 o Bot vai informar que ainda não sabe responder tal pergunta:

whileTrue:
pergunta = input(“Usuário: “)
resposta = bot.get_response(pergunta)
if float(resposta.confidence) > 0.5:
print(‘TW Bot: ‘, resposta)
else:
print(‘TW Bot: Ainda não sei responder esta pergunta’)

Sendo assim, o código final do nosso Chatbot pode ser visto abaixo:

from chatterbot.trainers import ListTrainer
from chatterbot import ChatBot
bot = ChatBot(‘TW Chat Bot’)
conversa = [‘Oi’, ‘Olá’, ‘Tudo bem?’, ‘Tudo ótimo’, ‘Você gosta de programar?’, ‘Sim, eu programo em Python’]
bot.set_trainer(ListTrainer)
bot.train(conversa)
whileTrue:
pergunta = input(“Usuário: “)
resposta = bot.get_response(pergunta)
if float(resposta.confidence) > 0.5:
print(‘TW Bot: ‘, resposta)
else:
print(‘TW Bot: Ainda não sei responder esta pergunta’)

Vale ressaltar que as perguntas e respostas do nosso ChatBot vão sendo armazenadas em um banco de dados SQLite criado automaticamente. Um outro ponto importante é que o processo de aprendizado é um pouco lento, então será necessário conversar alguns minutos com o ChatBot até que ele aprenda novas perguntas e suas respectivas respostas.

Após isso, podemos executar nosso ChatBot e conversar com nosso novo amigo. Para isso, clicamos com o botão direito no arquivo e selecionamos a opção “Run”:

Nosso ChatBot será inicializado e nós podemos trocar mensagens com ele. Após alguns minutos de conversa, você perceberá que o ChatBot fará perguntas que não estão cadastradas em nossa lista conversa. Estas perguntas são aprendidas com o tempo e armazenadas no banco de dados.

Nem sempre as respostas são exatas, mas este processo vai melhorando com o tempo. Basta indicarmos o caminho correto para o Bot que ele aprenderá mais rápido.

Page Reader Press Enter to Read Page Content Out Loud Press Enter to Pause or Restart Reading Page Content Out Loud Press Enter to Stop Reading Page Content Out Loud Screen Reader Support