File size: 3,573 Bytes
506e4bb
d4693e1
528a3b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1fe68aa
528a3b9
 
 
 
 
0ac4753
528a3b9
e29067d
528a3b9
 
 
 
 
0ac4753
 
 
6de3f2b
10ffa47
506e4bb
babe8c4
 
 
506e4bb
6777090
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
2d8d102
 
 
bb13c60
5ade1d1
f72605e
 
 
 
 
 
 
 
 
 
 
 
5ade1d1
 
506e4bb
 
 
d1c3bb2
506e4bb
045337f
506e4bb
1af4d9f
56b46de
506e4bb
 
 
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
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(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 ""


# 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(text1, operation, text2):
    if operation == "add":
        output = generator1(text1) + generator2(text2)
        saved = AIMemory(text1 + " " + text2, output)
        return output
    elif operation == "subtract":
        output = generator1(text2) + generator2(text1)
        saved = AIMemory(text1 + " " + text2, output)
        return output.replace(text1, "").replace(text2, "")
    elif operation == "multiply":
        output = generator1(text1) + generator2(text2) + generator3(text1)
        saved = AIMemory(text1 + " " + text2, output)
        return output
    elif operation == "divide":
        output = generator1(text2) + generator2(text1) + generator3(text2)
        saved = AIMemory(text1 + " " + text2, output)
        return output.replace(text1, "").replace(text2, "")

#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,
    live=True,
)
demo.launch()