Models SDK
Models SDK
Overview
hubai-sdk 包是一个 Python 库,用于以编程方式与 Luxonis Hub 的 AI 和模型 区域进行交互。它能够直接从您的 Python 代码或命令行自动化模型管理和转换工作流。主要特点:- 以编程方式访问模型、变体和实例
- 自动将模型转换为 RVC2、RVC3、RVC4 和 Hailo 格式
- 用于所有操作的命令行界面
- 支持类型提示的类型安全 Python API
- 支持 Python 脚本和 CLI 工作流
Installation
Command Line
1pip install hubai-sdkQuick Start
Python
1import os
2from hubai_sdk import HubAIClient
3
4client = HubAIClient(api_key=os.getenv("HUBAI_API_KEY"))
5
6# 列出所有模型
7models = client.models.list_models()
8print(f"找到 {len(models)} 个模型")
9
10# 获取特定模型
11model = client.models.get_model(models[0].id)
12print(f"模型:{model.name}")
13
14# 将模型转换为 RVC4 格式(适用于 OAK4 设备)
15response = client.convert.RVC4(
16 path="/path/to/your/nn_archive.tar.xz",
17 name="my-converted-model",
18 target_precision="INT8",
19 quantization_data="GENERAL",
20)
21
22print(f"转换后的模型已下载到:{response.downloaded_path}")hubai 命令从命令行运行所有命令。Command Line
1# 先登录
2hubai login
3
4# 列出模型
5hubai model ls
6
7# 获取模型信息
8hubai model info <model-id-or-slug>
9
10# 将模型转换为 RVC4 格式
11hubai convert rvc4 <path-to-nn-archive.tar.xz> --name my-converted-model --target-precision INT8 --quantization-data GENERALInstallation
pip 进行安装:Command Line
1pip install hubai-sdkCommand Line
1git clone https://github.com/luxonis/hubai-sdk.git
2cd hubai-sdk
3pip install -e .Authentication
Model Management
HubAIClient.models 命名空间以编程方式进行管理。您可以列出模型、检索特定模型的相关信息、创建新模型、更新现有模型以及删除模型。Python
1# 列出模型
2models = client.models.list_models(
3 tasks=["OBJECT_DETECTION"],
4 is_public=True,
5 limit=10
6)
7
8# 获取模型信息
9model = client.models.get_model("model-id-or-slug")
10
11# 创建一个新模型
12new_model = client.models.create_model(
13 name="my-model",
14 license_type="MIT",
15 is_public=False,
16 description="My awesome model",
17 tasks=["OBJECT_DETECTION"]
18)
19
20# 更新现有模型(仅传递要更新的字段)
21updated_model = client.models.update_model(
22 model_id,
23 license_type="Apache 2.0",
24 description="Updated description"
25)
26
27# 删除模型
28client.models.delete_model(model_id)Variant Management
Python
1# 列出变体
2variants = client.variants.list_variants(model_id="model-id")
3
4# 获取变体信息
5variant = client.variants.get_variant("variant-id")
6
7new_variant = client.variants.create_variant(
8 name="my-variant",
9 model_id="model-id",
10 variant_version="1.0.0",
11 description="My first variant."
12)
13
14# 删除变体
15client.variants.delete_variant("variant-id")New Verison of the Variant
Python
1variant = client.variants.get_variant("variant-id")
2
3new_version_of_variant = client.variants.create_variant(
4 name=variant.name,
5 model_id=variant.model_id,
6 variant_version="new-version-number",
7)实例管理
Python
1# 列出实例
2instances = client.instances.list_instances(model_id="model-id", variant_id="variant-id")
3
4# 获取实例信息
5instance = client.instances.get_instance("instance-id")
6
7# 下载实例
8downloaded_path = client.instances.download_instance("instance-id", output_dir="/path/to/output/directory")
9
10# 创建新实例
11from hubai_sdk.utils.types import ModelType
12
13instance = client.instances.create_instance(
14 name="my-instance",
15 variant_id="variant-id",
16 model_type=ModelType.ONNX,
17 input_shape=[1, 3, 288, 512]
18)
19
20# 检索实例的配置
21config = client.instances.get_config("instance-id")
22
23# 检索实例的文件
24files = client.instances.get_files("instance-id")
25
26# 将文件上传到实例
27client.instances.upload_file("path/to/nn_archive.tar.xz", "instance-id")
28
29# 删除实例
30client.instances.delete_instance("instance-id")转换
HubAIClient.convert 命名空间将模型转换为不同的格式。Python
1# 将模型转换为 RVC4 格式
2response = client.convert.RVC4(
3 path="/path/to/your/nn_archive.tar.xz",
4 name="my-converted-model",
5 target_precision="INT8",
6 quantization_data="GENERAL",
7)
8
9downloaded_path = response.downloaded_path
10instance = response.instancemy-converted-model 的模型。转换完成后,转换后的模型将下载到 downloaded_path,并且 Model Instance 将在 instance 变量中返回。Python
1# 将 YOLO 模型转换为 RVC4 格式
2response = client.convert.RVC4(
3 path="path/to/your/yolo-model.pt",
4 name="my-converted-yolo-model",
5 target_precision="INT8",
6 quantization_data="GENERAL",
7 yolo_input_shape=[512, 288],
8 yolo_class_names=["list", "of", "class", "names"],
9 yolo_version="yolov8", # 或任何其他 YOLO 版本
10)