forked from phoenix-oss/llama-stack-mirror
chore: add subcommands description in help (#1219)
# What does this PR do? [Provide a short summary of what this PR does and why. Link to relevant issues if applicable.] ``` before: $ llama usage: llama [-h] {model,stack,download,verify-download} ... Welcome to the Llama CLI options: -h, --help show this help message and exit subcommands: {model,stack,download,verify-download} $ llama model --help usage: llama model [-h] {download,list,prompt-format,describe,verify-download,remove} ... Work with llama models options: -h, --help show this help message and exit model_subcommands: {download,list,prompt-format,describe,verify-download,remove} $ llama stack --help usage: llama stack [-h] [--version] {build,list-apis,list-providers,run} ... Operations for the Llama Stack / Distributions options: -h, --help show this help message and exit --version show program's version number and exit stack_subcommands: {build,list-apis,list-providers,run} =================== after: $ llama usage: llama [-h] {model,stack,download,verify-download} ... Welcome to the Llama CLI options: -h, --help show this help message and exit subcommands: {model,stack,download,verify-download} model Work with llama models stack Operations for the Llama Stack / Distributions download Download a model from llama.meta.com or Hugging Face Hub verify-download Verify integrity of downloaded model files $ llama model --help usage: llama model [-h] {download,list,prompt-format,describe,verify-download,remove} ... Work with llama models options: -h, --help show this help message and exit model_subcommands: {download,list,prompt-format,describe,verify-download,remove} download Download a model from llama.meta.com or Hugging Face Hub list Show available llama models prompt-format Show llama model message formats describe Show details about a llama model verify-download Verify the downloaded checkpoints' checksums for models downloaded from Meta remove Remove the downloaded llama model $ llama stack --help usage: llama stack [-h] [--version] {build,list-apis,list-providers,run} ... Operations for the Llama Stack / Distributions options: -h, --help show this help message and exit --version show program's version number and exit stack_subcommands: {build,list-apis,list-providers,run} build Build a Llama stack container list-apis List APIs part of the Llama Stack implementation list-providers Show available Llama Stack Providers for an API run Start the server for a Llama Stack Distribution. You should have already built (or downloaded) and configured the distribution. ``` [//]: # (If resolving an issue, uncomment and update the line below) [//]: # (Closes #[issue-number]) ## Test Plan [Describe the tests you ran to verify your changes with result summaries. *Provide clear instructions so the plan can be easily re-executed.*] [//]: # (## Documentation) --------- Signed-off-by: reidliu <reid201711@gmail.com> Co-authored-by: reidliu <reid201711@gmail.com>
This commit is contained in:
parent
e28cedd833
commit
94e2186bb8
4 changed files with 26 additions and 0 deletions
|
@ -9,6 +9,7 @@ import argparse
|
||||||
from .download import Download
|
from .download import Download
|
||||||
from .model import ModelParser
|
from .model import ModelParser
|
||||||
from .stack import StackParser
|
from .stack import StackParser
|
||||||
|
from .utils import print_subcommand_description
|
||||||
from .verify_download import VerifyDownload
|
from .verify_download import VerifyDownload
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +21,7 @@ class LlamaCLIParser:
|
||||||
prog="llama",
|
prog="llama",
|
||||||
description="Welcome to the Llama CLI",
|
description="Welcome to the Llama CLI",
|
||||||
add_help=True,
|
add_help=True,
|
||||||
|
formatter_class=argparse.RawTextHelpFormatter,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Default command is to print help
|
# Default command is to print help
|
||||||
|
@ -33,6 +35,8 @@ class LlamaCLIParser:
|
||||||
Download.create(subparsers)
|
Download.create(subparsers)
|
||||||
VerifyDownload.create(subparsers)
|
VerifyDownload.create(subparsers)
|
||||||
|
|
||||||
|
print_subcommand_description(self.parser, subparsers)
|
||||||
|
|
||||||
def parse_args(self) -> argparse.Namespace:
|
def parse_args(self) -> argparse.Namespace:
|
||||||
return self.parser.parse_args()
|
return self.parser.parse_args()
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ from llama_stack.cli.model.prompt_format import ModelPromptFormat
|
||||||
from llama_stack.cli.model.remove import ModelRemove
|
from llama_stack.cli.model.remove import ModelRemove
|
||||||
from llama_stack.cli.model.verify_download import ModelVerifyDownload
|
from llama_stack.cli.model.verify_download import ModelVerifyDownload
|
||||||
from llama_stack.cli.subcommand import Subcommand
|
from llama_stack.cli.subcommand import Subcommand
|
||||||
|
from llama_stack.cli.utils import print_subcommand_description
|
||||||
|
|
||||||
|
|
||||||
class ModelParser(Subcommand):
|
class ModelParser(Subcommand):
|
||||||
|
@ -24,6 +25,7 @@ class ModelParser(Subcommand):
|
||||||
"model",
|
"model",
|
||||||
prog="llama model",
|
prog="llama model",
|
||||||
description="Work with llama models",
|
description="Work with llama models",
|
||||||
|
formatter_class=argparse.RawTextHelpFormatter,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.parser.set_defaults(func=lambda args: self.parser.print_help())
|
self.parser.set_defaults(func=lambda args: self.parser.print_help())
|
||||||
|
@ -37,3 +39,5 @@ class ModelParser(Subcommand):
|
||||||
ModelDescribe.create(subparsers)
|
ModelDescribe.create(subparsers)
|
||||||
ModelVerifyDownload.create(subparsers)
|
ModelVerifyDownload.create(subparsers)
|
||||||
ModelRemove.create(subparsers)
|
ModelRemove.create(subparsers)
|
||||||
|
|
||||||
|
print_subcommand_description(self.parser, subparsers)
|
||||||
|
|
|
@ -8,6 +8,7 @@ import argparse
|
||||||
from importlib.metadata import version
|
from importlib.metadata import version
|
||||||
|
|
||||||
from llama_stack.cli.subcommand import Subcommand
|
from llama_stack.cli.subcommand import Subcommand
|
||||||
|
from llama_stack.cli.utils import print_subcommand_description
|
||||||
|
|
||||||
from .build import StackBuild
|
from .build import StackBuild
|
||||||
from .list_apis import StackListApis
|
from .list_apis import StackListApis
|
||||||
|
@ -22,6 +23,7 @@ class StackParser(Subcommand):
|
||||||
"stack",
|
"stack",
|
||||||
prog="llama stack",
|
prog="llama stack",
|
||||||
description="Operations for the Llama Stack / Distributions",
|
description="Operations for the Llama Stack / Distributions",
|
||||||
|
formatter_class=argparse.RawTextHelpFormatter,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.parser.add_argument(
|
self.parser.add_argument(
|
||||||
|
@ -39,3 +41,5 @@ class StackParser(Subcommand):
|
||||||
StackListApis.create(subparsers)
|
StackListApis.create(subparsers)
|
||||||
StackListProviders.create(subparsers)
|
StackListProviders.create(subparsers)
|
||||||
StackRun.create(subparsers)
|
StackRun.create(subparsers)
|
||||||
|
|
||||||
|
print_subcommand_description(self.parser, subparsers)
|
||||||
|
|
14
llama_stack/cli/stack/utils.py
Normal file
14
llama_stack/cli/stack/utils.py
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This source code is licensed under the terms described in the LICENSE file in
|
||||||
|
# the root directory of this source tree.
|
||||||
|
|
||||||
|
|
||||||
|
def print_subcommand_description(parser, subparsers):
|
||||||
|
"""Print descriptions of subcommands."""
|
||||||
|
description_text = ""
|
||||||
|
for name, subcommand in subparsers.choices.items():
|
||||||
|
description = subcommand.description
|
||||||
|
description_text += f" {name:<21} {description}\n"
|
||||||
|
parser.epilog = description_text
|
Loading…
Add table
Add a link
Reference in a new issue