Open rickycao-qy opened 4 years ago
Now for UI plugin, we will add the 8th category:
I think the UI should be an ability for plugins.
MUST have the structure as follows:
In case the UI will need to do some basic operations on local file system, we will provide several basic APIs to achieve this:
We SHOULD point out where do we provide these HTTP APIs.
How to use UI Plugin
I think user don't need to specify the plugin parameter, pipboard is able to load automatically.
Meeting Summary:
In details, we have the following pages and functionalities to be achieved:
To make extension works exactly, the below features/injections are needed:
{
"event": "model.visualization",
"handler": "/path/to/your/main.js"
}
{
"event": "sample.visualization",
"handler": "/path/to/your/script.js"
}
{
"event": "sample.view",
"filter": { "datatype": "image", "tasktype": "classification" },
"handler": "/path/to/your/script.js"
}
{
"event": "plugin.configuration",
"handler": "/path/to/your/configuration/handler"
}
Then let's see what's a Pipboard extension looks like:
{
"name": "@pipcook/pipboard-tensorboard-extension",
"pipboard": {
"observe": [{
"event": "model.visualization",
"handler": "tensorboard.js#onselect"
}, {
"event": "pipeline.start",
"handler": "tensorboard.js#onpipelinestart
}]
}
}
And tensorboard.js
:
import pipboard from '@pipboard/pipboard-extension-api';
export onselect = (enabled, pipeline) => {
if (enabled) {
pipboard.getPluginByType('model-define').enableTensorboard('/path/to/your/log');
}
};
export onpipelinestart = (options, pipeline) => {
const tensorboard = pipboard.createWindow('/path/to/your/page/url');
tensorboard.show();
}
As discussed with @yorkie @wordcount , we would allow users to develop user-interface plugins to extend the ability of Pipboard. This issue will discuss the specification for ui-plugin.
Built-in Pipboard
Pipcook will provide a built-in web launcher and we name it as Pipboard as discussed in #29 , Basically default Pipboard will provide access to build pipeline, check logs and models. The basic structure is shown as below:
Customized UI Plugin
Customized user-interface plugin still belongs to pipcook plugin ecosystem (refer to #17 ). Currently plugins are categorized into:
Now for UI plugin, we will add the 8th category:
After the UI plugin is used, Pipboard will incorporate its user-interface into itself. For example, if a plugin called 'customize-demo' is developed, Pipboard will be shown as below and the content area will show contents of this plugin.
UI Plugin Developer Guide
The specification for UI plugin is as follows:
In case the UI will need to do some basic operations on local file system, we will provide several basic APIs to achieve this:
How to use UI Plugin
The user can follow these steps to use a specific plugin
I will provide a example plugin later on
Please help me have a review on this proposal @yorkie @wordcount