qbraid-cli 0.9.1__tar.gz → 0.9.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qbraid-cli might be problematic. Click here for more details.
- {qbraid_cli-0.9.1/qbraid_cli.egg-info → qbraid_cli-0.9.2}/PKG-INFO +3 -2
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/pyproject.toml +3 -2
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/_version.py +2 -2
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/account/app.py +1 -1
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/admin/app.py +3 -1
- qbraid_cli-0.9.2/qbraid_cli/chat/__init__.py +11 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/chat/app.py +26 -46
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/devices/app.py +1 -1
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/envs/app.py +1 -1
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/jobs/app.py +1 -1
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/kernels/app.py +1 -1
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/main.py +39 -10
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/pip/app.py +1 -2
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2/qbraid_cli.egg-info}/PKG-INFO +3 -2
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli.egg-info/requires.txt +2 -1
- qbraid_cli-0.9.1/qbraid_cli/chat/__init__.py +0 -11
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.env.example +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/bump-version.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/docs-pr.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/docs.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/format.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/main.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/pre-release.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/publish.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.github/workflows/tag-on-merge.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.gitignore +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/.readthedocs.yml +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/CONTRIBUTING.md +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/LICENSE +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/MANIFEST.IN +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/Makefile +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/README.md +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/Makefile +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/_static/favicon.ico +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/_static/logo.png +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/_static/style/custom.css +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/_static/style/s4defs-roles.css +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/conf.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/index.rst +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/make.bat +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/docs/requirements.txt +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/account/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/admin/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/admin/headers.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/admin/validation.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/configure/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/configure/actions.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/configure/app.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/devices/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/devices/validation.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/envs/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/envs/activate.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/envs/create.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/envs/data_handling.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/exceptions.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/handlers.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/jobs/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/jobs/toggle_braket.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/jobs/validation.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/kernels/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/pip/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/pip/hooks.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli.egg-info/SOURCES.txt +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/setup.cfg +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/account/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/account/test_account_credits.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/admin/test_headers.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/configure/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/configure/test_configure_prompt_for_config.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/configure/test_configure_set.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/configure/test_configure_validate_input.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/conftest.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/devices/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/devices/test_devices_list.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/devices/test_devices_validations.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_activate.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_activate_find_shell_rc.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_activate_print_command.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_activate_pyenv.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_list.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/envs/test_envs_remove.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_disable.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_enable.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_list.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_state.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_toggle_braket_confirm.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_toggle_braket_disable.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_toggle_braket_enable.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_toggle_braket_get_data.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_validate_get_state.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_validate_handle_state.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/jobs/test_jobs_validate_library.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/kernels/__init__.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tests/kernels/test_kernels_list.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/bump_version.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/create_dev_build.sh +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/install_wheel_extras.sh +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/split_md.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/split_rst.py +0 -0
- {qbraid_cli-0.9.1 → qbraid_cli-0.9.2}/tools/stamp_pre_release.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Command Line Interface for interacting with all parts of the qBraid platform.
|
|
5
5
|
Author-email: qBraid Development Team <contact@qbraid.com>
|
|
6
6
|
License: Proprietary
|
|
@@ -29,7 +29,8 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
License-File: LICENSE
|
|
30
30
|
Requires-Dist: typer>=0.12.1
|
|
31
31
|
Requires-Dist: rich>=10.11.0
|
|
32
|
-
Requires-Dist:
|
|
32
|
+
Requires-Dist: click
|
|
33
|
+
Requires-Dist: qbraid-core>=0.1.31
|
|
33
34
|
Provides-Extra: jobs
|
|
34
35
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
36
|
Provides-Extra: envs
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "qbraid-cli"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.2"
|
|
8
8
|
description = "Command Line Interface for interacting with all parts of the qBraid platform."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "qBraid Development Team", email = "contact@qbraid.com" }]
|
|
@@ -30,7 +30,8 @@ classifiers = [
|
|
|
30
30
|
dependencies = [
|
|
31
31
|
"typer>=0.12.1",
|
|
32
32
|
"rich>=10.11.0",
|
|
33
|
-
"
|
|
33
|
+
"click",
|
|
34
|
+
"qbraid-core>=0.1.31",
|
|
34
35
|
]
|
|
35
36
|
requires-python = ">= 3.9"
|
|
36
37
|
|
|
@@ -12,5 +12,5 @@ __version__: str
|
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
|
13
13
|
version_tuple: VERSION_TUPLE
|
|
14
14
|
|
|
15
|
-
__version__ = version = '0.1.dev1+
|
|
16
|
-
__version_tuple__ = version_tuple = (0, 1, 'dev1', '
|
|
15
|
+
__version__ = version = '0.1.dev1+gd39b277'
|
|
16
|
+
__version_tuple__ = version_tuple = (0, 1, 'dev1', 'gd39b277')
|
|
@@ -14,7 +14,9 @@ from qbraid_cli.admin.headers import check_and_fix_headers
|
|
|
14
14
|
from qbraid_cli.admin.validation import validate_header_type, validate_paths_exist
|
|
15
15
|
|
|
16
16
|
admin_app = typer.Typer(
|
|
17
|
-
help="CI/CD commands for qBraid maintainers.",
|
|
17
|
+
help="CI/CD commands for qBraid maintainers.",
|
|
18
|
+
pretty_exceptions_show_locals=False,
|
|
19
|
+
no_args_is_help=True,
|
|
18
20
|
)
|
|
19
21
|
|
|
20
22
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Copyright (c) 2024, qBraid Development Team
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Module defining the qbraid chat namespace
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from .app import ChatFormat, list_models_callback, prompt_callback
|
|
10
|
+
|
|
11
|
+
__all__ = ["list_models_callback", "prompt_callback", "ChatFormat"]
|
|
@@ -7,16 +7,11 @@ Module defining commands in the 'qbraid chat' namespace.
|
|
|
7
7
|
"""
|
|
8
8
|
from enum import Enum
|
|
9
9
|
|
|
10
|
-
import typer
|
|
11
10
|
from rich.console import Console
|
|
12
11
|
from rich.table import Table
|
|
13
12
|
|
|
14
13
|
from qbraid_cli.handlers import handle_error, run_progress_task
|
|
15
14
|
|
|
16
|
-
chat_app = typer.Typer(
|
|
17
|
-
help="Interact with qBraid AI chat service.", pretty_exceptions_show_locals=False
|
|
18
|
-
)
|
|
19
|
-
|
|
20
15
|
|
|
21
16
|
class ChatFormat(str, Enum):
|
|
22
17
|
"""Format of the response from the chat service."""
|
|
@@ -25,47 +20,7 @@ class ChatFormat(str, Enum):
|
|
|
25
20
|
code = "code" # pylint: disable=invalid-name
|
|
26
21
|
|
|
27
22
|
|
|
28
|
-
|
|
29
|
-
def chat_send(
|
|
30
|
-
prompt: str = typer.Argument(..., help="The prompt to send to the chat service."),
|
|
31
|
-
model: str = typer.Option(None, "--model", "-m", help="The model to use for the chat service."),
|
|
32
|
-
response_format: ChatFormat = typer.Option(
|
|
33
|
-
ChatFormat.text, "--format", "-f", help="The format of the response."
|
|
34
|
-
),
|
|
35
|
-
stream: bool = typer.Option(False, "--stream", "-s", help="Stream the response."),
|
|
36
|
-
):
|
|
37
|
-
"""
|
|
38
|
-
Interact with qBraid AI chat service.
|
|
39
|
-
|
|
40
|
-
"""
|
|
41
|
-
# pylint: disable-next=import-outside-toplevel
|
|
42
|
-
from qbraid_core.services.chat import ChatClient, ChatServiceRequestError
|
|
43
|
-
|
|
44
|
-
client = ChatClient()
|
|
45
|
-
|
|
46
|
-
if response_format == ChatFormat.code:
|
|
47
|
-
prompt += " Return only raw code. Do not include any text outside of code blocks."
|
|
48
|
-
|
|
49
|
-
if stream:
|
|
50
|
-
try:
|
|
51
|
-
for chunk in client.chat_stream(prompt, model, response_format):
|
|
52
|
-
print(chunk, end="")
|
|
53
|
-
except ChatServiceRequestError as err:
|
|
54
|
-
handle_error(message=str(err), include_traceback=False)
|
|
55
|
-
else:
|
|
56
|
-
content = run_progress_task(
|
|
57
|
-
client.chat,
|
|
58
|
-
prompt,
|
|
59
|
-
model,
|
|
60
|
-
response_format,
|
|
61
|
-
description="Connecting to chat service...",
|
|
62
|
-
include_error_traceback=False,
|
|
63
|
-
)
|
|
64
|
-
print(content)
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@chat_app.command(name="models")
|
|
68
|
-
def chat_models():
|
|
23
|
+
def list_models_callback():
|
|
69
24
|
"""List available chat models."""
|
|
70
25
|
# pylint: disable-next=import-outside-toplevel
|
|
71
26
|
from qbraid_core.services.chat import ChatClient
|
|
@@ -94,3 +49,28 @@ def chat_models():
|
|
|
94
49
|
)
|
|
95
50
|
|
|
96
51
|
console.print(table)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def prompt_callback(prompt: str, model: str, response_format: ChatFormat, stream: bool):
|
|
55
|
+
"""Send a chat prompt to the chat service."""
|
|
56
|
+
# pylint: disable-next=import-outside-toplevel
|
|
57
|
+
from qbraid_core.services.chat import ChatClient, ChatServiceRequestError
|
|
58
|
+
|
|
59
|
+
client = ChatClient()
|
|
60
|
+
|
|
61
|
+
if stream:
|
|
62
|
+
try:
|
|
63
|
+
for chunk in client.chat_stream(prompt, model, response_format):
|
|
64
|
+
print(chunk, end="")
|
|
65
|
+
except ChatServiceRequestError as err:
|
|
66
|
+
handle_error(message=str(err), include_traceback=False)
|
|
67
|
+
else:
|
|
68
|
+
content = run_progress_task(
|
|
69
|
+
client.chat,
|
|
70
|
+
prompt,
|
|
71
|
+
model,
|
|
72
|
+
response_format,
|
|
73
|
+
description="Connecting to chat service...",
|
|
74
|
+
include_error_traceback=False,
|
|
75
|
+
)
|
|
76
|
+
print(content)
|
|
@@ -14,7 +14,7 @@ from rich.console import Console
|
|
|
14
14
|
from qbraid_cli.devices.validation import validate_provider, validate_status, validate_type
|
|
15
15
|
from qbraid_cli.handlers import run_progress_task
|
|
16
16
|
|
|
17
|
-
devices_app = typer.Typer(help="Manage qBraid quantum devices.")
|
|
17
|
+
devices_app = typer.Typer(help="Manage qBraid quantum devices.", no_args_is_help=True)
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@devices_app.command(name="list")
|
|
@@ -23,7 +23,7 @@ from qbraid_cli.handlers import QbraidException, run_progress_task
|
|
|
23
23
|
if TYPE_CHECKING:
|
|
24
24
|
from qbraid_core.services.environments.client import EnvironmentManagerClient as EMC
|
|
25
25
|
|
|
26
|
-
envs_app = typer.Typer(help="Manage qBraid environments.")
|
|
26
|
+
envs_app = typer.Typer(help="Manage qBraid environments.", no_args_is_help=True)
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
@envs_app.command(name="create")
|
|
@@ -15,7 +15,7 @@ from qbraid_cli.handlers import handle_error, run_progress_task
|
|
|
15
15
|
from qbraid_cli.jobs.toggle_braket import disable_braket, enable_braket
|
|
16
16
|
from qbraid_cli.jobs.validation import handle_jobs_state, run_progress_get_state, validate_library
|
|
17
17
|
|
|
18
|
-
jobs_app = typer.Typer(help="Manage qBraid quantum jobs.")
|
|
18
|
+
jobs_app = typer.Typer(help="Manage qBraid quantum jobs.", no_args_is_help=True)
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@jobs_app.command(name="enable")
|
|
@@ -11,7 +11,7 @@ from rich.console import Console
|
|
|
11
11
|
|
|
12
12
|
from qbraid_cli.handlers import handle_error
|
|
13
13
|
|
|
14
|
-
kernels_app = typer.Typer(help="Manage qBraid kernels.")
|
|
14
|
+
kernels_app = typer.Typer(help="Manage qBraid kernels.", no_args_is_help=True)
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@kernels_app.command(name="list")
|
|
@@ -6,20 +6,21 @@ Entrypoint for the qBraid CLI.
|
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
import click
|
|
9
10
|
import rich
|
|
10
11
|
import typer
|
|
11
12
|
|
|
12
|
-
from qbraid_cli.account
|
|
13
|
-
from qbraid_cli.admin
|
|
14
|
-
from qbraid_cli.chat
|
|
15
|
-
from qbraid_cli.configure
|
|
16
|
-
from qbraid_cli.devices
|
|
17
|
-
from qbraid_cli.jobs
|
|
13
|
+
from qbraid_cli.account import account_app
|
|
14
|
+
from qbraid_cli.admin import admin_app
|
|
15
|
+
from qbraid_cli.chat import ChatFormat, list_models_callback, prompt_callback
|
|
16
|
+
from qbraid_cli.configure import configure_app
|
|
17
|
+
from qbraid_cli.devices import devices_app
|
|
18
|
+
from qbraid_cli.jobs import jobs_app
|
|
18
19
|
|
|
19
20
|
try:
|
|
20
|
-
from qbraid_cli.envs
|
|
21
|
-
from qbraid_cli.kernels
|
|
22
|
-
from qbraid_cli.pip
|
|
21
|
+
from qbraid_cli.envs import envs_app
|
|
22
|
+
from qbraid_cli.kernels import kernels_app
|
|
23
|
+
from qbraid_cli.pip import pip_app
|
|
23
24
|
|
|
24
25
|
ENVS_COMMANDS = True
|
|
25
26
|
except ImportError:
|
|
@@ -28,7 +29,6 @@ except ImportError:
|
|
|
28
29
|
app = typer.Typer(context_settings={"help_option_names": ["-h", "--help"]})
|
|
29
30
|
|
|
30
31
|
app.add_typer(admin_app, name="admin")
|
|
31
|
-
app.add_typer(chat_app, name="chat")
|
|
32
32
|
app.add_typer(configure_app, name="configure")
|
|
33
33
|
app.add_typer(account_app, name="account")
|
|
34
34
|
app.add_typer(devices_app, name="devices")
|
|
@@ -90,5 +90,34 @@ def main(
|
|
|
90
90
|
show_banner()
|
|
91
91
|
|
|
92
92
|
|
|
93
|
+
@app.command(help="Interact with qBraid AI chat service.", no_args_is_help=True)
|
|
94
|
+
def chat(
|
|
95
|
+
prompt: str = typer.Option(
|
|
96
|
+
None, "--prompt", "-p", help="The prompt to send to the chat service."
|
|
97
|
+
),
|
|
98
|
+
model: str = typer.Option(None, "--model", "-m", help="The model to use for the chat service."),
|
|
99
|
+
response_format: ChatFormat = typer.Option(
|
|
100
|
+
ChatFormat.text, "--format", "-f", help="The format of the response."
|
|
101
|
+
),
|
|
102
|
+
stream: bool = typer.Option(False, "--stream", "-s", help="Stream the response."),
|
|
103
|
+
list_models: bool = typer.Option(
|
|
104
|
+
False, "--list-models", "-l", help="List available chat models."
|
|
105
|
+
),
|
|
106
|
+
):
|
|
107
|
+
"""
|
|
108
|
+
Interact with qBraid AI chat service.
|
|
109
|
+
|
|
110
|
+
"""
|
|
111
|
+
if list_models:
|
|
112
|
+
list_models_callback()
|
|
113
|
+
elif prompt:
|
|
114
|
+
prompt_callback(prompt, model, response_format, stream)
|
|
115
|
+
else:
|
|
116
|
+
raise click.UsageError(
|
|
117
|
+
"Invalid command. Please provide a prompt using --prompt "
|
|
118
|
+
"or use --list-models to view available models."
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
|
|
93
122
|
if __name__ == "__main__":
|
|
94
123
|
app()
|
|
@@ -16,8 +16,7 @@ from qbraid_core.system.executables import get_active_python_path
|
|
|
16
16
|
from qbraid_cli.handlers import handle_error
|
|
17
17
|
from qbraid_cli.pip.hooks import get_env_cfg_path, safe_set_include_sys_packages
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
pip_app = typer.Typer(help="Run pip command in active qBraid environment.")
|
|
19
|
+
pip_app = typer.Typer(help="Run pip command in active qBraid environment.", no_args_is_help=True)
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
@pip_app.command(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qbraid-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Command Line Interface for interacting with all parts of the qBraid platform.
|
|
5
5
|
Author-email: qBraid Development Team <contact@qbraid.com>
|
|
6
6
|
License: Proprietary
|
|
@@ -29,7 +29,8 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
License-File: LICENSE
|
|
30
30
|
Requires-Dist: typer>=0.12.1
|
|
31
31
|
Requires-Dist: rich>=10.11.0
|
|
32
|
-
Requires-Dist:
|
|
32
|
+
Requires-Dist: click
|
|
33
|
+
Requires-Dist: qbraid-core>=0.1.31
|
|
33
34
|
Provides-Extra: jobs
|
|
34
35
|
Requires-Dist: amazon-braket-sdk>=1.48.1; extra == "jobs"
|
|
35
36
|
Provides-Extra: envs
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|