Skip to main content

Mai CLI

mai 是 Mai 平台的命令行工具,可在本地完成模型、数据集、文件和镜像的下载、上传、提交、推送。

如果需要完整命令说明,请查看 README.full.md。

快速开始

1. 安装

适合已经有 Python 3.12+ 的环境:

pip install maind
mai --help

如果在 Windows 上看到 mai.exe is installed ... which is not on PATH,或者运行 mai 提示“不是内部或外部命令”,可以先用不依赖 PATH 的方式运行:

python -m mai --help
python -m mai install

也可以把 Python 用户脚本目录加入 PATH,然后重新打开终端:

$scripts = python -c "import sysconfig; print(sysconfig.get_path('scripts'))"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$userPath;$scripts", "User")

如果需要使用 download、connect、repo push 等工作区命令,安装后先检查并安装本机依赖:

mai install --check
mai install

也可以用 pipx 隔离安装:

pipx install maind
mai --help

2. 登录

交互式登录:

mai login

非交互式登录:

mai login --url https://your-domain --username <USERNAME> --password <PASSWORD>

3. 下载模型或数据集

下载模型:

mai download --model "Qwen2.5-7B-Instruct" --version main

下载数据集:

mai download --dataset "my-dataset" --version main

指定下载目录:

mai download --model "Qwen2.5-7B-Instruct" --version main --dir ./workspace/qwen

常用操作

创建并上传模型

创建模型并初始化本地工作区:

mai create --model "my-model" --description "demo model"
mai connect --model "my-model" --version main
cd ./my-model

把文件放入目录后提交并推送:

mai repo status
mai repo add
mai repo commit -m "update model files"
mai repo push

创建并上传数据集

mai create --dataset "my-dataset" --description "demo dataset"
mai connect --dataset "my-dataset" --version main
cd ./my-dataset

把文件放入目录后提交并推送:

mai repo add
mai repo commit -m "update dataset files"
mai repo push

发布已有本地目录

如果模型或数据集文件已经在本地目录中,可以用 publish 一次完成连接、添加、提交和推送。

发布模型目录:

mai publish --dir ./local-model --model "my-model" --version main -m "publish model"

发布数据集目录:

mai publish --dir ./local-dataset --dataset "my-dataset" --version main -m "publish dataset"

从 Hugging Face 或 ModelScope 同步

从 Hugging Face 同步模型到平台:

mai sync --model hf://Qwen/Qwen2.5-7B --name "qwen2.5-7b" --version main

从 ModelScope 同步数据集到平台:

mai sync --dataset ms://org/my-dataset --name "my-dataset" --version main

文件和镜像

上传文件:

mai file upload ./data.csv --scope personal

构建平台镜像:

mai image build --repo my-image --tag latest --method dockerfile --dockerfile-url https://example.com/Dockerfile

复制镜像:

mai image copy source:tag target:tag

预置资源示例

仓库内置了与 falsework 平台预置资源一致的 seed 示例,可直接 dry-run 验证:

mai seed apply --config examples/seed/config.yaml --resources-dir /tmp/mai-seed-resources --dry-run

Docker 环境

如果不想在宿主机安装 Python、Git、DVC、ModelScope、Hugging Face CLI 等依赖,可以直接使用 Docker 镜像。

docker run --rm -it \
  -v "$PWD":/workspace \
  -v "$HOME/.config/mai":/root/.config/mai \
  -w /workspace \
  harbor.mindreon.com/baize/mai-cli:release-v0.1.0 \
  bash

进入容器后直接使用:

mai --help
mai login

进阶:项目状态和切换

熟悉基础命令后,如果账号下有多个项目,可以查看当前项目状态:

mai status

查看可切换项目:

mai project list

切换当前项目:

mai project use <项目名或项目ID>

切换项目后,后续 create、download、connect、repo push 等命令都会使用新的项目上下文。

常用环境变量

变量 说明
MAI_API_URL 平台地址
MAI_AUTH_TOKEN 登录 token,优先级高于本地配置文件
MAI_CONFIG_DIR 配置文件目录,默认 ~/.config/mai

Metadata

Release files for maind 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maind 0.1.8
File Size Uploaded
maind-0.1.8.tar.gz 249.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maind 0.1.8
File Interpreter ABI Platform
maind-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 318.0 kB

Release files / maind-0.1.8.tar.gz

Download URL maind-0.1.8.tar.gz
Size 249.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e3fd1b343e563aa3261c268aa684aaf71f3dcbe7651e188496907f44d633272b
BLAKE2b-256 checksum
How to use checksums
64a012533365c63459c9e09873cad9055253decfcd5e219ef2d787b86bb1b76b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / maind-0.1.8-py3-none-any.whl

Download URL maind-0.1.8-py3-none-any.whl
Size 69.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
070fdb2d39d6411ae3da5180dbbf7e43f4b915753e99a6f563a0ea4b225be2c5
BLAKE2b-256 checksum
How to use checksums
515c9a4c2bc078bdc2545043e63b43d741a6f90030d3de8e9b35f14b4948754d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page