CognitiveScience commited on
Commit
b27b67f
1 Parent(s): cda962d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +195 -3
app.py CHANGED
@@ -11,10 +11,202 @@ import math
11
  #class myCelSci(Model):
12
  # pass
13
 
14
- def main(link):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  response=getviews(link)+getresult("hello world")[0]["label"] + str(math.trunc(getresult("hello world")[0]["score"])*100/100)
16
  return response #result #soup.prettify()
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
- iface = gr.Interface(fn=main, inputs="text", outputs="text")
20
- iface.launch()
 
11
  #class myCelSci(Model):
12
  # pass
13
 
14
+ #def main(link):
15
+ # response=getviews(link)+getresult("hello world")[0]["label"] + str(math.trunc(getresult("hello world")[0]["score"])*100/100)
16
+ # return response #result #soup.prettify()
17
+
18
+
19
+
20
+ import sqlite3
21
+ import huggingface_hub
22
+ import pandas as pd
23
+ import shutil
24
+ import os
25
+ import datetime
26
+ from apscheduler.schedulers.background import BackgroundScheduler
27
+
28
+ import random
29
+ import time
30
+
31
+ DB_FILE = "./reviews.db"
32
+
33
+ TOKEN = os.environ.get('HF_KEY')
34
+
35
+ repo = huggingface_hub.Repository(
36
+ local_dir="data",
37
+ repo_type="dataset",
38
+ clone_from="CognitiveScience/csdhdata",
39
+ use_auth_token=TOKEN
40
+ )
41
+ repo.git_pull()
42
+
43
+ # Set db to latest
44
+ shutil.copyfile("./data/reviews.db", DB_FILE)
45
+
46
+ # Create table if it doesn't already exist
47
+
48
+ db = sqlite3.connect(DB_FILE)
49
+ try:
50
+ db.execute("SELECT * FROM reviews").fetchall()
51
+ db.close()
52
+ except sqlite3.OperationalError:
53
+ db.execute(
54
+ '''
55
+ CREATE TABLE reviews (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
56
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
57
+ name TEXT, review INTEGER, comments TEXT)
58
+ ''')
59
+ db.commit()
60
+ db.close()
61
+
62
+
63
+ def get_latest_reviews(db: sqlite3.Connection):
64
+ reviews = db.execute("SELECT * FROM reviews ORDER BY id DESC limit 10").fetchall()
65
+ total_reviews = db.execute("Select COUNT(id) from reviews").fetchone()[0]
66
+ reviews = pd.DataFrame(reviews, columns=["id", "date_created", "name", "review", "comments"])
67
+ return reviews, total_reviews
68
+
69
+
70
+ def add_review(name: str, review: int, comments: str):
71
+ db = sqlite3.connect(DB_FILE)
72
+ cursor = db.cursor()
73
+ cursor.execute("INSERT INTO reviews(name, review, comments) VALUES(?,?,?)", [name, review, comments])
74
+ db.commit()
75
+ reviews, total_reviews = get_latest_reviews(db)
76
+ db.close()
77
+ return reviews, total_reviews
78
+
79
+ def load_data():
80
+ db = sqlite3.connect(DB_FILE)
81
+ reviews, total_reviews = get_latest_reviews(db)
82
+ db.close()
83
+ return reviews, total_reviews
84
+
85
+ def delete_review(id: int):
86
+ db = sqlite3.connect(DB_FILE)
87
+ cursor = db.cursor()
88
+ cursor.execute("DELETE FROM reviews WHERE id = ?", [id])
89
+ db.commit()
90
+ reviews, total_reviews = get_latest_reviews(db)
91
+ db.close()
92
+ return reviews, total_reviews
93
+
94
+ def delete_all_reviews():
95
+ db = sqlite3.connect(DB_FILE)
96
+ cursor = db.cursor()
97
+ cursor.execute("DELETE FROM reviews")
98
+ db.commit()
99
+ reviews, total_reviews = get_latest_reviews(db)
100
+ db.close()
101
+ return reviews, total_reviews
102
+ def celsci(link):
103
  response=getviews(link)+getresult("hello world")[0]["label"] + str(math.trunc(getresult("hello world")[0]["score"])*100/100)
104
  return response #result #soup.prettify()
