General feedback
- Graphs - do you think we need to worry about running out of memory? I'm seeing that the full history seems to be recorded (which is nice in itself)
- Is the historical data on a per-experiment basis or for the Pioreactor as a whole?
I had trouble getting it to recognize a new experiment.
If I change the name at the top, 'test' appears in the bottom-right, but
Ed
is still shown as the experiment. Is it maybeIf I put an experiment name that doesn't exist at the top, then there doesn't seem to be any warning or response (not a huge deal, but maybe worth making a markdown note at the least).
I noticed
KeyError: "None of ['x'] are in the columns"
in the logs:
===== Application Startup at 2024-11-20 21:35:25 =====
9bb69fc9bf6b4092abc4c92d76e602cd.s1.eu.hivemq.cloud 8883 Gradio 123
/home/user/app/app.py:41: DeprecationWarning: Callback API version 1 is deprecated, update to latest version
client = mqtt.Client()
Connected with result code 0
* Running on local URL: http://0.0.0.0:7860, with SSR โก
To create a public link, set `share=True` in `launch()`.
Connected with result code 0
Connected with result code 0
Connected with result code 0
Connected with result code 0
Connected with result code 0
Invalid state
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/gradio/queueing.py", line 624, in process_events
response = await route_utils.call_process_api(
File "/usr/local/lib/python3.10/site-packages/gradio/route_utils.py", line 323, in call_process_api
output = await app.get_blocks().process_api(
File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 2018, in process_api
result = await self.call_function(
File "/usr/local/lib/python3.10/site-packages/gradio/blocks.py", line 1567, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
File "/usr/local/lib/python3.10/site-packages/anyio/to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2441, in run_sync_in_worker_thread
return await future
File "/usr/local/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 943, in run
result = context.run(func, *args)
File "/usr/local/lib/python3.10/site-packages/gradio/utils.py", line 846, in wrapper
response = f(*args, **kwargs)
File "/home/user/app/app.py", line 712, in get_data_default
df = df.set_index("x")
File "/usr/local/lib/python3.10/site-packages/pandas/core/frame.py", line 6122, in set_index
raise KeyError(f"None of {missing} are in the columns")
KeyError: "None of ['x'] are in the columns"
Maybe we could add some more logs? I'm not sure if the user gets to see the logs
Thoughts on adding flagging? Should be an easy toggle, but I'm curious if you think it would be useful from a developer standpoint.
The experiment part is bad design on my part. Thinking about it now we can actually just remove the top most input for experiment and directly fetch the active experiment on the reactor side. Currently to change experiment you need to do it below in the experiment part. The top input for experiment should match the experiment in the status.
The error is likely due to the table creation. When no data has been gathered this could happen. I will add some logic to handle this.
I will look into logs and flagging.
The graphs are unique to each experiment. Shouldn't be too big a concern.
Thanks!
A couple other random things:
- Could you add a title and a short text description, similar to https://huggingface.co/spaces/AccelerationConsortium/cobot280pi-gradio and a link to the Pioreactor website? Optionally, maybe an image of a pioreactor
- Could you put the Colab badge in-between the title and short description from above, and remove the explanatory text? (I think people will either already know what it is or get curious and click it)
of course