awacke1's picture
Update app.py
ffb5d20
raw
history blame
6.26 kB
import gradio as gr
import os
from transformers import pipeline
title = "❤️🧠MindfulStory📖💾MemoryMaker"
examples = [
["Music and art make me feel"],
["Feel better each day when you awake by"],
["Feel better physically by"],
["Practicing mindfulness each day"],
["Be happier by"],
["Meditation can improve health"],
["Spending time outdoors"],
["Stress is relieved by quieting your mind, getting exercise and time with nature"],
["Break the cycle of stress and anxiety"],
["Feel calm in stressful situations"],
["Deal with work pressure"],
["Learn to reduce feelings of overwhelmed"]
]
from gradio import inputs
from gradio.inputs import Textbox
from gradio import outputs
# PersistDataset -----
import os
import csv
import gradio as gr
from gradio import inputs, outputs
import huggingface_hub
from huggingface_hub import Repository, hf_hub_download, upload_file
from datetime import datetime
# created new dataset as awacke1/MindfulStory.csv
DATASET_REPO_URL = "https://huggingface.co/datasets/awacke1/MindfulStory.csv"
DATASET_REPO_ID = "awacke1/MindfulStory.csv"
DATA_FILENAME = "MindfulStory.csv"
DATA_FILE = os.path.join("data", DATA_FILENAME)
HF_TOKEN = os.environ.get("HF_TOKEN")
SCRIPT = """
<script>
if (!window.hasBeenRun) {
window.hasBeenRun = true;
console.log("should only happen once");
document.querySelector("button.submit").click();
}
</script>
"""
# Download dataset repo using hub download
try:
hf_hub_download(
repo_id=DATASET_REPO_ID,
filename=DATA_FILENAME,
cache_dir=DATA_DIRNAME,
force_filename=DATA_FILENAME
)
except:
print("file not found")
# Set up cloned dataset from repo for operations
repo = Repository(
local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
)
def generate_html() -> str:
with open(DATA_FILE) as csvfile:
reader = csv.DictReader(csvfile)
rows = []
for row in reader:
rows.append(row)
rows.reverse()
if len(rows) == 0:
return "no messages yet"
else:
html = "<div class='chatbot'>"
for row in rows:
html += "<div>"
html += f"<span>{row['inputs']}</span>"
html += f"<span class='outputs'>{row['outputs']}</span>"
html += "</div>"
html += "</div>"
return html
#store_message(message, response) # Save to dataset
#generator2 = gr.Interface.load("huggingface/EleutherAI/gpt-neo-2.7B", api_key=HF_TOKEN)
#generator3 = gr.Interface.load("huggingface/EleutherAI/gpt-j-6B", api_key=HF_TOKEN)
#generator1 = gr.Interface.load("huggingface/gpt2-large", api_key=HF_TOKEN)
#greeter_1 = gr.Interface(lambda name: f"Hello {name}!", inputs="textbox", outputs=gr.Textbox(label="Greeter 1"))
#greeter_2 = gr.Interface(lambda name: f"Greetings {name}!", inputs="textbox", outputs=gr.Textbox(label="Greeter 2"))
#demo = gr.Parallel(greeter_1, greeter_2)
#generator1 = gr.Interface(lambda name: f"Hello {name}!", inputs="textbox", outputs=gr.Textbox(label="GPT2-Large")).load("huggingface/gpt2-large", api_key=HF_TOKEN)
#tbOutput = gr.Textbox(label="GPT Output")
#generator1 = gr.Interface(lambda name: f"Hello {name}!", inputs="textbox", outputs=[tbOutput]).load("huggingface/gpt2-large", api_key=HF_TOKEN)
#generator1 = generator1 = gr.Interface.load("huggingface/gpt2-large", api_key=HF_TOKEN)
#generator2 = gr.Interface.load("huggingface/EleutherAI/gpt-neo-2.7B", api_key=HF_TOKEN)
#generator3 = gr.Interface.load("huggingface/EleutherAI/gpt-j-6B", api_key=HF_TOKEN)
#model_1_iface = gr.Interface( fn=your_function_1, inputs=gr.inputs.Textbox(), outputs=gr.outputs.Label(num_top_classes=10))
#model_2_iface = gr.Interface( fn= your_function_2, inputs=gr.inputs.Textbox(), outputs=gr.outputs.Label(num_top_classes=10),)
#generator1 = gr.Interface(fn=persist_memory,inputs=gr.inputs.Textbox(),outputs=gr.outputs.Label(num_top_classes=10) ).load("huggingface/gpt2-large",api_key=HF_TOKEN)
#OutputsGen=gr.outputs.Label(num_top_classes=10)
#generator1 = gr.Interface(fn=persist_memory,inputs=[OutputsGen, OutputsGen],outputs=OutputsGen).load("huggingface/gpt2-large",api_key=HF_TOKEN)
generator1 = gr.Interface.load("huggingface/gpt2-large", api_key=HF_TOKEN)
#generator2 = gr.Interface.load("huggingface/EleutherAI/gpt-neo-2.7B", api_key=HF_TOKEN)
#generator3 = gr.Interface.load("huggingface/EleutherAI/gpt-j-6B", api_key=HF_TOKEN)
#MemoryChange=tbOutput.change(persist_memory,inputs=[tbOutput],outputs=gr.Textbox(label="PersistMemoryOutput"))
SplitterInputBox = gr.inputs.Textbox(lines=5, label="Enter a sentence to get another sentence.")
def AIMemory(name: str, message: str):
if name and message:
with open(DATA_FILE, "a") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=["name", "message", "time"])
writer.writerow({"name": name, "message": message, "time": str(datetime.now())})
commit_url = repo.push_to_hub()
return {"name": name, "message": message, "time": str(datetime.now())}
#with gr.Blocks() as Memory:
parallelModel = gr.Parallel(generator1, generator2, generator3, inputs = SplitterInputBox, examples=examples,
title="Mindfulness Story Generation with Persistent Dataset Memory",
description=f"Mindfulness Story Generation with Persistent Dataset Memory",
article=f"Memory Dataset URL: [{DATASET_REPO_URL}]({DATASET_REPO_URL})" )
#
# gr.Markdown("Mindfulness Story Generation with Persistent Dataset Memory")
# with gr.Row():
# inp = gr.Textbox(placeholder="What text would you like to extend with generation?")
# inp2 = gr.Textbox(placeholder="What text would you like to extend with generation?")
# out = gr.Textbox()
# out2 = gr.Textbox()
# out3 = gr.Textbox()
# btn = gr.Button("Run")
# btn.click(fn=AIMemory, inputs=[inp,inp], outputs=[out,out2,out3])
parallelModel.launch()
#tbMemoryOutput = gr.Textbox(label="Memory Output")
#btnSave = gr.Button("Save")
#btnSave.click(fn=persist_memory, inputs=[SplitterInputBox, tbOutput], outputs=tbMemoryOutput)
#parallelModel.launch(share=False)