main
1from __future__ import annotations
2
3from typing import TYPE_CHECKING
4from argparse import ArgumentParser
5
6from .._utils import get_client, print_model
7from .._models import BaseModel
8
9if TYPE_CHECKING:
10 from argparse import _SubParsersAction
11
12
13def register(subparser: _SubParsersAction[ArgumentParser]) -> None:
14 sub = subparser.add_parser("models.list")
15 sub.set_defaults(func=CLIModels.list)
16
17 sub = subparser.add_parser("models.retrieve")
18 sub.add_argument("-i", "--id", required=True, help="The model ID")
19 sub.set_defaults(func=CLIModels.get, args_model=CLIModelIDArgs)
20
21 sub = subparser.add_parser("models.delete")
22 sub.add_argument("-i", "--id", required=True, help="The model ID")
23 sub.set_defaults(func=CLIModels.delete, args_model=CLIModelIDArgs)
24
25
26class CLIModelIDArgs(BaseModel):
27 id: str
28
29
30class CLIModels:
31 @staticmethod
32 def get(args: CLIModelIDArgs) -> None:
33 model = get_client().models.retrieve(model=args.id)
34 print_model(model)
35
36 @staticmethod
37 def delete(args: CLIModelIDArgs) -> None:
38 model = get_client().models.delete(model=args.id)
39 print_model(model)
40
41 @staticmethod
42 def list() -> None:
43 models = get_client().models.list()
44 for model in models:
45 print_model(model)