containers / podman-desktop-extension-ai-lab

Work with LLMs on a local environment using containers
https://podman-desktop.io/extensions/ai-lab
Apache License 2.0
169 stars 30 forks source link

Very long images building on recipe first start #1121

Open axel7083 opened 3 months ago

axel7083 commented 3 months ago

Is your enhancement related to a problem? Please describe

image

How we could improve the UX experience here ? We have a series of individual task, some can run in parallel, other are run in sequence.

For the building image phase, we can have multiple images being build at the same time, but this process can be very long on certain hardware, therefore be frustrating with the lack of information logs.

Describe the solution you'd like

Integrating the logs of the building process to the UI.

For example in the resource page, when creating a kind cluster we have the following

image

We could have some kind of log icon, or dropdown, or popup, allowing the user to see the logs, I am not sure what would be the best way to integrate this

Describe alternatives you've considered

No response

Additional context

@ekidneyrh any opinion ?

deboer-tim commented 3 months ago

To me this is yet another case where the lack of good general task/progress support is leading to custom UI and workarounds. (Why doesn't this screen match any other UI we have?) We need to solve this in PD so you can see the current progress from anywhere, and have an embeddable task component for screens like this.

I don't like just showing the logs as the (only) solution. Yes it shows progress, but e.g. if I'm not familiar with the kind cli I wouldn't know which steps take longer or how much output there will be. It's far more useful if we break down the steps to show progress, or pull specific lines from the output to show task sub-steps.

ekidneyrh commented 3 months ago

Yah I agree with Tim to maybe not have the default of showing the logs.

The use of linear progress bars could be useful. We could have them for each of the tasks. At least this would show the user how much progress is being made. Or have them in the circular spinner we have already, just have the loading bar be reflective of how much progress has been made.

image

I'm not sure what the implementation of a time estimator or even a percentage is like, but that could be another thing to explore.

image

If the user wanted to see more details they could click into it and view it like on the details page under the logs tab

axel7083 commented 3 months ago

Yah I agree with Tim to maybe not have the default of showing the logs.

We all agree on this, in the same way creating a kind cluster does not show the logs by default

The use of linear progress bars could be useful.

I do not agree, as this would take more space, and having multiple linear progress bar would feel weird

I'm not sure what the implementation of a time estimator or even a percentage is like, but that could be another thing to explore.

We do not have a way to compute the percentage of progress. This is not a deterministic task, as when building an image with a Containerfile, it is impossible to predict the duration of each steps.

Dividing equally the number of steps is not a good choice, as it would make the assumption that each step in a Containerfile require the same time, this is not true (Download a 10Go file, or echo some text is seen as one step, but does not take the same time.)

We already have the percentage for the download tasks, but this is not applicable for image building. The only information we have are the logs, as a developer I am in favour of showing the logs, leaving to the user the understanding of why it is taking a long time.

If the user wanted to see more details they could click into it and view it like on the details page under the logs tab

So creating a dedicated tab in the Recipe details page ?

ekidneyrh commented 3 months ago

What about having the progress just reflective in the spinner? Is there no way to show how many steps out of the total have been done? I don't think it matters that each stage doesn't take the same amount of time, it's just to show the user that progress is being made. Otherwise, how would they know things are working OK?

I know the showing of logs would show things are running, but could there be a case where someone is not familiar with logs or how to interpret them? Seeing as the application is to provide a graphical interface for the process, would it not make sense to have a visual representation of the progress being made? I'm sure those familiar with logs would benefit from this too.

The logs can still be there for those who want to look at them, but have that be an extra step rather than the default.

For the tab, yah I think something alongside Summary and Models would work