Skip to content

Commit 848e44e

Browse files
committed
Merge branch 'main' into feat/composable-cli
2 parents 9c8fe96 + 07875c3 commit 848e44e

129 files changed

Lines changed: 9104 additions & 818 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/publish.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ name: Publish
33
on:
44
workflow_dispatch:
55
inputs:
6+
package:
7+
description: "Which package set to publish"
8+
required: true
9+
type: choice
10+
options:
11+
- bailian-cli
12+
- knowledge-studio-cli
613
mode:
714
description: "Publish mode"
815
required: true
@@ -16,13 +23,13 @@ on:
1623
type: string
1724

1825
concurrency:
19-
group: publish-${{ inputs.mode }}-${{ inputs.channel }}
26+
group: publish-${{ inputs.package }}-${{ inputs.mode }}-${{ inputs.channel }}
2027
cancel-in-progress: false
2128

2229
jobs:
2330
publish-stable:
2431
if: inputs.mode == 'stable'
25-
name: publish stable to npm + tag
32+
name: publish stable (${{ inputs.package }}) to npm + tag
2633
runs-on: ubuntu-latest
2734
environment: production # Required Reviewers gate
2835
permissions:
@@ -51,11 +58,11 @@ jobs:
5158
- run: pnpm install --frozen-lockfile
5259

5360
- name: publish-stable
54-
run: node tools/release/publish-stable.mjs
61+
run: node tools/release/publish-stable.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }}
5562

5663
publish-channel:
5764
if: inputs.mode == 'channel'
58-
name: publish beta to npm
65+
name: publish channel (${{ inputs.package }}) to npm
5966
runs-on: ubuntu-latest
6067
permissions:
6168
contents: read # no tag, no Release; just publish
@@ -83,4 +90,4 @@ jobs:
8390
- run: pnpm install --frozen-lockfile
8491

8592
- name: publish-channel
86-
run: node tools/release/publish-channel.mjs --channel "${{ inputs.channel }}"
93+
run: node tools/release/publish-channel.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }} --channel "${{ inputs.channel }}"

.node-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
24

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,29 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
66

77
[中文版](CHANGELOG.zh.md) · [README](README.md) · [Contributing](CONTRIBUTING.md)
88

9+
## [1.4.2] - 2026-06-24
10+
11+
### Added
12+
13+
- `bl omni --list-voices` prints the built-in output voices (ID, name, description, language) and exits without needing an API key. The built-in voice table is expanded from 6 to 17 voices, including dialect voices such as Dylan, Sunny, and Kiki.
14+
15+
### Changed
16+
17+
- `bl omni` default `--voice` is now `Tina` (previously `Cherry`). The `--voice` help points at `--list-voices` instead of listing every option inline.
18+
- `bl speech synthesize --list-voices` and its missing-`--voice` hint now include a link to the official CosyVoice voice documentation.
19+
- Agent skill setup guidance now covers console site selection (`--console-site domestic` / `international`) for console login and gateway commands.
20+
21+
### Fixed
22+
23+
- `bl speech synthesize` corrects the `cosyvoice-v3-flash` built-in voice ID from `longanhuan` to `longanhuan_v3`.
24+
25+
## [1.4.1] - 2026-06-22
26+
27+
### Changed
28+
29+
- Video generation now defaults to the upgraded HappyHorse 1.1 model for better quality. The 1.0 models are still available via `--model`.
30+
- `bl update` now keeps the agent skill in sync across all your agent apps (Claude Code, Cursor, etc.), and refreshes it even when the CLI is already up to date.
31+
932
## [1.4.0] - 2026-06-17
1033

1134
### Added

CHANGELOG.zh.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,29 @@
66

77
[English](CHANGELOG.md) · [README](README.zh.md) · [参与贡献](CONTRIBUTING.zh.md)
88

