跳转到内容

swanlab api

bash
swanlab api [OPTIONS] COMMAND ARGS [ARGS]

swanlab api开放接口(OpenAPI) 的 CLI 实现,允许通过命令行直接操作云端 工作空间 / 项目 / 实验 / 用户 / 私有化部署 资源。

认证方式与 Python API 一致:显式传入 --api-key / --host,或使用 swanlab login 本地登录态。详见 认证说明

子命令总览

workspace — 工作空间

子命令描述
swanlab api workspace info <username>获取工作空间信息

project — 项目

子命令描述
swanlab api project info <path>获取项目信息
swanlab api project list列出工作空间下的项目
swanlab api project create创建项目

run — 实验

子命令描述
swanlab api run info <path>获取实验信息
swanlab api run list列出项目下的实验
swanlab api run filter按条件过滤实验
swanlab api run metrics获取实验标量指标
swanlab api run summary获取实验指标汇总
swanlab api run column获取实验单个指标列
swanlab api run columns获取实验指标列列表
swanlab api run medias获取实验媒体指标
swanlab api run logs获取实验控制台日志
swanlab api run export-logs导出实验日志文件

user — 用户

子命令描述
swanlab api user info获取当前用户信息

self-hosted — 私有化部署管理

仅超级管理员可用。

子命令描述
swanlab api self-hosted info获取实例信息
swanlab api self-hosted create-user创建用户
swanlab api self-hosted list-users列出所有用户
swanlab api self-hosted list-projects列出所有项目
swanlab api self-hosted summary系统用量汇总
swanlab api self-hosted list-workspaces列出所有工作空间

通用选项

所有 swanlab api 子命令均支持以下选项:

选项描述
-h, --hostSwanLab 服务主机地址
-k, --api-keyAPI 密钥,优先于本地登录态
--save将输出保存为 JSON 文件,传值指定文件名,不传则自动生成

子命令详解

workspace info

获取指定工作空间的详细信息。

bash
swanlab api workspace info <username> [OPTIONS]
参数/选项类型描述
username位置参数工作空间用户名(唯一 ID)
--save选项保存输出为 JSON 文件,传值指定文件名,不传则自动生成
bash
# 查看工作空间信息
swanlab api workspace info my-team

# 保存到文件
swanlab api workspace info my-team --save workspace.json

project info

获取单个项目的详细信息。

bash
swanlab api project info <path> [OPTIONS]
参数/选项类型描述
path位置参数项目路径,格式为 username/project-name
--save选项保存输出为 JSON 文件
bash
swanlab api project info my-team/image-classification

project list

列出指定工作空间下的所有项目。

bash
swanlab api project list [OPTIONS]
参数/选项类型默认值描述
--workspacestr当前登录用户工作空间用户名
--page_num / -nint1页码
--page_size / -sstr"20"每页数量,可选值:"10", "20", "50", "100"
--all布尔标志False自动翻页,获取全部项目
--save选项保存输出为 JSON 文件
bash
# 列出当前工作空间的项目
swanlab api project list

# 列出指定工作空间的项目,每页 50 条
swanlab api project list --workspace my-team --page_size 50

# 获取全部项目
swanlab api project list --workspace my-team --all

project create

在指定工作空间下创建新项目。

