Skip to content

Commit 427b0c6

Browse files
committed
create api
1 parent ee349ec commit 427b0c6

File tree

2 files changed

+44
-19
lines changed

2 files changed

+44
-19
lines changed

ollama/_client.py

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -476,54 +476,74 @@ def push(
476476
def create(
477477
self,
478478
model: str,
479-
path: Optional[Union[str, PathLike]] = None,
480-
modelfile: Optional[str] = None,
481-
*,
482479
quantize: Optional[str] = None,
480+
from_: Optional[str] = None,
481+
files: Optional[dict[str, str]] = None,
482+
adapters: Optional[dict[str, str]] = None,
483+
template: Optional[str] = None,
484+
license: Optional[Union[str, list[str]]] = None,
485+
system: Optional[str] = None,
486+
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
487+
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
488+
*,
483489
stream: Literal[False] = False,
484490
) -> ProgressResponse: ...
485491

486492
@overload
487493
def create(
488494
self,
489495
model: str,
490-
path: Optional[Union[str, PathLike]] = None,
491-
modelfile: Optional[str] = None,
492-
*,
493496
quantize: Optional[str] = None,
497+
from_: Optional[str] = None,
498+
files: Optional[dict[str, str]] = None,
499+
adapters: Optional[dict[str, str]] = None,
500+
template: Optional[str] = None,
501+
license: Optional[Union[str, list[str]]] = None,
502+
system: Optional[str] = None,
503+
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
504+
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
505+
*,
494506
stream: Literal[True] = True,
495507
) -> Iterator[ProgressResponse]: ...
496508

497509
def create(
498510
self,
499511
model: str,
500-
path: Optional[Union[str, PathLike]] = None,
501-
modelfile: Optional[str] = None,
502-
*,
503512
quantize: Optional[str] = None,
513+
from_: Optional[str] = None,
514+
files: Optional[dict[str, str]] = None,
515+
adapters: Optional[dict[str, str]] = None,
516+
template: Optional[str] = None,
517+
license: Optional[Union[str, list[str]]] = None,
518+
system: Optional[str] = None,
519+
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
520+
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
521+
*,
504522
stream: bool = False,
505523
) -> Union[ProgressResponse, Iterator[ProgressResponse]]:
506524
"""
507525
Raises `ResponseError` if the request could not be fulfilled.
508526
509527
Returns `ProgressResponse` if `stream` is `False`, otherwise returns a `ProgressResponse` generator.
510528
"""
511-
if (realpath := _as_path(path)) and realpath.exists():
512-
modelfile = self._parse_modelfile(realpath.read_text(), base=realpath.parent)
513-
elif modelfile:
514-
modelfile = self._parse_modelfile(modelfile)
515-
else:
516-
raise RequestError('must provide either path or modelfile')
529+
#if from_ == None and files == None:
530+
# raise RequestError('neither ''from'' or ''files'' was specified')
517531

518532
return self._request(
519533
ProgressResponse,
520534
'POST',
521535
'/api/create',
522536
json=CreateRequest(
523537
model=model,
524-
modelfile=modelfile,
525538
stream=stream,
526539
quantize=quantize,
540+
from_=from_,
541+
files=files,
542+
adapters=adapters,
543+
license=license,
544+
system=system,
545+
parameters=parameters,
546+
messages=messages,
527547
).model_dump(exclude_none=True),
528548
stream=stream,
529549
)

ollama/_types.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -404,10 +404,15 @@ class CreateRequest(BaseStreamableRequest):
404404
"""
405405
Request to create a new model.
406406
"""
407-
408-
modelfile: Optional[str] = None
409-
410407
quantize: Optional[str] = None
408+
from_: Optional[str] = None
409+
files: Optional[dict[str, str]] = None
410+
adapters: Optional[dict[str, str]] = None
411+
template: Optional[str] = None
412+
license: Optional[Union[str, list[str]]] = None
413+
system: Optional[str] = None
414+
parameters: Optional[Union[Mapping[str, Any], Options]] = None
415+
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None
411416

412417

413418
class ModelDetails(SubscriptableBaseModel):

0 commit comments

Comments
 (0)