File size: 3,945 Bytes
204ee44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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 dataset: https://huggingface.co/datasets/awacke1/MindfulStory.csv with available models to use from text gen: https://huggingface.co/models?pipeline_tag=text-generation&sort=downloads",
    live=True,
)
demo.launch()