105
 
106
+ with gr.Blocks() as demo:
107
+ with gr.Row():
108
+ with gr.Column():
109
+ chatbot3 = gr.Chatbot()
110
+ msg3 = gr.Textbox()
111
+ clear3 = gr.ClearButton([msg2, chatbot2])
112
+
113
+ def respond3(message, chat_history):
114
+ bot_message = random.choice(["How are you3?", "I love you3", "I'm very hungry3"])
115
+ chat_history.append((message, bot_message))
116
+ time.sleep(2)
117
+
118
+ return "", chat_history
119
+
120
+ msg2.submit(respond3, [msg3, chatbot3], [msg3, chatbot3])
121
+
122
+ with gr.Row():
123
+ with gr.Column():
124
+ name = gr.Textbox(label="Name", placeholder="What is your name?")
125
+ review = gr.Radio(label="How satisfied are you with using gradio?", choices=[1, 2, 3, 4, 5])
126
+ comments = gr.Textbox(label="Comments", lines=10, placeholder="Do you have any feedback on gradio?")
127
+ submit = gr.Button(value="Submit Feedback")
128
+ with gr.Column():
129
+ chatbot = gr.Chatbot()
130
+ msg = gr.Textbox()
131
+ clear = gr.ClearButton([msg, chatbot])
132
+
133
+ def respond(message, chat_history):
134
+ bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
135
+ chat_history.append((message, bot_message))
136
+ time.sleep(2)
137
+
138
+ return "", chat_history
139
+
140
+ msg.submit(respond, [msg, chatbot], [msg, chatbot])
141
+
142
+ with gr.Column():
143
+ chatbot2 = gr.Chatbot()
144
+ msg2 = gr.Textbox()
145
+ clear2 = gr.ClearButton([msg2, chatbot2])
146
+
147
+ def respond2(message, chat_history):
148
+ bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
149
+ chat_history.append((message, bot_message))
150
+ time.sleep(2)
151
+
152
+ return "", chat_history
153
+
154
+ msg2.submit(respond2, [msg2, chatbot2], [msg2, chatbot2])
155
+
156
+ with gr.Column():
157
+ submitsave = gr.Button(value="Save")
158
+
159
+ def backup_db2():
160
+ shutil.copyfile(DB_FILE, "./data/reviews.db")
161
+ db = sqlite3.connect(DB_FILE)
162
+ reviews = db.execute("SELECT * FROM reviews").fetchall()
163
+ pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False)
164
+ print("updating db")
165
+ repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}")
166
+ submit.click(backup_db2)
167
+ with gr.Column():
168
+ with gr.Box():
169
+ gr.Code(
170
+ value="""def hello_world():
171
+ return "Hello, world!"
172
+
173
+ print(hello_world())""",
174
+ language="python",
175
+ interactive=True,
176
+ show_label=False,
177
+ )
178
+ gr.Markdown("Based on dataset [here](https://huggingface.co/datasets/freddyaboulton/gradio-reviews)")
179
+ data = gr.Dataframe()
180
+ count = gr.Number(label="Total number of reviews")
181
+
182
+ submit.click(add_review, [name, review, comments], [data, count])
183
+
184
+ record2del = gr.Textbox(label="Id: ", lines=1, placeholder="to delete?")
185
+
186
+ submit2 = gr.Button(value="Delete Review")
187
+ id_input = gr.Number(value=202, visible=False)
188
+ submit2.click(delete_review, id_input)
189
+
190
+
191
+
192
+ submit3 = gr.Button(value="Delete All Reviews")
193
+ submit3.click(delete_all_reviews)
194
+
195
+
196
+ demo.load(load_data, None, [data, count])
197
+
198
+ def backup_db():
199
+ shutil.copyfile(DB_FILE, "./data/reviews.db")
200
+ db = sqlite3.connect(DB_FILE)
201
+ reviews = db.execute("SELECT * FROM reviews").fetchall()
202
+ pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False)
203
+ print("updating db")
204
+ repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}")
205
+
206
+
207
+ scheduler = BackgroundScheduler()
208
+ scheduler.add_job(func=backup_db, trigger="interval", seconds=60)
209
+ scheduler.start()
210
+
211
 
212
+ demo.launch()