feat: ollamahub modelfile import

This commit is contained in:
Timothy J. Baek 2023-12-03 23:44:12 -08:00
parent 6df1b197aa
commit cbcce68c61
3 changed files with 56 additions and 18 deletions

View file

@ -103,7 +103,7 @@
<a <a
class=" w-fit text-sm px-3 py-2 border dark:border-gray-600 rounded-xl" class=" w-fit text-sm px-3 py-2 border dark:border-gray-600 rounded-xl"
type="button" type="button"
href={`/modelfiles/edit/${modelfile.tagName}`} href={`/modelfiles/edit?tag=${modelfile.tagName}`}
> >
Edit</a Edit</a
> >

View file

@ -7,6 +7,7 @@
import Advanced from '$lib/components/chat/Settings/Advanced.svelte'; import Advanced from '$lib/components/chat/Settings/Advanced.svelte';
import { splitStream } from '$lib/utils'; import { splitStream } from '$lib/utils';
import { onMount, tick } from 'svelte';
let loading = false; let loading = false;
@ -209,6 +210,39 @@ SYSTEM """${system}"""`.replace(/^\s*\n/gm, '');
loading = false; loading = false;
success = false; success = false;
}; };
onMount(() => {
window.addEventListener('message', async (event) => {
if (
!['https://ollamahub.com', 'https://www.ollamahub.com', 'http://localhost:5173'].includes(
event.origin
)
)
return;
const modelfile = JSON.parse(event.data);
console.log(modelfile);
imageUrl = modelfile.imageUrl;
title = modelfile.title;
await tick();
tagName = `${modelfile.user.username}/${modelfile.tagName}`;
desc = modelfile.desc;
content = modelfile.content;
suggestions =
modelfile.suggestionPrompts.length != 0
? modelfile.suggestionPrompts
: [
{
content: ''
}
];
for (const category of modelfile.categories) {
categories[category.toLowerCase()] = true;
}
});
window.opener.postMessage('loaded', '*');
});
</script> </script>
<div class="min-h-screen w-full flex justify-center dark:text-white"> <div class="min-h-screen w-full flex justify-center dark:text-white">

View file

@ -50,27 +50,31 @@
}; };
onMount(() => { onMount(() => {
tagName = $page.params.tag; tagName = $page.url.searchParams.get('tag');
modelfile = $modelfiles.filter((modelfile) => modelfile.tagName === tagName)[0]; if (tagName) {
modelfile = $modelfiles.filter((modelfile) => modelfile.tagName === tagName)[0];
console.log(modelfile); console.log(modelfile);
imageUrl = modelfile.imageUrl; imageUrl = modelfile.imageUrl;
title = modelfile.title; title = modelfile.title;
desc = modelfile.desc; desc = modelfile.desc;
content = modelfile.content; content = modelfile.content;
suggestions = suggestions =
modelfile.suggestionPrompts.length != 0 modelfile.suggestionPrompts.length != 0
? modelfile.suggestionPrompts ? modelfile.suggestionPrompts
: [ : [
{ {
content: '' content: ''
} }
]; ];
for (const category of modelfile.categories) { for (const category of modelfile.categories) {
categories[category.toLowerCase()] = true; categories[category.toLowerCase()] = true;
}
} else {
goto('/modelfiles');
} }
}); });