Spaces:
Sleeping
Sleeping
File size: 2,701 Bytes
7073eba 7e3c3ff 00d7a2e cbc3cf5 9d3e711 0370488 f98e515 cbc3cf5 903fe66 7b65907 07f8c16 007bdd0 4b69c94 dcb550c 4b69c94 7e3c3ff 2798e6f c00d42c a3bf946 0370488 a3bf946 cbc3cf5 07f8c16 2798e6f 4b69c94 7b65907 4d2ca25 df8aa24 7b65907 df8aa24 1d961b6 7b65907 2798e6f 827c0a2 27c3fd1 cc07c49 27c3fd1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
import gradio as gr
from transformers import AutoTokenizer, TFBlenderbotForConditionalGeneration
import tensorflow as tf
import json
import os
from datetime import datetime
from tensorflow.keras.mixed_precision import Policy
tf.keras.mixed_precision.set_global_policy('mixed_float16')
data = {"Interactions":[]}
with open("question_answer.json", "w") as file:
json.dump(data, file, indent=4)
print("Loading the model......")
model_name = "WICKED4950/Irisonego5"
strategy = tf.distribute.MirroredStrategy()
tf.config.optimizer.set_jit(True) # Enable XLA
tokenizer = AutoTokenizer.from_pretrained(model_name)
with strategy.scope():
model = TFBlenderbotForConditionalGeneration.from_pretrained(model_name)
def save_question(question,answer,path = "question_answer.json"):
with open(path, "r") as file:
data = json.load(file)
data["Interactions"].append({"Question:":question,"Answer:":answer,"Time:":datetime.now().strftime("%Y-%m-%d %H:%M:%S")})
with open(path, "w") as file:
json.dump(data, file, indent=4)
print("Interface getting done....")
# Define the chatbot function
def predict(user_input):
if user_input == "Print_data_hmm":
with open("question_answer.json", "r") as file:
print(json.load(file))
print()
return "Done"
else:
inputs = tokenizer(user_input, return_tensors="tf", padding=True, truncation=True)
# Generate the response using the model
response_id = model.generate(
inputs['input_ids'],
max_length=128, # Set max length of response
do_sample=True, # Sampling for variability
top_k=15, # Consider top 50 tokens
top_p=0.95, # Nucleus sampling
temperature=0.8 # Adjusts creativity of response
)
# Decode the response
response = tokenizer.decode(response_id[0], skip_special_tokens=True)
save_question(question = user_input,answer=response)
print("Q:",user_input)
print("A:",response)
print("T:",datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
print()
return response
# Gradio interface
gr.Interface(
fn=predict,
inputs=gr.Textbox(label="Ask Iris anything!"),
outputs=gr.Textbox(label="Iris's Response"),
examples=[
["What should I do if I'm feeling down?"],
["How do I deal with stress?"],
["What is your purpose?"]
],
description="A chatbot trained to provide friendly and comforting responses. Type your question below and let Iris help!",
title="Iris - Your Friendly Mental Health Assistant",
).launch()
|