Update app.py
Browse files
app.py
CHANGED
|
@@ -44,7 +44,7 @@ def cohere_parse_command(command):
|
|
| 44 |
|
| 45 |
# Global containers for pending tasks and generated files.
|
| 46 |
task_bucket = [] # Queue of tasks waiting to be processed.
|
| 47 |
-
generated_files = [] #
|
| 48 |
bucket_lock = threading.Lock()
|
| 49 |
|
| 50 |
def process_single_task(task):
|
|
@@ -157,9 +157,12 @@ def build_tasks_html(tasks):
|
|
| 157 |
return html
|
| 158 |
|
| 159 |
def refresh_ui(tasks, files):
|
| 160 |
-
"""Refreshes the
|
|
|
|
|
|
|
| 161 |
tasks_html = build_tasks_html(tasks)
|
| 162 |
-
|
|
|
|
| 163 |
|
| 164 |
def update_dropdown(files):
|
| 165 |
"""Updates the dropdown choices for preview from the list of generated files."""
|
|
@@ -225,7 +228,7 @@ def main():
|
|
| 225 |
tasks_state = gr.State([])
|
| 226 |
files_state = gr.State([])
|
| 227 |
|
| 228 |
-
#
|
| 229 |
submit_btn.click(
|
| 230 |
submit_task,
|
| 231 |
inputs=[command_input, tasks_state],
|
|
@@ -233,22 +236,25 @@ def main():
|
|
| 233 |
).then(
|
| 234 |
refresh_ui,
|
| 235 |
inputs=[tasks_state, files_state],
|
| 236 |
-
outputs=[tasks_state, files_state, tasks_html_output]
|
| 237 |
)
|
|
|
|
| 238 |
sample1.click(lambda: "generate a report on unemployment in the United States in 2024", None, command_input)
|
| 239 |
sample2.click(lambda: "generate diagram of sales data", None, command_input)
|
| 240 |
sample3.click(lambda: "generate csv report of user activity", None, command_input)
|
|
|
|
| 241 |
refresh_btn.click(
|
| 242 |
refresh_ui,
|
| 243 |
inputs=[tasks_state, files_state],
|
| 244 |
-
outputs=[tasks_state, files_state, tasks_html_output]
|
| 245 |
)
|
|
|
|
| 246 |
# Hidden auto-refresh button.
|
| 247 |
auto_refresh_btn = gr.Button("Auto Refresh", visible=False, elem_id="auto_refresh_btn")
|
| 248 |
auto_refresh_btn.click(
|
| 249 |
refresh_ui,
|
| 250 |
inputs=[tasks_state, files_state],
|
| 251 |
-
outputs=[tasks_state, files_state, tasks_html_output]
|
| 252 |
)
|
| 253 |
gr.HTML("""
|
| 254 |
<script>
|
|
@@ -261,7 +267,7 @@ def main():
|
|
| 261 |
""")
|
| 262 |
auto_refresh_toggle.elem_id = "auto_refresh_toggle"
|
| 263 |
|
| 264 |
-
# Update file dropdown from
|
| 265 |
refresh_btn.click(
|
| 266 |
update_dropdown,
|
| 267 |
inputs=[files_state],
|
|
|
|
| 44 |
|
| 45 |
# Global containers for pending tasks and generated files.
|
| 46 |
task_bucket = [] # Queue of tasks waiting to be processed.
|
| 47 |
+
generated_files = [] # Global list of filenames generated.
|
| 48 |
bucket_lock = threading.Lock()
|
| 49 |
|
| 50 |
def process_single_task(task):
|
|
|
|
| 157 |
return html
|
| 158 |
|
| 159 |
def refresh_ui(tasks, files):
|
| 160 |
+
"""Refreshes the UI by rebuilding the task list and updating the files state."""
|
| 161 |
+
# Update files state from the global generated_files list.
|
| 162 |
+
files = generated_files[:]
|
| 163 |
tasks_html = build_tasks_html(tasks)
|
| 164 |
+
# Return tasks, updated files state, tasks HTML, and update file downloads.
|
| 165 |
+
return tasks, files, tasks_html, files
|
| 166 |
|
| 167 |
def update_dropdown(files):
|
| 168 |
"""Updates the dropdown choices for preview from the list of generated files."""
|
|
|
|
| 228 |
tasks_state = gr.State([])
|
| 229 |
files_state = gr.State([])
|
| 230 |
|
| 231 |
+
# Submit: add task then refresh UI immediately.
|
| 232 |
submit_btn.click(
|
| 233 |
submit_task,
|
| 234 |
inputs=[command_input, tasks_state],
|
|
|
|
| 236 |
).then(
|
| 237 |
refresh_ui,
|
| 238 |
inputs=[tasks_state, files_state],
|
| 239 |
+
outputs=[tasks_state, files_state, tasks_html_output, file_output]
|
| 240 |
)
|
| 241 |
+
|
| 242 |
sample1.click(lambda: "generate a report on unemployment in the United States in 2024", None, command_input)
|
| 243 |
sample2.click(lambda: "generate diagram of sales data", None, command_input)
|
| 244 |
sample3.click(lambda: "generate csv report of user activity", None, command_input)
|
| 245 |
+
|
| 246 |
refresh_btn.click(
|
| 247 |
refresh_ui,
|
| 248 |
inputs=[tasks_state, files_state],
|
| 249 |
+
outputs=[tasks_state, files_state, tasks_html_output, file_output]
|
| 250 |
)
|
| 251 |
+
|
| 252 |
# Hidden auto-refresh button.
|
| 253 |
auto_refresh_btn = gr.Button("Auto Refresh", visible=False, elem_id="auto_refresh_btn")
|
| 254 |
auto_refresh_btn.click(
|
| 255 |
refresh_ui,
|
| 256 |
inputs=[tasks_state, files_state],
|
| 257 |
+
outputs=[tasks_state, files_state, tasks_html_output, file_output]
|
| 258 |
)
|
| 259 |
gr.HTML("""
|
| 260 |
<script>
|
|
|
|
| 267 |
""")
|
| 268 |
auto_refresh_toggle.elem_id = "auto_refresh_toggle"
|
| 269 |
|
| 270 |
+
# Update file dropdown from files state.
|
| 271 |
refresh_btn.click(
|
| 272 |
update_dropdown,
|
| 273 |
inputs=[files_state],
|