import gradio as gr import os # 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") # 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") def AIMemory(title: str, story: str): if title and story: with open(DATA_FILE, "a") as csvfile: writer = csv.DictWriter(csvfile, fieldnames=["title", "story", "time"]) writer.writerow({"title": title, "story": story, "time": str(datetime.now())}) commit_url = repo.push_to_hub() return "" # Set up cloned dataset from repo for operations repo = Repository( local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=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) def calculator(intro, operator, outro): if operator == "add": output = generator2(intro) + generator3(outro) title = intro + " " + outro saved = AIMemory(title, output) return output elif operator == "subtract": output = generator2(outro) + generator3(intro) title = outro + " " + intro saved = AIMemory(title, output) output = output.replace(intro, "").replace(outro, "") return output elif operator == "multiply": output = generator1(intro) + generator2(outro) + generator3(intro) title = intro + " " + outro + " " + intro saved = AIMemory(title, output) return output elif operator == "divide": output = generator1(outro) + generator2(intro) + generator3(outro) title = outro + " " + intro + " " + outro saved = AIMemory(title, output) output = output.replace(intro, "").replace(outro, "") return output #with open('Mindfulness.txt', 'r') as file: # context = file.read() #contextBox = gr.Textbox(lines=3, default=context, label="Story starter") examples = [ ["Music and art make me feel", "add", "Path to Health and Happiness"], ["Feel better each day when you awake by", "add", "Mental Body Scan"], ["Feel better physically by", "add", "Stretch, Calm, Breath"], ["Practicing mindfulness each day", "add", "Walk Feel"], ["Be happier by", "add", "Brain gamification"], ["Meditation can improve health", "add", "Deep Breaths"], ["Spending time outdoors", "add", "Find Joy"], ["Stress is relieved by quieting your mind, getting exercise and time with nature", "add", "Relieve Pain"], ["Break the cycle of stress and anxiety", "add", "Yoga and Meditation"], ["Feel calm in stressful situations", "add", "Neocortex Tools and Techniques"], ["Deal with work pressure", "add", "Strengthen Attention"], ["Learn to reduce feelings of overwhelmed", "add", "Easy Daily Activities"] ] demo = gr.Interface( calculator, [ "text", gr.Radio(["add", "subtract", "multiply", "divide"]), "text" ], "text", examples=examples, article="Saved story memory is at URL: https://huggingface.co/datasets/awacke1/MindfulStory.csv", live=True, ) demo.launch()