-
Notifications
You must be signed in to change notification settings - Fork 0
/
chatbot.py
58 lines (43 loc) · 2.01 KB
/
chatbot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from flask import Flask, request, jsonify
import random
from nltk.tokenize import word_tokenize
import nltk
# nltk.download('punkt')
#Pares de Perguntas e respostas
perguntas_respostas = {
1: "Como posso ajudar você neste belo dia?",
2: "Estou bem, obrigada por perguntar. Espero que você também esteja bem.",
3: "Meu nome é ChatBot do sistema MAAM.",
4: "Fui criado para introduzir o estudo de Inteligência Artificial. Posso responder a perguntas simples para iniciar um diálogo com o usuário.",
5: "Tchau! Muito obrigada por testar esse serviço! Tenha um bom dia!"
}
cumprimento = ["olá", "oi", "ai", "ola", "hey", "ei"]
gentileza = ["tudo bem", "como vai", "tudo certo", "bem"]
nome = ["qual é o seu nome", "como você se chama", "seu nome", "nome"]
funcao = ["função", "o que você pode fazer", "quais são suas habilidades", "funções", "o que você faz", "funcao", "qual é a sua função"]
despedida = ["adeus", "Bye", "até logo", "tchau"]
app = Flask(__name__)
@app.route('/chatbot', methods=['POST'])
def chatbot():
data = request.json
user_question = data['question']
resposta = responder_pergunta(user_question)
print(resposta)
return jsonify({'response': resposta})
def responder_pergunta(pergunta):
tokens = word_tokenize(pergunta.lower())
if len(tokens) > 0:
for token in tokens:
if token in cumprimento:
return perguntas_respostas.get(1)
elif token in gentileza:
return perguntas_respostas.get(2)
elif token in nome:
return perguntas_respostas.get(3)
elif token in funcao:
return perguntas_respostas.get(4)
elif token in despedida:
return perguntas_respostas.get(5)
return "Desculpe, não entendi a pergunta."
if __name__ == "__main__":
app.run(debug=True, host='localhost', port=5000)