Spaces:
Build error
Build error
<script> | |
import { v4 as uuidv4 } from 'uuid'; | |
import { toast } from 'svelte-sonner'; | |
import { goto } from '$app/navigation'; | |
import { models } from '$lib/stores'; | |
import { onMount, tick, getContext } from 'svelte'; | |
import { createNewModel, getModelById } from '$lib/apis/models'; | |
import { getModels } from '$lib/apis'; | |
import ModelEditor from '$lib/components/workspace/Models/ModelEditor.svelte'; | |
const i18n = getContext('i18n'); | |
const onSubmit = async (modelInfo) => { | |
if ($models.find((m) => m.id === modelInfo.id)) { | |
toast.error( | |
`Error: A model with the ID '${modelInfo.id}' already exists. Please select a different ID to proceed.` | |
); | |
return; | |
} | |
if (modelInfo.id === '') { | |
toast.error('Error: Model ID cannot be empty. Please enter a valid ID to proceed.'); | |
return; | |
} | |
if (modelInfo) { | |
const res = await createNewModel(localStorage.token, { | |
...modelInfo, | |
meta: { | |
...modelInfo.meta, | |
profile_image_url: modelInfo.meta.profile_image_url ?? '/static/favicon.png', | |
suggestion_prompts: modelInfo.meta.suggestion_prompts | |
? modelInfo.meta.suggestion_prompts.filter((prompt) => prompt.content !== '') | |
: null | |
}, | |
params: { ...modelInfo.params } | |
}).catch((error) => { | |
toast.error(error); | |
return null; | |
}); | |
if (res) { | |
await models.set(await getModels(localStorage.token)); | |
toast.success($i18n.t('Model created successfully!')); | |
await goto('/workspace/models'); | |
} | |
} | |
}; | |
let model = null; | |
onMount(async () => { | |
window.addEventListener('message', async (event) => { | |
if ( | |
!['https://openwebui.com', 'https://www.openwebui.com', 'http://localhost:5173'].includes( | |
event.origin | |
) | |
) | |
return; | |
model = JSON.parse(event.data); | |
}); | |
if (window.opener ?? false) { | |
window.opener.postMessage('loaded', '*'); | |
} | |
if (sessionStorage.model) { | |
model = JSON.parse(sessionStorage.model); | |
sessionStorage.removeItem('model'); | |
} | |
}); | |
</script> | |
{#key model} | |
<ModelEditor {model} {onSubmit} /> | |
{/key} | |