create api

This commit is contained in:
Patrick Devine 2025-01-12 22:48:16 -08:00
parent ee349ecc6d
commit 427b0c6291
2 changed files with 44 additions and 19 deletions

View File

@ -476,10 +476,16 @@ class Client(BaseClient):
def create( def create(
self, self,
model: str, model: str,
path: Optional[Union[str, PathLike]] = None,
modelfile: Optional[str] = None,
*,
quantize: Optional[str] = None, quantize: Optional[str] = None,
from_: Optional[str] = None,
files: Optional[dict[str, str]] = None,
adapters: Optional[dict[str, str]] = None,
template: Optional[str] = None,
license: Optional[Union[str, list[str]]] = None,
system: Optional[str] = None,
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
*,
stream: Literal[False] = False, stream: Literal[False] = False,
) -> ProgressResponse: ... ) -> ProgressResponse: ...
@ -487,20 +493,32 @@ class Client(BaseClient):
def create( def create(
self, self,
model: str, model: str,
path: Optional[Union[str, PathLike]] = None,
modelfile: Optional[str] = None,
*,
quantize: Optional[str] = None, quantize: Optional[str] = None,
from_: Optional[str] = None,
files: Optional[dict[str, str]] = None,
adapters: Optional[dict[str, str]] = None,
template: Optional[str] = None,
license: Optional[Union[str, list[str]]] = None,
system: Optional[str] = None,
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
*,
stream: Literal[True] = True, stream: Literal[True] = True,
) -> Iterator[ProgressResponse]: ... ) -> Iterator[ProgressResponse]: ...
def create( def create(
self, self,
model: str, model: str,
path: Optional[Union[str, PathLike]] = None,
modelfile: Optional[str] = None,
*,
quantize: Optional[str] = None, quantize: Optional[str] = None,
from_: Optional[str] = None,
files: Optional[dict[str, str]] = None,
adapters: Optional[dict[str, str]] = None,
template: Optional[str] = None,
license: Optional[Union[str, list[str]]] = None,
system: Optional[str] = None,
parameters: Optional[Union[Mapping[str, Any], Options]] = None,
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None,
*,
stream: bool = False, stream: bool = False,
) -> Union[ProgressResponse, Iterator[ProgressResponse]]: ) -> Union[ProgressResponse, Iterator[ProgressResponse]]:
""" """
@ -508,12 +526,8 @@ class Client(BaseClient):
Returns `ProgressResponse` if `stream` is `False`, otherwise returns a `ProgressResponse` generator. Returns `ProgressResponse` if `stream` is `False`, otherwise returns a `ProgressResponse` generator.
""" """
if (realpath := _as_path(path)) and realpath.exists(): #if from_ == None and files == None:
modelfile = self._parse_modelfile(realpath.read_text(), base=realpath.parent) # raise RequestError('neither ''from'' or ''files'' was specified')
elif modelfile:
modelfile = self._parse_modelfile(modelfile)
else:
raise RequestError('must provide either path or modelfile')
return self._request( return self._request(
ProgressResponse, ProgressResponse,
@ -521,9 +535,15 @@ class Client(BaseClient):
'/api/create', '/api/create',
json=CreateRequest( json=CreateRequest(
model=model, model=model,
modelfile=modelfile,
stream=stream, stream=stream,
quantize=quantize, quantize=quantize,
from_=from_,
files=files,
adapters=adapters,
license=license,
system=system,
parameters=parameters,
messages=messages,
).model_dump(exclude_none=True), ).model_dump(exclude_none=True),
stream=stream, stream=stream,
) )

View File

@ -404,10 +404,15 @@ class CreateRequest(BaseStreamableRequest):
""" """
Request to create a new model. Request to create a new model.
""" """
modelfile: Optional[str] = None
quantize: Optional[str] = None quantize: Optional[str] = None
from_: Optional[str] = None
files: Optional[dict[str, str]] = None
adapters: Optional[dict[str, str]] = None
template: Optional[str] = None
license: Optional[Union[str, list[str]]] = None
system: Optional[str] = None
parameters: Optional[Union[Mapping[str, Any], Options]] = None
messages: Optional[Sequence[Union[Mapping[str, Any], Message]]] = None
class ModelDetails(SubscriptableBaseModel): class ModelDetails(SubscriptableBaseModel):