Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
CHANGED
@@ -4,6 +4,8 @@ import os
|
|
4 |
import shutil
|
5 |
import time
|
6 |
import traceback
|
|
|
|
|
7 |
|
8 |
import gradio as gr
|
9 |
from dotenv import load_dotenv
|
@@ -106,13 +108,19 @@ def start_grading(history):
|
|
106 |
|
107 |
|
108 |
def start_downloading():
|
109 |
-
files = glob.glob("output/*.csv")
|
110 |
-
if files:
|
111 |
-
|
112 |
-
|
113 |
-
else:
|
114 |
-
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
def get_first_message(history):
|
118 |
global grader_qa
|
@@ -168,16 +176,28 @@ def enable_fields(url_status, canvas_api_key_status, submit_status, grade_status
|
|
168 |
canvas_api_key.placeholder = "Data already ingested"
|
169 |
|
170 |
|
171 |
-
def reset_data(
|
172 |
# Use shutil.rmtree() to delete output, docs, and vector_stores folders, reset grader and grader_qa, and get_grading_status, reset and return history
|
173 |
global grader, grader_qa
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
|
182 |
|
183 |
def get_output_dir(orig_name):
|
@@ -207,6 +227,10 @@ def upload_grading_results(file, history):
|
|
207 |
def bot(history):
|
208 |
return history
|
209 |
|
|
|
|
|
|
|
|
|
210 |
|
211 |
with gr.Blocks() as demo:
|
212 |
gr.Markdown(f"<h2><center>{'Canvas Discussion Grading With Feedback'}</center></h2>")
|
@@ -222,10 +246,16 @@ with gr.Blocks() as demo:
|
|
222 |
placeholder="Enter your Canvas API Key", type="password"
|
223 |
)
|
224 |
|
225 |
-
with gr.Row():
|
226 |
submit = gr.Button(value="Submit", variant="secondary", )
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
grade = gr.Button(value="Grade", variant="secondary")
|
228 |
download = gr.Button(value="Download", variant="secondary")
|
|
|
229 |
reset = gr.Button(value="Reset", variant="secondary")
|
230 |
|
231 |
chatbot = gr.Chatbot([], label="Chat with grading results", elem_id="chatbot", height=400)
|
@@ -240,6 +270,10 @@ with gr.Blocks() as demo:
|
|
240 |
ask = gr.Button(value="Ask", variant="secondary", scale=1)
|
241 |
|
242 |
chatbot.value = get_first_message([])
|
|
|
|
|
|
|
|
|
243 |
submit.click(ingest, inputs=[url, canvas_api_key, chatbot], outputs=[chatbot, url, canvas_api_key, submit, grade],
|
244 |
postprocess=False).then(
|
245 |
bot, chatbot, chatbot
|
@@ -250,7 +284,7 @@ with gr.Blocks() as demo:
|
|
250 |
bot, chatbot, chatbot
|
251 |
)
|
252 |
|
253 |
-
download.click(start_downloading, inputs=[], outputs=[
|
254 |
bot, chatbot, chatbot
|
255 |
)
|
256 |
|
@@ -262,7 +296,7 @@ with gr.Blocks() as demo:
|
|
262 |
bot, chatbot, chatbot
|
263 |
)
|
264 |
|
265 |
-
reset.click(reset_data, inputs=[
|
266 |
bot, chatbot, chatbot)
|
267 |
|
268 |
upload.upload(upload_grading_results, inputs=[upload, chatbot], outputs=[chatbot], postprocess=False, ).then(
|
|
|
4 |
import shutil
|
5 |
import time
|
6 |
import traceback
|
7 |
+
import pandas as pd
|
8 |
+
import utils
|
9 |
|
10 |
import gradio as gr
|
11 |
from dotenv import load_dotenv
|
|
|
108 |
|
109 |
|
110 |
def start_downloading():
|
111 |
+
# files = glob.glob("output/*.csv")
|
112 |
+
# if files:
|
113 |
+
# file = files[0]
|
114 |
+
# return gr.outputs.File(file)
|
115 |
+
# else:
|
116 |
+
# return "File not found"
|
117 |
+
print(grader.csv)
|
118 |
+
return grader.csv, gr.update(visible=True), gr.update(value=process_csv_text(), visible=True)
|
119 |
+
|
120 |
+
def get_headers():
|
121 |
+
df = process_csv_text()
|
122 |
+
return list(df.columns)
|
123 |
+
|
124 |
|
125 |
def get_first_message(history):
|
126 |
global grader_qa
|
|
|
176 |
canvas_api_key.placeholder = "Data already ingested"
|
177 |
|
178 |
|
179 |
+
def reset_data():
|
180 |
# Use shutil.rmtree() to delete output, docs, and vector_stores folders, reset grader and grader_qa, and get_grading_status, reset and return history
|
181 |
global grader, grader_qa
|
182 |
+
#If there's data in docs/output folder during grading
|
183 |
+
if os.path.isdir('output') and len(glob.glob("output/*.csv")) > 0 and len(glob.glob("docs/*.json")) > 0 and len(
|
184 |
+
glob.glob("docs/*.html")) > 0:
|
185 |
+
reset_folder('output')
|
186 |
+
reset_folder('docs')
|
187 |
+
grader = None
|
188 |
+
grader_qa = None
|
189 |
+
history = [(None, 'Data reset successfully')]
|
190 |
+
return history
|
191 |
+
# If there's data in docs folder
|
192 |
+
elif len(glob.glob("docs/*.json")) > 0 and len(glob.glob("docs/*.html")):
|
193 |
+
reset_folder('docs')
|
194 |
+
history = [(None, 'Data reset successfully')]
|
195 |
+
return history
|
196 |
+
#If there's data in vector_stores folder
|
197 |
+
elif len(glob.glob("vector_stores/*.faiss")) > 0 or len(glob.glob("vector_stores/*.pkl")) > 0:
|
198 |
+
reset_folder('vector_stores')
|
199 |
+
history = [(None, 'Data reset successfully')]
|
200 |
+
return history
|
201 |
|
202 |
|
203 |
def get_output_dir(orig_name):
|
|
|
227 |
def bot(history):
|
228 |
return history
|
229 |
|
230 |
+
def process_csv_text():
|
231 |
+
file_path = utils.get_csv_file_name()
|
232 |
+
df = pd.read_csv(file_path)
|
233 |
+
return df
|
234 |
|
235 |
with gr.Blocks() as demo:
|
236 |
gr.Markdown(f"<h2><center>{'Canvas Discussion Grading With Feedback'}</center></h2>")
|
|
|
246 |
placeholder="Enter your Canvas API Key", type="password"
|
247 |
)
|
248 |
|
|
|
249 |
submit = gr.Button(value="Submit", variant="secondary", )
|
250 |
+
with gr.Row():
|
251 |
+
table = gr.Dataframe(label ='Canvas CSV Output', type="pandas", overflow_row_behaviour="paginate", visible = False, wrap=True)
|
252 |
+
|
253 |
+
|
254 |
+
with gr.Row():
|
255 |
+
|
256 |
grade = gr.Button(value="Grade", variant="secondary")
|
257 |
download = gr.Button(value="Download", variant="secondary")
|
258 |
+
file = gr.components.File(label="CSV Output", container=False, visible=False).style(height=100)
|
259 |
reset = gr.Button(value="Reset", variant="secondary")
|
260 |
|
261 |
chatbot = gr.Chatbot([], label="Chat with grading results", elem_id="chatbot", height=400)
|
|
|
270 |
ask = gr.Button(value="Ask", variant="secondary", scale=1)
|
271 |
|
272 |
chatbot.value = get_first_message([])
|
273 |
+
|
274 |
+
with gr.Row():
|
275 |
+
table = gr.Dataframe(label ='Canvas CSV Output', type="pandas", overflow_row_behaviour="paginate", visible = False, wrap=True)
|
276 |
+
|
277 |
submit.click(ingest, inputs=[url, canvas_api_key, chatbot], outputs=[chatbot, url, canvas_api_key, submit, grade],
|
278 |
postprocess=False).then(
|
279 |
bot, chatbot, chatbot
|
|
|
284 |
bot, chatbot, chatbot
|
285 |
)
|
286 |
|
287 |
+
download.click(start_downloading, inputs=[], outputs=[file, file, table]).then(
|
288 |
bot, chatbot, chatbot
|
289 |
)
|
290 |
|
|
|
296 |
bot, chatbot, chatbot
|
297 |
)
|
298 |
|
299 |
+
reset.click(reset_data, inputs=[], outputs=[], postprocess=False, show_progress=True, ).success(
|
300 |
bot, chatbot, chatbot)
|
301 |
|
302 |
upload.upload(upload_grading_results, inputs=[upload, chatbot], outputs=[chatbot], postprocess=False, ).then(
|