MYLO
- 3 Devlogs
- 10 Total hours
A dashboard for neural networks
A dashboard for neural networks
This devlog I bring you:
-Authentication, made with Auth.js, it has the options to log in using github and google. For now its just the code itself for logging in, retrieving user data and checking if the user is logged in, but it doesnt serve any function.
-Properties panel, now you have the option to open the properties panel. When clicking on a node it shows info about that node, like the inputs, outputs and any attributes it has.
-Data processing, for now only in the API, the panel is coming too! It takes a csv file and checks it’s compatibility with One-Shot encoding, and other basic information about the data, like missing values, encoding size, etc.
Sooo, I have been pretty efficient. We got the basic UI layout done, with the windows and tabs and everything, which have been customized. We also have a logo (sadly I couldn’t log the time working on it) and most importantly we have the first tool!
The visualization tool!
(now I realized I’ve misspelled visualize in the app)
Which also means I got the communication between the web interface and api working.
For now the visualization only works with ONNX files, but I hope to get this expanded to other formats like pytorch files.
The tool works this way. You “point” to the file on your computer, the client on your laptop processes it and generates a list of edges and nodes, where each node carries specific information about itself. Then in the UI I post-process them a bit, as the names are pretty ugly like “/lstm/LSTM|/” and I just trim it. Then based on the category of node, I color it a specific color. The constant nodes are removed for clarity (although I will add a way to re-enable them). Then using ELKjs I order the nodes and then display them using react-flow.
I really like how it all turned out.
Some other notable things are about the meubar, it’s very easy to add buttons, and for those buttons to have nested ones, its just basically a JSON, where each button has a label, an onClick function and children. All of this setup will help me in the future.
This is all for now.
I’ve started with the scaffolding of this project. I want the UI to be IDE like, so I created a window management system using Dockview. I also made a Client class. The idea is for there to be two ways to process your neural networks, either locally or in the cloud, thus I made this client class that should make it very easy to switch between the two on the Frontend side. In the client itself, where all the processing happens, I made a very basic fastapi server and some endpoints for testing, as well as laid the brickwork to “load” local files into the client, without having them uploaded to the Website UI and then sent over to the MYLO client on the PC, basically creating a duplicate just to read from it. It works by instead of opening a file dialog in the browser, opening one from the python client installed on the computer, thus allowing me to access information such as the absolute file path, which would otherwise not be possible trough the webinterface.