enh: new ollama create model method

This commit is contained in:
Timothy Jaeryang Baek 2025-01-22 12:36:18 -08:00
parent 8380d3f5ae
commit f4b5039adf
2 changed files with 28 additions and 8 deletions

View File

@ -551,11 +551,12 @@ async def push_model(
class CreateModelForm(BaseModel):
name: str
modelfile: Optional[str] = None
model: Optional[str] = None
stream: Optional[bool] = None
path: Optional[str] = None
model_config = ConfigDict(extra="allow")
@router.post("/api/create")
@router.post("/api/create/{url_idx}")

View File

@ -44,7 +44,8 @@
let modelTag = '';
let createModelLoading = false;
let createModelObject = {};
let createModelName = '';
let createModelObject = '';
let createModelDigest = '';
let createModelPullProgress = null;
@ -428,7 +429,24 @@
const createModelHandler = async () => {
createModelLoading = true;
const res = await createModel(localStorage.token, createModelObject, urlIdx).catch((error) => {
let modelObject = {};
// parse createModelObject
try {
modelObject = JSON.parse(createModelObject);
} catch (error) {
toast.error(`${error}`);
createModelLoading = false;
return;
}
const res = await createModel(
localStorage.token,
{
model: createModelName,
...modelObject
},
urlIdx
).catch((error) => {
toast.error(`${error}`);
return null;
});
@ -492,7 +510,8 @@
createModelLoading = false;
createModelObject = {};
createModelName = '';
createModelObject = '';
createModelDigest = '';
createModelPullProgress = null;
};
@ -746,15 +765,15 @@
placeholder={$i18n.t('Enter model tag (e.g. {{modelTag}})', {
modelTag: 'my-modelfile'
})}
bind:value={createModelObject.model}
bind:value={createModelName}
disabled={createModelLoading}
/>
<textarea
bind:value={createModelObject.content}
bind:value={createModelObject}
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-100 dark:bg-gray-850 outline-none resize-none scrollbar-hidden"
rows="6"
placeholder={`TEMPLATE """{{ .System }}\nUSER: {{ .Prompt }}\nASSISTANT: """\nPARAMETER num_ctx 4096\nPARAMETER stop "</s>"\nPARAMETER stop "USER:"\nPARAMETER stop "ASSISTANT:"`}
placeholder={`e.g. {"model": "my-modelfile", "from": "ollama:7b"})`}
disabled={createModelLoading}
/>
</div>