跳转到内容

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

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

run filter

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

bash
swanlab api run filter <project_path> --filter_query <json> [OPTIONS]
参数/选项类型描述
project_path位置参数必填,项目路径,格式为 username/project-name
--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 my-team/image-classification \
  -f '[{"key": "state", "type": "STABLE", "op": "EQ", "value": ["FINISHED"]}]'

# 从文件读取过滤条件
swanlab api run filter 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 条数据
--range-lastintNone最近 N 毫秒的数据(与 --range-start/--range-end 互斥)
--save选项保存输出为 JSON 文件

注意事项:

  • --range-head--range-tail 互斥。
  • --range-last--range-start/--range-end 互斥。
  • --range-head/--range-tail 可与 --range-start/--range-end--range-last 组合(先范围过滤,再截取)。
  • --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

# 最近 5 分钟的数据
swanlab api run metrics my-team/image-classification/abc123 \
  --keys loss --range-last 300000

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

# 步数范围 + 取前 50 个点
swanlab api run metrics my-team/image-classification/abc123 \
  --keys loss --range-type step --range-start 0 --range-end 500 --range-head 50

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"每页数量
--searchstrNone模糊搜索关键词(匹配列 name)
--classstr"CUSTOM"列分类筛选
--typestrNone列数据类型筛选
--all布尔标志False自动翻页,获取全部列
--save选项保存输出为 JSON 文件
bash
# 列出所有指标列
swanlab api run columns my-team/image-classification/abc123

# 模糊搜索
swanlab api run columns my-team/image-classification/abc123 --search loss

# 仅列出 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