File size: 3,457 Bytes
506e4bb
d4693e1
528a3b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1fe68aa
528a3b9
 
 
 
 
0ac4753
528a3b9
e29067d
528a3b9
 
 
 
 
0ac4753
 
 
6de3f2b
001698b
506e4bb
babe8c4
 
 
506e4bb
6777090
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
2d8d102
 
 
bb13c60
5ade1d1
6160125
 
 
 
 
 
 
 
 
 
 
 
5ade1d1
 
506e4bb
 
 
d1c3bb2
506e4bb
045337f
506e4bb
2d8d102
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, contextText):
    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", "mindful"],
    ["Feel better each day when you awake by", "add", "mindful"],
    ["Feel better physically by", "add", "mindful"],
    ["Practicing mindfulness each day", "add", "mindful"],
    ["Be happier by", "add", "mindful"],
    ["Meditation can improve health", "add", "mindful"],
    ["Spending time outdoors", "add", "mindful"],
    ["Stress is relieved by quieting your mind, getting exercise and time with nature", "add", "mindful"],
    ["Break the cycle of stress and anxiety", "add", "mindful"],
    ["Feel calm in stressful situations", "add", "mindful"],
    ["Deal with work pressure", "add", "mindful"],
    ["Learn to reduce feelings of overwhelmed", "add", "mindful"]
]

demo = gr.Interface(
    calculator,
    [
        "text",
        gr.Radio(["add", "subtract", "multiply", "divide"]),
        "text"
    ],
    #"text",
    examples=examples,
    live=True,
)
demo.launch()