File size: 2,682 Bytes
506e4bb
d4693e1
528a3b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1fe68aa
528a3b9
 
 
 
 
0ac4753
528a3b9
 
 
 
 
 
 
 
 
0ac4753
 
 
6de3f2b
1fe68aa
506e4bb
babe8c4
 
 
506e4bb
6777090
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
d493af9
babe8c4
d493af9
506e4bb
 
 
 
d1c3bb2
506e4bb
4331a38
 
506e4bb
d1c3bb2
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
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 ""

with open('Mindfulness.txt', 'r') as file:
        context = file.read()
   
# 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, context):
    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, "")

demo = gr.Interface(
    calculator,
    [
        "text",
        gr.Radio(["add", "subtract", "multiply", "divide"]),
        "text",
        gr.Textbox(lines=3, default=context, label="Story starter")
    ],
    "text",
    live=True,
)
demo.launch()