From 074f6cdbfb8955116e945599c63a3b9d1a820450 Mon Sep 17 00:00:00 2001 From: SadhulaSaiKumar Date: Wed, 30 Aug 2023 04:41:00 +0000 Subject: [PATCH] Update 'chatbot/app.py' --- chatbot/app.py | 171 +++++++++++++++---------------------------------- 1 file changed, 51 insertions(+), 120 deletions(-) diff --git a/chatbot/app.py b/chatbot/app.py index ec71523..5a3acd0 100644 --- a/chatbot/app.py +++ b/chatbot/app.py @@ -1,121 +1,52 @@ -import requests -from flask import Flask, request, jsonify,render_template -from flask_cors import CORS - -app = Flask(__name__) - - - -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' - - - -# Define the Rasa server URL -rasa_server_url = "http://localhost:5005/webhooks/rest/webhook" - -@app.route("/") -def home(): - return render_template("index.html") - - -@app.route('/webhook', methods=['POST','GET']) -def webhook(): - message = request.json['message'] - # message =request.args.get('msg') - - # Send the message to the Rasa server - rasa_response = requests.post(rasa_server_url, json={"message": message}).json() - - # for d in rasa_response: - # a=d["text"] - - # Return the Rasa response as a JSON object - print(rasa_response) - if len(rasa_response)==0: - return jsonify([ - { - "recipient_id": "default", - "text": "I'm sorry, I didn't understand that. Can you please rephrase?" - }]) - else: - return jsonify(rasa_response) - - - -@app.route("/get") -def get_bot_response(): - userText = request.args.get('msg') - return chatbot_response(userText) - - -if __name__ == '__main__': +import requests +from flask import Flask, request, jsonify,render_template +from flask_cors import CORS +import time +import pandas as pd +app = Flask(__name__) + +CORS(app) + +app.static_folder = 'static' + +# Define the Rasa server URL +rasa_server_url = "http://localhost:5005/webhooks/rest/webhook" + +@app.route("/") +def home(): + return render_template("index.html") + + +@app.route('/webhook', methods=['POST','GET']) +def webhook(): + user_ip = request.remote_addr + print("user ip is :",user_ip) + message = request.json['message'] + + + #recipient_id = request.json['recipient_id'] + + # Send the message to the Rasa server + rasa_response = requests.post(rasa_server_url, json={"message": message,"sender":user_ip}).json() + + # Return the Rasa response as a JSON object + print(rasa_response) + if len(rasa_response)==0: + return jsonify([ + { + "recipient_id": "default", + "text": "I'm sorry, I didn't understand that. Can you please rephrase?" + }]) + + else: + return jsonify(rasa_response) + + +@app.route("/get") +def get_bot_response(): + userText = request.args.get('msg') + return chatbot_response(userText) + + +if __name__ == '__main__': app.run(host='0.0.0.0',port=5020) \ No newline at end of file