James 6f50424917 allow user to query for HF models
Signed-off-by: James <james@jan.ai>
2023-10-06 16:46:47 +07:00

58 lines
1.8 KiB
JavaScript

const MODULE_PATH = "model-management-plugin/dist/module.js";
const getDownloadedModels = async () =>
new Promise(async (resolve) => {
if (window.electronAPI) {
window.electronAPI
.invokePluginFunc(MODULE_PATH, "getDownloadedModels")
.then((res) => resolve(res));
}
});
const getAvailableModels = async () =>
new Promise(async (resolve) => {
if (window.electronAPI) {
window.electronAPI
.invokePluginFunc(MODULE_PATH, "getAvailableModels")
.then((res) => resolve(res));
}
});
const downloadModel = async (product) =>
new Promise(async (resolve) => {
if (window && window.electronAPI) {
window.electronAPI
.downloadFile(product.downloadUrl, product.fileName)
.then((res) => resolve(res));
} else {
resolve("-");
}
});
const deleteModel = async (path) =>
new Promise(async (resolve) => {
if (window.electronAPI) {
console.debug(`Delete model model management plugin: ${path}`);
const response = await window.electronAPI.deleteFile(path);
resolve(response);
}
});
const searchHfModels = async (params) =>
new Promise(async (resolve) => {
if (window.electronAPI) {
window.electronAPI
.invokePluginFunc(MODULE_PATH, "searchHfModels", params)
.then((res) => resolve(res));
}
});
// Register all the above functions and objects with the relevant extension points
export function init({ register }) {
register("getDownloadedModels", "getDownloadedModels", getDownloadedModels);
register("getAvailableModels", "getAvailableModels", getAvailableModels);
register("downloadModel", "downloadModel", downloadModel);
register("deleteModel", "deleteModel", deleteModel);
register("searchHfModels", "searchHfModels", searchHfModels);
}