mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-23 12:21:08 +00:00
224 lines
5.7 KiB
Python
224 lines
5.7 KiB
Python
import copy
|
|
import logging
|
|
|
|
import click
|
|
|
|
logging.basicConfig(
|
|
level=logging.WARNING,
|
|
encoding="utf-8",
|
|
format="%(asctime)s | %(name)s | %(levelname)s | %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
|
|
logger = logging.getLogger("dbgpt_cli")
|
|
|
|
|
|
@click.group()
|
|
@click.option(
|
|
"--log-level",
|
|
required=False,
|
|
type=str,
|
|
default="warn",
|
|
help="Log level",
|
|
)
|
|
@click.version_option()
|
|
def cli(log_level: str):
|
|
logger.setLevel(logging.getLevelName(log_level.upper()))
|
|
|
|
|
|
def add_command_alias(command, name: str, hidden: bool = False, parent_group=None):
|
|
if not parent_group:
|
|
parent_group = cli
|
|
new_command = copy.deepcopy(command)
|
|
new_command.hidden = hidden
|
|
parent_group.add_command(new_command, name=name)
|
|
|
|
|
|
@click.group()
|
|
def start():
|
|
"""Start specific server."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def stop():
|
|
"""Start specific server."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def install():
|
|
"""Install dependencies, plugins, etc."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def db():
|
|
"""Manage your metadata database and your datasources."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def new():
|
|
"""New a template."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def app():
|
|
"""Manage your apps(dbgpts)."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def repo():
|
|
"""The repository to install the dbgpts from."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def run():
|
|
"""Run your dbgpts."""
|
|
pass
|
|
|
|
|
|
@click.group()
|
|
def net():
|
|
"""Net tools."""
|
|
pass
|
|
|
|
|
|
stop_all_func_list = []
|
|
|
|
|
|
@click.command(name="all")
|
|
def stop_all():
|
|
"""Stop all servers"""
|
|
for stop_func in stop_all_func_list:
|
|
stop_func()
|
|
|
|
|
|
cli.add_command(start)
|
|
cli.add_command(stop)
|
|
cli.add_command(install)
|
|
cli.add_command(db)
|
|
cli.add_command(new)
|
|
cli.add_command(app)
|
|
cli.add_command(repo)
|
|
cli.add_command(run)
|
|
cli.add_command(net)
|
|
add_command_alias(stop_all, name="all", parent_group=stop)
|
|
|
|
try:
|
|
from dbgpt.model.cli import (
|
|
_stop_all_model_server,
|
|
model_cli_group,
|
|
start_apiserver,
|
|
start_model_controller,
|
|
start_model_worker,
|
|
stop_apiserver,
|
|
stop_model_controller,
|
|
stop_model_worker,
|
|
)
|
|
|
|
add_command_alias(model_cli_group, name="model", parent_group=cli)
|
|
add_command_alias(start_model_controller, name="controller", parent_group=start)
|
|
add_command_alias(start_model_worker, name="worker", parent_group=start)
|
|
add_command_alias(start_apiserver, name="apiserver", parent_group=start)
|
|
|
|
add_command_alias(stop_model_controller, name="controller", parent_group=stop)
|
|
add_command_alias(stop_model_worker, name="worker", parent_group=stop)
|
|
add_command_alias(stop_apiserver, name="apiserver", parent_group=stop)
|
|
stop_all_func_list.append(_stop_all_model_server)
|
|
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt model command line tool failed: {e}")
|
|
|
|
try:
|
|
from dbgpt.app._cli import (
|
|
_stop_all_dbgpt_server,
|
|
migration,
|
|
start_webserver,
|
|
stop_webserver,
|
|
)
|
|
|
|
add_command_alias(start_webserver, name="webserver", parent_group=start)
|
|
add_command_alias(stop_webserver, name="webserver", parent_group=stop)
|
|
# Add migration command
|
|
add_command_alias(migration, name="migration", parent_group=db)
|
|
stop_all_func_list.append(_stop_all_dbgpt_server)
|
|
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt webserver command line tool failed: {e}")
|
|
|
|
try:
|
|
from dbgpt.app.knowledge._cli.knowledge_cli import knowledge_cli_group
|
|
|
|
add_command_alias(knowledge_cli_group, name="knowledge", parent_group=cli)
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt knowledge command line tool failed: {e}")
|
|
|
|
|
|
try:
|
|
from dbgpt.util.tracer.tracer_cli import trace_cli_group
|
|
|
|
add_command_alias(trace_cli_group, name="trace", parent_group=cli)
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt trace command line tool failed: {e}")
|
|
|
|
try:
|
|
from dbgpt.serve.utils.cli import serve
|
|
|
|
add_command_alias(serve, name="serve", parent_group=new)
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt serve command line tool failed: {e}")
|
|
|
|
|
|
try:
|
|
from dbgpt.util.dbgpts.cli import add_repo
|
|
from dbgpt.util.dbgpts.cli import install as app_install
|
|
from dbgpt.util.dbgpts.cli import list_all_apps as app_list_remote
|
|
from dbgpt.util.dbgpts.cli import (
|
|
list_installed_apps,
|
|
list_repos,
|
|
new_dbgpts,
|
|
remove_repo,
|
|
)
|
|
from dbgpt.util.dbgpts.cli import uninstall as app_uninstall
|
|
from dbgpt.util.dbgpts.cli import update_repo
|
|
|
|
add_command_alias(list_repos, name="list", parent_group=repo)
|
|
add_command_alias(add_repo, name="add", parent_group=repo)
|
|
add_command_alias(remove_repo, name="remove", parent_group=repo)
|
|
add_command_alias(update_repo, name="update", parent_group=repo)
|
|
add_command_alias(app_install, name="install", parent_group=app)
|
|
add_command_alias(app_uninstall, name="uninstall", parent_group=app)
|
|
add_command_alias(app_list_remote, name="list-remote", parent_group=app)
|
|
add_command_alias(list_installed_apps, name="list", parent_group=app)
|
|
add_command_alias(new_dbgpts, name="app", parent_group=new)
|
|
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt dbgpts command line tool failed: {e}")
|
|
|
|
try:
|
|
from dbgpt.client._cli import flow as run_flow
|
|
|
|
add_command_alias(run_flow, name="flow", parent_group=run)
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt client command line tool failed: {e}")
|
|
|
|
try:
|
|
from dbgpt.util.network._cli import start_forward
|
|
|
|
add_command_alias(start_forward, name="forward", parent_group=net)
|
|
except ImportError as e:
|
|
logging.warning(f"Integrating dbgpt net command line tool failed: {e}")
|
|
|
|
|
|
def main():
|
|
return cli()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|