9+
## [1.4.2] - 2026-06-24
10+
11+
### 新增
12+
13+
- `bl omni --list-voices` 无需 API key 即可打印内置输出音色列表(ID、名称、描述、语言)并退出。内置音色表从 6 个扩展到 17 个,新增 Dylan、Sunny、Kiki 等方言音色。
14+
15+
### 变更
16+
17+
- `bl omni` 默认 `--voice` 改为 `Tina`(原为 `Cherry`)。`--voice` 帮助文案改为指向 `--list-voices`,不再内联列出全部音色。
18+
- `bl speech synthesize --list-voices` 输出及缺少 `--voice` 时的提示中,新增官方 CosyVoice 音色文档链接。
19+
- Agent skill 配置指引新增 console 站点选择说明(`--console-site domestic` / `international`),适用于 console 登录与网关类命令。
20+
21+
### 修复
22+
23+
- `bl speech synthesize` 修正 `cosyvoice-v3-flash` 内置音色 ID,由 `longanhuan` 改为 `longanhuan_v3`
24+
25+
## [1.4.1] - 2026-06-22
26+
27+
### 变更
28+
29+
- 视频生成默认升级到 HappyHorse 1.1 模型,画面质量更佳。如需使用 1.0 模型,可通过 `--model` 指定。
30+
- `bl update` 现在会把 agent skill 同步更新到所有 agent 应用(Claude Code、Cursor 等),即使 CLI 已是最新版本也会刷新 skill。
31+
932
## [1.4.0] - 2026-06-17
1033

1134
### 新增

README.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Equip your AI Agent out-of-the-box with these capabilities, composable across co
2727
- **Text chat** — Qwen3.7-max: major gains in agentic coding, frontend coding, and vibe coding
2828
- **Multimodal (Omni)** — Full omni-modal support across text + image + audio + video
2929
- **Image generation & editing** — Qwen-Image 2.0: pro text rendering, photorealism, strong semantic adherence, multi-image composition
30-
- **Video generation & editing**HappyHorse-1.0 series: text-/image-/reference-to-video and natural-language video editing (up to 9-image reference)
30+
- **Video generation & editing**happyhorse-1.1 series: text-/image-/reference-to-video and natural-language video editing (up to 9-image reference)
3131
- **Speech synthesis & recognition** — CosyVoice streaming TTS, voice cloning from 5–20s samples; FunAudio-ASR covers 30 languages including 7 Chinese dialects and 20+ Mandarin accents
3232
- **Image & video understanding** — Qwen-VL: long-form video analysis, chart/document parsing, visual reasoning, multilingual OCR
3333

@@ -38,6 +38,7 @@ Equip your AI Agent out-of-the-box with these capabilities, composable across co
3838
- **MCP integration** — Orchestrate Bailian MCP servers: list services, inspect tools, and invoke any tool directly from the terminal
3939
- **Web search** — Real-time internet retrieval for up-to-date, accurate answers
4040
- **Model recommendation** — Describe your scenario and get best-fit model suggestions; supports scoped search, model comparison, and alternative discovery
41+
- **Fine-tuning & deployment** — Upload datasets, create SFT/LoRA/DPO/CPT jobs (`finetune create`), probe job status non-blockingly (`finetune watch`), query per-model training capability (`finetune capability`), and deploy trained models as endpoints (`deploy create`)
4142
- **Console capabilities** — Browse Bailian apps (`app list`), check free-tier quota (`usage free`), view model usage statistics (`usage stats`), manage workspaces (`workspace list`), and manage rate limits (`quota list/request/check/history`)
4243
- **Local file auto-upload** — Every URL parameter accepts a local path; uploaded to free temp storage with 48-hour validity
4344

@@ -54,7 +55,7 @@ Equip your AI Agent out-of-the-box with these capabilities, composable across co
5455
A complete **2-minute, 16:9 cinematic short film** — produced end-to-end from a single natural-language sentence, with **zero manual editing**. This showcase demonstrates how an AI Agent can compose a multi-step creative pipeline by orchestrating three primitives:
5556

