跳转至

Metadata (元数据)

Metadata 模型代表项目的动态元数据信息,包含分类、选项和默认值等。

获取元数据

通过 Project.metadata() 方法获取项目的所有元数据:

for metadata in project.metadata():
    print(f"{metadata.category} - {metadata.name}")
    print(f"  类型: {metadata.category_type}")
    print(f"  选项数: {len(metadata.options)}")
    for option in metadata.options:
        print(f"    {option.key}: {option.value}")

属性

属性 类型 说明
category str 元数据分类
name str 元数据名称
options list[MetadataOption] 可选值列表
default ValueType | None 默认值
actual_values_count int 实际使用的值数量
category_type MetadataCategoryType 分类类型(单选/多选)
is_dynamic bool 是否为动态元数据

MetadataOption

元数据选项。

属性 类型 说明
key str 选项键
value ValueType 选项值

ValueType

ValueType 定义为 str | int | float | bool | List[str] | List[int] | List[float] | List[bool],支持多种基本类型。

MetadataCategoryType

元数据分类类型枚举,详见 枚举与类型

说明
single 单选
multi 多选

使用示例

from aimage.search.models.type import MetadataCategoryType

for metadata in project.metadata():
    if metadata.category_type == MetadataCategoryType.MULTI:
        print(f"[多选] {metadata.name}")
    else:
        print(f"[单选] {metadata.name}")

    if metadata.default is not None:
        print(f"  默认值: {metadata.default}")

    print(f"  实际使用数: {metadata.actual_values_count}")
    for opt in metadata.options:
        print(f"  - {opt.key} = {opt.value}")