Update 'chatbot/app.py'
This commit is contained in:
+9
-78
@@ -1,84 +1,14 @@
|
|||||||
import requests
|
import requests
|
||||||
from flask import Flask, request, jsonify,render_template
|
from flask import Flask, request, jsonify,render_template
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
|
import time
|
||||||
|
import pandas as pd
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CORS(app)
|
CORS(app)
|
||||||
|
|
||||||
# import nltk
|
|
||||||
# nltk.download('popular')
|
|
||||||
# from nltk.stem import WordNetLemmatizer
|
|
||||||
# lemmatizer = WordNetLemmatizer()
|
|
||||||
# import pickle
|
|
||||||
# import numpy as np
|
|
||||||
|
|
||||||
# from keras.models import load_model
|
|
||||||
# model = load_model('model.h5')
|
|
||||||
# import json
|
|
||||||
# import random
|
|
||||||
# intents = json.loads(open('data.json').read())
|
|
||||||
# words = pickle.load(open('texts.pkl','rb'))
|
|
||||||
# classes = pickle.load(open('labels.pkl','rb'))
|
|
||||||
|
|
||||||
# def clean_up_sentence(sentence):
|
|
||||||
# # tokenize the pattern - split words into array
|
|
||||||
# sentence_words = nltk.word_tokenize(sentence)
|
|
||||||
# # stem each word - create short form for word
|
|
||||||
# sentence_words = [lemmatizer.lemmatize(word.lower()) for word in sentence_words]
|
|
||||||
# return sentence_words
|
|
||||||
|
|
||||||
# # return bag of words array: 0 or 1 for each word in the bag that exists in the sentence
|
|
||||||
|
|
||||||
# def bow(sentence, words, show_details=True):
|
|
||||||
# # tokenize the pattern
|
|
||||||
# sentence_words = clean_up_sentence(sentence)
|
|
||||||
# # bag of words - matrix of N words, vocabulary matrix
|
|
||||||
# bag = [0]*len(words)
|
|
||||||
# for s in sentence_words:
|
|
||||||
# for i,w in enumerate(words):
|
|
||||||
# if w == s:
|
|
||||||
# # assign 1 if current word is in the vocabulary position
|
|
||||||
# bag[i] = 1
|
|
||||||
# if show_details:
|
|
||||||
# print ("found in bag: %s" % w)
|
|
||||||
# return(np.array(bag))
|
|
||||||
|
|
||||||
# def predict_class(sentence, model):
|
|
||||||
# # filter out predictions below a threshold
|
|
||||||
# p = bow(sentence, words,show_details=False)
|
|
||||||
# res = model.predict(np.array([p]))[0]
|
|
||||||
# ERROR_THRESHOLD = 0.25
|
|
||||||
# results = [[i,r] for i,r in enumerate(res) if r>ERROR_THRESHOLD]
|
|
||||||
# # sort by strength of probability
|
|
||||||
# results.sort(key=lambda x: x[1], reverse=True)
|
|
||||||
# return_list = []
|
|
||||||
# for r in results:
|
|
||||||
# return_list.append({"intent": classes[r[0]], "probability": str(r[1])})
|
|
||||||
# return return_list
|
|
||||||
|
|
||||||
# def getResponse(ints, intents_json):
|
|
||||||
# tag = ints[0]['intent']
|
|
||||||
# list_of_intents = intents_json['intents']
|
|
||||||
# for i in list_of_intents:
|
|
||||||
# if(i['tag']== tag):
|
|
||||||
# result = random.choice(i['responses'])
|
|
||||||
# break
|
|
||||||
# return result
|
|
||||||
|
|
||||||
# def chatbot_response(msg):
|
|
||||||
# ints = predict_class(msg, model)
|
|
||||||
# res = getResponse(ints, intents)
|
|
||||||
# return res
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.static_folder = 'static'
|
app.static_folder = 'static'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Define the Rasa server URL
|
# Define the Rasa server URL
|
||||||
rasa_server_url = "http://localhost:5005/webhooks/rest/webhook"
|
rasa_server_url = "http://localhost:5005/webhooks/rest/webhook"
|
||||||
|
|
||||||
@@ -89,14 +19,15 @@ def home():
|
|||||||
|
|
||||||
@app.route('/webhook', methods=['POST','GET'])
|
@app.route('/webhook', methods=['POST','GET'])
|
||||||
def webhook():
|
def webhook():
|
||||||
|
user_ip = request.remote_addr
|
||||||
|
print("user ip is :",user_ip)
|
||||||
message = request.json['message']
|
message = request.json['message']
|
||||||
# message =request.args.get('msg')
|
|
||||||
|
|
||||||
|
#recipient_id = request.json['recipient_id']
|
||||||
|
|
||||||
# Send the message to the Rasa server
|
# Send the message to the Rasa server
|
||||||
rasa_response = requests.post(rasa_server_url, json={"message": message}).json()
|
rasa_response = requests.post(rasa_server_url, json={"message": message,"sender":user_ip}).json()
|
||||||
|
|
||||||
# for d in rasa_response:
|
|
||||||
# a=d["text"]
|
|
||||||
|
|
||||||
# Return the Rasa response as a JSON object
|
# Return the Rasa response as a JSON object
|
||||||
print(rasa_response)
|
print(rasa_response)
|
||||||
@@ -106,11 +37,11 @@ def webhook():
|
|||||||
"recipient_id": "default",
|
"recipient_id": "default",
|
||||||
"text": "I'm sorry, I didn't understand that. Can you please rephrase?"
|
"text": "I'm sorry, I didn't understand that. Can you please rephrase?"
|
||||||
}])
|
}])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return jsonify(rasa_response)
|
return jsonify(rasa_response)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/get")
|
@app.route("/get")
|
||||||
def get_bot_response():
|
def get_bot_response():
|
||||||
userText = request.args.get('msg')
|
userText = request.args.get('msg')
|
||||||
|
|||||||
Reference in New Issue
Block a user