5657
- **[Qwen Code](https://github.com/QwenLM/qwen-code)** — the agentic coding model that interprets the user's intent and drives the workflow
57-
- **[Aliyun Model Studio CLI](https://bailian.console.aliyun.com/cli?source_channel=cli_github&)** — invokes **HappyHorse 1.0**, Aliyun Model Studio's text-/image-/reference-to-video generation model
58+
- **[Aliyun Model Studio CLI](https://bailian.console.aliyun.com/cli?source_channel=cli_github&)** — invokes **HappyHorse 1.1**, Aliyun Model Studio's text-/image-/reference-to-video generation model
5859
- **[spark-video Skill](https://github.com/JohnKeating1997/spark-video)** — handles scene decomposition, storyboarding, shot continuity, and final stitching
5960

6061
### The single prompt
@@ -67,7 +68,7 @@ A complete **2-minute, 16:9 cinematic short film** — produced end-to-end from
6768

6869
1. **Qwen Code** parses the request, plans the narrative beats, and decides which tools to call.
6970
2. The **spark-video Skill** breaks the story into shots, writes per-shot prompts, and enforces visual continuity (characters, lighting, palette, lens language).
70-
3. **`bl video generate`** dispatches each shot to **HappyHorse 1.0** in parallel.
71+
3. **`bl video generate`** dispatches each shot to **HappyHorse 1.1** in parallel.
7172
4. The skill stitches all clips back together into a single 16:9 / ~2-min deliverable.
7273

7374
No timeline scrubbing. No frame-by-frame editing. Just one sentence → one video.
@@ -111,22 +112,30 @@ bl advisor recommend --message "qwen-max vs deepseek-v3 for code generation"
111112
# Browser login (required for console capability commands)
112113
bl auth login --console
113114

115+
# Fine-tune & deploy — a one-shot train-to-serve workflow
116+
bl dataset upload --file ./train.jsonl # Upload a .jsonl dataset (validated first)
117+
bl finetune create --model qwen3-8b --datasets ./train.jsonl --training-type sft-lora # Local paths auto-upload
118+
bl finetune watch --job-id ft-xxx --output json # Non-blocking status probe (exit 0/1/3 = done/failed/running)
119+
bl finetune capability --model qwen3-8b # Which training types a model supports
120+
bl deploy create --model qwen3-8b --name my-svc --plan mu # Deploy the trained model as an endpoint
121+
114122
# Browse apps / free-tier quota / usage statistics / workspaces
115123
bl app list
116-
bl usage free --model qwen3-max
117-
bl usage free --expiring 30 # Quotas expiring within 30 days
118-
bl usage free --sort remaining # Sort by remaining % ascending
119-
bl usage stats --workspace-id <id> # Usage overview for a workspace
120-
bl usage stats --model qwen-turbo --workspace-id <id> # Per-model usage
124+
bl usage free # Free-tier quota across models (add --model/--expiring/--sort)
125+
bl usage stats --workspace-id <id> # Model usage statistics (add --model for per-model)
121126
bl workspace list # List all workspaces
122127

123-
# Rate limit management
124-
bl quota list # View RPM/TPM limits for all models
125-
bl quota list --model qwen3.6-plus # View limits for a specific model
126-
bl quota check # Current usage vs rate limits
127-
bl quota check --model qwen3.6-plus --period 5 # Check usage over last 5 minutes
128+
# Rate limit management (list / check / request / history)
129+
bl quota list # View RPM/TPM limits (add --model to filter)
130+
bl quota check # Current usage vs rate limits (add --model/--period)
128131
bl quota request --model qwen3.6-plus --tpm 6000000 # Request a temporary TPM increase
129-
bl quota history # View quota change history
132+
bl quota history # View quota-change history
133+
134+
# Token Plan team management (requires AK/SK, see auth below)
135+
bl token-plan list-seats # View subscription seat details
136+
bl token-plan add-member --account-name dev --org-id org_xxx
137+
bl token-plan assign-seats --workspace-id ws_xxx --seat-type standard --account-id acc_xxx
138+
bl token-plan create-key --account-id acc_xxx --workspace-id ws_xxx
130139
```
131140

132141
> More examples and scenarios: [Aliyun Model Studio CLI Site](https://bailian.console.aliyun.com/cli?source_channel=cli_github&)
@@ -156,9 +165,9 @@ Required for console capability commands (`app list`, `usage free`, `usage stats
156165
bl auth login --console
157166
```
158167

159-
### Alibaba Cloud AK/SK (Knowledge Base only)
168+
### Alibaba Cloud AK/SK (Knowledge Base & Token Plan)
160169

161-
Required for `knowledge retrieve`. Get your AccessKey from [RAM Console](https://ram.console.aliyun.com/manage/ak).
170+
Required for `knowledge retrieve` and the `token-plan` command group. Get your AccessKey from [RAM Console](https://ram.console.aliyun.com/manage/ak).
162171

163172
> Recommended: create a RAM sub-account with minimum privileges instead of using the root account's AK/SK.
164173

README.zh.md

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_
2727
- **文本对话** — Qwen3.7-max:Agentic coding、前端编程、Vibe coding 等能力显著增强
2828
- **全模态对话** — 文本 + 图像 + 音频 + 视频全模态支持
2929
- **图像生成与编辑** — Qwen-Image 2.0:专业文字渲染、真实质感、强语义遵循、多图合成
30-
- **视频生成与编辑**HappyHorse-1.0 系列,支持文生 / 图生 / 参考生(最多 9 张图参考)/ 自然语言视频编辑
30+
- **视频生成与编辑**happyhorse-1.1 系列,支持文生 / 图生 / 参考生(最多 9 张图参考)/ 自然语言视频编辑
3131
- **语音合成与识别** — CosyVoice 实时流式合成,5-20s 样本即可克隆;FunAudio-ASR 覆盖 30 种语种,含汉语七大方言与 20+ 口音官话
3232
- **图像与视频理解** — Qwen-VL:长视频解析、复杂图表与文档识别、视觉推理、多语种 OCR
3333

@@ -38,6 +38,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_
3838
- **MCP 集成** — 统一调度百炼 MCP 服务:列出服务、查看工具、直接在终端调用任意工具
3939
- **联网搜索** — 实时互联网信息检索,提升回答准确性及时效性
4040
- **模型推荐** — 描述你的场景,智能推荐最适合的模型;支持限定范围搜索、模型对比和替代发现
41+
- **微调与部署** — 上传数据集、创建 SFT/LoRA/DPO/CPT 调优任务(`finetune create`)、非阻塞探测任务状态(`finetune watch`)、按模型查训练能力(`finetune capability`),并把训练好的模型部署为推理服务(`deploy create`
4142
- **控制台能力** — 浏览百炼应用(`app list`),查询模型免费额度(`usage free`),查看模型用量统计(`usage stats`),管理业务空间(`workspace list`),管理限流与提额(`quota list/request/check/history`
4243
- **本地文件自动上传** — 所有 URL 参数同时支持本地路径,免费临时存储 48 小时
4344

@@ -54,7 +55,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_
5455
一部完整的 **2 分钟、16:9 电影感短片** —— 由一句自然语言端到端生成,**全程零手动剪辑**。这个示例展示了 AI Agent 如何把三个基础能力编排成一条多步创作流水线:
5556

5657
- **[Qwen Code](https://github.com/QwenLM/qwen-code)** —— Agentic coding 模型,解析用户意图、驱动整个工作流
57-
- **[阿里云百炼 CLI](https://github.com/modelstudioai/cli/)** —— 调用 **HappyHorse 1.0**,百炼的文生/图生/参考生视频模型
58+
- **[阿里云百炼 CLI](https://github.com/modelstudioai/cli/)** —— 调用 **HappyHorse 1.1**,百炼的文生/图生/参考生视频模型
5859
- **[spark-video Skill](https://github.com/JohnKeating1997/spark-video)** —— 负责场景拆分、分镜设计、镜头连贯性和最终拼接
5960

6061
### 唯一的提示词
@@ -65,7 +66,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_
6566

6667
1. **Qwen Code** 解析需求、规划叙事节奏,决定要调用哪些工具。
6768
2. **spark-video Skill** 把故事拆成镜头、为每个镜头写提示词,并保证视觉连贯性(角色、光线、色调、镜头语言)。
68-
3. **`bl video generate`** 把每个镜头并行下发给 **HappyHorse 1.0**
69+
3. **`bl video generate`** 把每个镜头并行下发给 **HappyHorse 1.1**
6970
4. Skill 把所有片段拼成最终的 16:9 / 约 2 分钟成片。
7071

7172
没有时间线拖拽,没有逐帧剪辑。一句话 → 一部短片。
@@ -82,7 +83,10 @@ npx skills add modelstudioai/cli --all -g
8283
## 快速开始
8384

8485
```bash
85-
# 认证
86+
# 认证(推荐浏览器登录)
87+
bl auth login --console
88+
89+
# 或使用 API key 认证
8690
bl auth login --api-key sk-xxxxx
8791

8892
# 和通义千问对话
@@ -106,22 +110,30 @@ bl advisor recommend --message "qwen-max 和 deepseek-v3 哪个更适合做代
106110
# 浏览器登录(控制台能力相关命令需要)
107111
bl auth login --console
108112

113+
# 微调与部署 — 从训练到服务的一站式流程
114+
bl dataset upload --file ./train.jsonl # 上传 .jsonl 数据集(先校验)
115+
bl finetune create --model qwen3-8b --datasets ./train.jsonl --training-type sft-lora # 本地路径自动上传
116+
bl finetune watch --job-id ft-xxx --output json # 非阻塞状态探测(退出码 0/1/3 = 成功/失败/进行中)
117+
bl finetune capability --model qwen3-8b # 查询模型支持哪些训练方式
118+
bl deploy create --model qwen3-8b --name my-svc --plan mu # 把训练好的模型部署为推理服务
119+
109120
# 浏览应用 / 免费额度 / 用量统计 / 业务空间
110121
bl app list
111-
bl usage free --model qwen3-max
112-
bl usage free --expiring 30 # 30 天内过期的额度
113-
bl usage free --sort remaining # 按剩余百分比升序排列
114-
bl usage stats --workspace-id <id> # 指定空间的用量概览
115-
bl usage stats --model qwen-turbo --workspace-id <id> # 指定模型用量
122+
bl usage free # 各模型免费额度(可加 --model/--expiring/--sort)
123+
bl usage stats --workspace-id <id> # 模型用量统计(加 --model 查单模型)
116124
bl workspace list # 列出所有业务空间
117125

118-
# 限流管理与提额
119-
bl quota list # 查看所有模型的 RPM/TPM 限额
120-
bl quota list --model qwen3.6-plus # 查看指定模型限额
121-
bl quota check # 查看当前用量 vs 限流阈值
122-
bl quota check --model qwen3.6-plus --period 5 # 查看最近 5 分钟用量
126+
# 限流管理与提额(list / check / request / history)
127+
bl quota list # 查看 RPM/TPM 限额(加 --model 过滤)
128+
bl quota check # 当前用量 vs 限流阈值(加 --model/--period)
123129
bl quota request --model qwen3.6-plus --tpm 6000000 # 申请临时 TPM 提额
124130
bl quota history # 查看提额历史记录
131+
132+
# Token Plan 团队版管理(需 AK/SK,见下方认证说明)
133+
bl token-plan list-seats # 查看订阅席位明细
134+
bl token-plan add-member --account-name dev --org-id org_xxx
135+
bl token-plan assign-seats --workspace-id ws_xxx --seat-type standard --account-id acc_xxx
136+
bl token-plan create-key --account-id acc_xxx --workspace-id ws_xxx
125137
```
126138

127139
> 更多案例与使用场景:[阿里云百炼 CLI 官方主页](https://bailian.console.aliyun.com/cli?source_channel=cli_github&)
@@ -151,9 +163,9 @@ bl text chat --api-key sk-xxxxx --message "你好"
151163
bl auth login --console
152164
```
153165

154-
### 阿里云 AK/SK(仅知识库检索
166+
### 阿里云 AK/SK(知识库检索与 Token Plan
155167

156-
`knowledge retrieve` 命令需要阿里云 AccessKey。前往 [RAM 控制台](https://ram.console.aliyun.com/manage/ak) 获取。
168+
`knowledge retrieve` `token-plan` 命令组需要阿里云 AccessKey。前往 [RAM 控制台](https://ram.console.aliyun.com/manage/ak) 获取。
157169

158170
> 建议:创建 RAM 子账号并授予最小权限,避免使用主账号 AK/SK。
159171

0 commit comments

Comments
 (0)