import nltk nltk.download('punkt') import nltk from nltk.stem.lancaster import LancasterStemmer import numpy as np import tflearn import tensorflow import random import json import pandas as pd import pickle import gradio as gr stemmer = LancasterStemmer() with open("intents.json") as file: data = json.load(file) with open("data.pickle", "rb") as f: words, labels, training, output = pickle.load(f) net = tflearn.input_data(shape=[None, len(training[0])]) net = tflearn.fully_connected(net, 8) net = tflearn.fully_connected(net, 8) net = tflearn.fully_connected(net, len(output[0]), activation="softmax") net = tflearn.regression(net) model = tflearn.DNN(net) model.load("MentalHealthChatBotmodel.tflearn") # print('model loaded successfully') def bag_of_words(s, words): bag = [0 for _ in range(len(words))] s_words = nltk.word_tokenize(s) s_words = [stemmer.stem(word.lower()) for word in s_words] for se in s_words: for i, w in enumerate(words): if w == se: bag[i] = 1 return np.array(bag) def chat(message): history = history or [] message = message.lower() results = model.predict([bag_of_words(message, words)]) results_index = np.argmax(results) tag = labels[results_index] return tag # for tg in data["intents"]: # if tg['tag'] == tag: # responses = tg['responses'] # # print(random.choice(responses)) # response = random.choice(responses) # history.append((message, response)) # return history, history chatbot = gr.Chatbot(label="Chat") demo = gr.Interface( chat, outputs="label", title="Tabibu | Mental Health Bot", ) if __name__ == "__main__": demo.launch()