-
-
Save amankharwal/e00a745472705f91e1724515a2075680 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import numpy as np | |
from tensorflow import keras | |
from sklearn.preprocessing import LabelEncoder | |
import colorama | |
colorama.init() | |
from colorama import Fore, Style, Back | |
import random | |
import pickle | |
with open("intents.json") as file: | |
data = json.load(file) | |
def chat(): | |
# load trained model | |
model = keras.models.load_model('chat_model') | |
# load tokenizer object | |
with open('tokenizer.pickle', 'rb') as handle: | |
tokenizer = pickle.load(handle) | |
# load label encoder object | |
with open('label_encoder.pickle', 'rb') as enc: | |
lbl_encoder = pickle.load(enc) | |
# parameters | |
max_len = 20 | |
while True: | |
print(Fore.LIGHTBLUE_EX + "User: " + Style.RESET_ALL, end="") | |
inp = input() | |
if inp.lower() == "quit": | |
break | |
result = model.predict(keras.preprocessing.sequence.pad_sequences(tokenizer.texts_to_sequences([inp]), | |
truncating='post', maxlen=max_len)) | |
tag = lbl_encoder.inverse_transform([np.argmax(result)]) | |
for i in data['intents']: | |
if i['tag'] == tag: | |
print(Fore.GREEN + "ChatBot:" + Style.RESET_ALL , np.random.choice(i['responses'])) | |
# print(Fore.GREEN + "ChatBot:" + Style.RESET_ALL,random.choice(responses)) | |
print(Fore.YELLOW + "Start messaging with the bot (type quit to stop)!" + Style.RESET_ALL) | |
chat() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment