test / app.py
codemogul's picture
Update app.py
d6cabce
!pip install --upgrade tensorflow
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):
message = message.lower()
results = model.predict([bag_of_words(message, words)])
results_index = np.argmax(results)
tag = labels[results_index]
for tg in data["intents"]:
if tg['tag'] == tag:
responses = tg['responses']
# return responses
return random.choice(responses)
# history.append((message, response))
# return history, history
chatbot = gr.Chatbot(label="Chat")
demo = gr.Interface(
chat,
inputs="text",
outputs="label",
title="Tabibu | Mental Health Bot",
)
if __name__ == "__main__":
demo.launch()