Upload files to 'chatbot'

This commit is contained in:
2023-05-01 04:50:18 +00:00
parent e4e615d4a6
commit 05f3ac92da
5 changed files with 393 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
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__':
app.run(host='0.0.0.0',port=5020)
+38
View File
@@ -0,0 +1,38 @@
recipe: default.v1
assistant_id: 20230411-174114-maximum-louver
language: en
pipeline: null
# # No configuration for the NLU pipeline was provided. The following default pipeline was used to train your model.
# # If you'd like to customize it, uncomment and adjust the pipeline.
# # See https://rasa.com/docs/rasa/tuning-your-model for more information.
# - name: WhitespaceTokenizer
# - name: RegexFeaturizer
# - name: LexicalSyntacticFeaturizer
# - name: CountVectorsFeaturizer
# - name: CountVectorsFeaturizer
# analyzer: char_wb
# min_ngram: 1
# max_ngram: 4
# - name: DIETClassifier
# epochs: 100
# constrain_similarities: true
# - name: EntitySynonymMapper
# - name: ResponseSelector
# epochs: 100
# constrain_similarities: true
# - name: FallbackClassifier
# threshold: 0.3
# ambiguity_threshold: 0.1
policies: null
# # No configuration for policies was provided. The following default policies were used to train your model.
# # If you'd like to customize them, uncomment and adjust the policies.
# # See https://rasa.com/docs/rasa/policies for more information.
# - name: MemoizationPolicy
# - name: RulePolicy
# - name: UnexpecTEDIntentPolicy
# max_history: 5
# epochs: 100
# - name: TEDPolicy
# max_history: 5
# epochs: 100
# constrain_similarities: true
+38
View File
@@ -0,0 +1,38 @@
# This file contains the credentials for the voice & chat platforms
# which your bot is using.
# https://rasa.com/docs/rasa/messaging-and-voice-channels
#rest:
# # you don't need to provide anything here - this channel doesn't
# # require any credentials
# rest:
# # You can customize the webhook URL to include the user's ID as a parameter
# webhook_url: "http://localhost:5005/webhooks/rest/webhook?recipient_id={sender_id}"
#facebook:
# verify: "<verify>"
# secret: "<your secret>"
# page-access-token: "<your page access token>"
#slack:
# slack_token: "<your slack token>"
# slack_channel: "<the slack channel>"
# slack_signing_secret: "<your slack signing secret>"
#socketio:
# user_message_evt: <event name for user message>
# bot_message_evt: <event name for bot messages>
# session_persistence: <true/false>
#mattermost:
# url: "https://<mattermost instance>/api/v4"
# token: "<bot token>"
# webhook_url: "<callback URL>"
# This entry is needed if you are using Rasa Enterprise. The entry represents credentials
# for the Rasa Enterprise "channel", i.e. Talk to your bot and Share with guest testers.
+150
View File
@@ -0,0 +1,150 @@
intents:
- greet
- goodbye
- affirm
- deny
- mood_great
- mood_unhappy
- bot_challenge
- question1
- question3
- question4
- question5
- question6
- docs
- video
- connect_support
- noconnect_support
entities:
- content_type
slots:
content_type:
type: text
mappings:
- type: from_entity
entity: content_type
responses:
utter_cheer_up:
- image: https://i.imgur.com/nGF1K8f.jpg
text: 'Here is something to cheer you up:'
utter_did_that_help:
- text: Did that help you?
utter_goodbye:
- text: Bye
utter_greet:
- text: Hey! How are you?
utter_happy:
- text: Great, carry on!
utter_iamabot:
- text: I am a bot, powered by Rasa.
utter_question1_1:
- text: We have explained the process of changing the old to the new manager for
customers in DMS, Follow the below procedures. 1) Open DMS--->Go to the change
manager module--->Click on the create option--->Fill in the details--->Save--->Confirm.
2) customer module--then select customer--edit the sale manager's name to
the required employee and save to reflect in his login
utter_question1_2:
- text: To change the manager for customers in DMS, first, open the DMS system,
then navigate to the "change manager" module, click on the "create" option,
fill in the necessary details, save the changes, and confirm the update. Next,
go to the "customer" module, select the relevant customer, edit the sales
manager's name to the desired employee, and save the changes to reflect the
update in their login
utter_question1_3:
- text: The process of changing the manager for customers in DMS involves several
steps. First, access the DMS system and open the "change manager" module.
From there, click on the "create" option, provide the required details, and
save the changes. Once the update is confirmed, navigate to the "customer"
module, select the appropriate customer, modify the sales manager's name to
the preferred employee, and save the changes to ensure that it reflects in
their login.
utter_question3_1:
- text: Customers module----> enter the customer name----> Open details----> click
on sales manager---->edit---->save.
utter_question3_2:
- text: If you want to change the sales manager for a particular customer in DMS,
go to the Customers module and enter the name of the customer. Then, open
the customer's details, find the "Sales Manager" section, click on it, choose
the "Edit" option to modify the sales manager's name, enter the new name,
and save the changes.
utter_question3_3:
- text: nan
utter_question4_1:
- text: Please find the below process to change the Customer Segment tag Customer
module--->Select Particular Customer----->click on details------>check on
+ to change the LOB tags.
utter_question4_2:
- text: If you need to change the Customer Segment tag for a particular customer
in DMS, start by accessing the Customer module, selecting the relevant customer,
and clicking on their details. Once you are in the customer's details, locate
the "+" symbol to modify the LOB tags and update the Customer Segment tag.
utter_question4_3:
- text: To modify the Customer Segment tag for a specific customer in DMS, go
to the Customer module, find the customer whose tag you want to change, and
open their details. Then, click on the "+" symbol to add or remove LOB tags,
and make the necessary changes to the Customer Segment tag.
utter_question5_1:
- text: We have explained the process of checking the EB-invoice report through
remote session & follow the below procedure. Open DMS-----> click on reports----->open
EB- invoice report---->check.
utter_question5_2:
- text: To verify the EB-invoice report through a remote session, follow these
steps first, access the DMS platform, then navigate to the "reports" section
and click on the "EB-invoice report." Finally, carefully review the report
to ensure all necessary information is present and accurate.
utter_question5_3:
- text: The process of remotely checking the EB-invoice report can be accomplished
in a few simple steps. Begin by logging into the DMS platform and selecting
the "reports" option. From there, click on the "EB-invoice report" and review
the contents to confirm its accuracy.
utter_question6_1:
- text: Please find the below process to add branchto employee Employee module------>Search
the employee name ---->Open employee----->click on official Widget------>click
on branches +check on------->click on plus symbol----->select the branch from
the dropdown ------->save.
utter_question6_2:
- text: To assign a branch to an employee, follow these steps first, access the
Employee module and search for the employee's name. Next, open the employee's
profile and click on the Official Widget. From there, click on the "branches"
option and check the box to enable it. Then, click on the plus symbol and
select the appropriate branch from the dropdown menu. Finally, click on "save"
to confirm the changes.
utter_question6_3:
- text: Adding a branch to an employee is a simple process that involves accessing
the Employee module and searching for the employee in question. Once you've
found their profile, open it and click on the Official Widget, followed by
the "branches" option. Check the box to enable branches, then click the plus
symbol and select the appropriate branch from the dropdown list. Be sure to
save your changes before exiting the page.
utter_blogs:
- text: "great carry on"
utter_video:
- text: "do you want me to connect you to support team"
utter_connect_support:
- text: "Im conneting you to support team"
utter_noconnect_support:
- text: "great carry on"
actions:
- action_service
- action_suport_service
# - action_save_conersation
# - action_clear_conversation
session_config:
carry_over_slots_to_new_session: true
session_expiration_time: 60
version: '3.1'
+46
View File
@@ -0,0 +1,46 @@
# This file contains the different endpoints your bot can use.
# Server where the models are pulled from.
# https://rasa.com/docs/rasa/model-storage#fetching-models-from-a-server
#models:
# url: http://my-server.com/models/default_core@latest
# wait_time_between_pulls: 10 # [optional](default: 100)
# Server which runs your custom actions.
# https://rasa.com/docs/rasa/custom-actions
action_endpoint:
url: "http://localhost:5055/webhook?recipient_id={sender_id}"
# Tracker store which is used to store the conversations.
# By default the conversations are stored in memory.
# https://rasa.com/docs/rasa/tracker-stores
#tracker_store:
# type: redis
# url: <host of the redis instance, e.g. localhost>
# port: <port of your redis instance, usually 6379>
# db: <number of your database within redis, e.g. 0>
# password: <password used for authentication>
# use_ssl: <whether or not the communication is encrypted, default false>
#tracker_store:
# type: mongod
# url: <url to your mongo instance, e.g. mongodb://localhost:27017>
# db: <name of the db within your mongo instance, e.g. rasa>
# username: <username used for authentication>
# password: <password used for authentication>
# Event broker which all conversation events should be streamed to.
# https://rasa.com/docs/rasa/event-brokers
#event_broker:
# url: localhost
# username: username
# password: password
# queue: queue