bash
swanlab api project create [OPTIONS]
参数/选项类型默认值描述
-n / --namestr必填项目名(1–100 字符,仅允许 0-9a-zA-Z-_.+
-v / --visibilitystr"PRIVATE"可见性:PUBLICPRIVATE
-d / --descriptionstrNone项目描述
-w / --workspacestr当前登录用户工作空间用户名
--save选项保存输出为 JSON 文件
bash
# 创建一个私有项目
swanlab api project create -n my-project -v PRIVATE

# 在指定工作空间创建一个公开项目
swanlab api project create -n my-project -v PUBLIC -w my-team -d "图像分类实验"

run info

获取单个实验的详细信息。

bash
swanlab api run info <path> [OPTIONS]
参数/选项类型描述
path位置参数实验路径,格式为 username/project-name/experiment-id
--save选项保存输出为 JSON 文件
bash
swanlab api run info my-team/image-classification/abc123

run list

列出指定项目下的所有实验。

bash
swanlab api run list [OPTIONS]
参数/选项类型默认值描述
--project_path / -pstr必填项目路径,格式为 username/project-name
--page_num / -nint1页码
--page_size / -sstr"20"每页数量
--all布尔标志False自动翻页,获取全部实验
--save选项保存输出为 JSON 文件
bash
# 列出项目下的实验
swanlab api run list -p my-team/image-classification

# 获取全部实验
swanlab api run list -p my-team/image-classification --all

run filter

按过滤条件查询实验。使用 JSON 数组指定一个或多个过滤规则。

bash
swanlab api run filter --project_path <path> --filter_query <json> [OPTIONS]
参数/选项类型描述
--project_path / -pstr必填,项目路径
--filter_query / -fstr必填,过滤条件(JSON 数组或 JSON 文件路径)
--save选项保存输出为 JSON 文件

每个过滤规则为一个 JSON 对象:

json
{
  "key": "<字段名>",
  "type": "STABLE | CONFIG | SCALAR",
  "op": "EQ | NEQ | GT | LT | GTE | LTE | CONTAIN | NOT_CONTAIN",
  "value": ["<值>"]
}

type 取值说明:

typekey 取值value 说明
STABLEstate, name, description, show, pin, labels, createdAt, updatedAt, finishedAt对应字段的值
CONFIG配置参数名(如 param_2不带 config. 前缀)配置参数的值
SCALAR标量指标名(如 loss指标的值
bash
# 查询状态为 FINISHED 的实验
swanlab api run filter \
  -p my-team/image-classification \
  -f '[{"key": "state", "type": "STABLE", "op": "EQ", "value": ["FINISHED"]}]'

# 从文件读取过滤条件
swanlab api run filter -p my-team/image-classification -f ./filter.json

run metrics

获取实验的标量指标数据,返回 JSON 格式。

bash
swanlab api run metrics <path> --keys <keys> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--keysstr必填逗号分隔的指标名,如 "loss,acc"
--sample / -sint1500采样数量,超过自动截断
--ignore-timestamp布尔标志False去掉指标数据中的时间戳字段
--all布尔标志False获取全量数据(CSV 导出)
--range-typestrNone范围查询类型:steptimestamp
--range-startintNone范围起始值(含),步数或毫秒时间戳
--range-endintNone范围结束值(含),步数或毫秒时间戳
--range-headintNone返回前 N 条数据
--range-tailintNone返回后 N 条数据
--save选项保存输出为 JSON 文件

注意事项:

  • --range-head--range-tail 互斥。
  • --range-start--range-end 配合 --range-type 使用(steptimestamp),时间戳单位为毫秒。
bash
# 获取 loss 指标(默认采样 1500 条)
swanlab api run metrics my-team/image-classification/abc123 --keys loss

# 获取多个指标,采样 500 条
swanlab api run metrics my-team/image-classification/abc123 --keys loss,acc -s 500

# 按步数范围查询
swanlab api run metrics my-team/image-classification/abc123 \
  --keys loss --range-type step --range-start 100 --range-end 500

# 获取最后 200 条数据
swanlab api run metrics my-team/image-classification/abc123 \
  --keys loss --range-tail 200

run summary

获取实验的标量指标汇总(如最终值、最小值、最大值等)。

bash
swanlab api run summary <path> [OPTIONS]
参数/选项类型描述
path位置参数实验路径
--keysstr逗号分隔的指标名,不传则查询全部
--save选项保存输出为 JSON 文件
bash
# 获取全部指标汇总
swanlab api run summary my-team/image-classification/abc123

# 获取指定指标的汇总
swanlab api run summary my-team/image-classification/abc123 --keys loss,acc

run column

获取实验的单个指标列。

bash
swanlab api run column <path> --key <key> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--keystr必填指标列名
--classstr"CUSTOM"列分类:CUSTOMSYSTEM
--typestrNone列数据类型:FLOAT, STRING, IMAGE
--save选项保存输出为 JSON 文件
bash
swanlab api run column my-team/image-classification/abc123 --key loss

run columns

列出实验的所有指标列。

bash
swanlab api run columns <path> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--page_num / -nint1页码
--page_size / -sstr"20"每页数量
--classstr"CUSTOM"列分类筛选
--typestrNone列数据类型筛选
--all布尔标志False自动翻页,获取全部列
--save选项保存输出为 JSON 文件
bash
# 列出所有指标列
swanlab api run columns my-team/image-classification/abc123

# 仅列出 FLOAT 类型的系统列
swanlab api run columns my-team/image-classification/abc123 \
  --class SYSTEM --type FLOAT --all

run medias

获取实验的媒体指标(图片、音频等),返回预签名 URL。

bash
swanlab api run medias <path> --keys <keys> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--keysstr必填逗号分隔的媒体指标名,如 "image,audio"
--step / -sint0步数
--all布尔标志False获取所有步数
--save选项保存输出为 JSON 文件
bash
# 获取 step=0 的图片指标
swanlab api run medias my-team/image-classification/abc123 --keys generated_image

# 获取所有步数的音频指标
swanlab api run medias my-team/image-classification/abc123 --keys audio --all

run logs

获取实验的控制台日志。

bash
swanlab api run logs <path> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--offset / -oint0日志分片索引(shard index)
--level / -lstr"INFO"日志级别:DEBUG, INFO, WARN, ERROR
--ignore-timestamp布尔标志False去掉时间戳字段
--save选项保存输出为 JSON 文件
bash
# 获取 INFO 级别日志
swanlab api run logs my-team/image-classification/abc123

# 获取 WARN 及以上级别的日志
swanlab api run logs my-team/image-classification/abc123 --level WARN

# 获取指定分片的日志
swanlab api run logs my-team/image-classification/abc123 --offset 1

run export-logs

将实验日志导出为可下载的 .log 文件。

bash
swanlab api run export-logs <path> [OPTIONS]
参数/选项类型默认值描述
path位置参数必填实验路径
--startint0起始行索引(0-based)
--rows / -rint500000导出行数,最大 500000
--save选项保存输出为 JSON 文件(含下载 URL)
bash
# 导出前 10000 行日志
swanlab api run export-logs my-team/image-classification/abc123 --rows 10000

user info

获取当前登录用户的信息。

bash
swanlab api user info [OPTIONS]
选项描述
--save保存输出为 JSON 文件
bash
swanlab api user info

self-hosted info

获取私有化部署实例的信息。

bash
swanlab api self-hosted info [OPTIONS]
选项描述
--save保存输出为 JSON 文件
bash
swanlab api self-hosted info

self-hosted create-user

在私有化部署中创建一个新用户(仅超级管理员)。

bash
swanlab api self-hosted create-user [OPTIONS]
选项类型描述
-u / --usernamestr必填,新用户名
-p / --passwordstr必填,新用户密码
--save选项保存输出为 JSON 文件
bash
swanlab api self-hosted create-user -u testuser -p test123456

self-hosted list-users

列出私有化部署中的所有用户(仅超级管理员)。

bash
swanlab api self-hosted list-users [OPTIONS]
选项类型默认值描述
--page_num / -nint1页码
--page_size / -sint20每页数量
--all布尔标志False自动翻页,获取全部用户
--save选项保存输出为 JSON 文件
bash
# 列出所有用户
swanlab api self-hosted list-users --all

self-hosted list-projects

列出私有化部署中的所有项目(仅超级管理员)。

bash
swanlab api self-hosted list-projects [OPTIONS]
选项类型默认值描述
--page_num / -nint1页码
--page_size / -sint20每页数量
--all布尔标志False自动翻页,获取全部项目
--searchstrNone搜索关键词
--creatorstrNone按创建者用户名筛选
--workspacestrNone按工作空间用户名筛选
--save选项保存输出为 JSON 文件
bash
# 列出所有项目
swanlab api self-hosted list-projects --all

# 搜索特定项目
swanlab api self-hosted list-projects --search image --all

self-hosted summary

获取私有化部署的系统用量汇总(仅超级管理员)。

bash
swanlab api self-hosted summary [OPTIONS]
选项描述
--save保存输出为 JSON 文件
bash
swanlab api self-hosted summary

self-hosted list-workspaces

列出私有化部署中的所有工作空间(仅超级管理员)。

bash
swanlab api self-hosted list-workspaces [OPTIONS]
选项类型默认值描述
--page_num / -nint1页码
--page_size / -sint20每页数量
--all布尔标志False自动翻页,获取全部工作空间
--searchstrNone搜索关键词
--save选项保存输出为 JSON 文件
bash
# 列出所有工作空间
swanlab api self-hosted list-workspaces --all