uni CLI 工具

uni CLI 是云知声 MaaS 平台的命令行工具。你可以在终端中查询可用模型,进行文本对话、图片理解、语音合成、语音识别和 OCR 文档处理,也可以创建自定义音色、管理已上传的文件。

快速开始

1. 安装并验证

使用前,请先安装 Node.js 18 或更高版本,并准备好云知声 MaaS 平台的 API Key。

在终端中执行:

Bash
npm install -g @unisound/u2-cli
uni --version

2. 配置 API Key

运行以下命令,按提示输入 API Key:

Bash
uni auth login

也可以直接指定 API Key。请将示例中的 YOUR_API_KEY 替换为自己的密钥:

Bash
uni auth login --api-key YOUR_API_KEY

3. 查询可用模型

Bash
uni models list

4. 设置默认模型

例如,使用 U2 Flash 作为默认文本模型:

Bash
uni config set --key default_text_model --value u2-flash

5. 开始对话

发送一条消息:

Bash
uni text chat --message "用一句话介绍云知声 MaaS 平台"

如需连续对话,启动交互式会话:

Bash
uni text repl
你想做什么使用命令
查询可用模型uni models list
配置或查看 API Key 认证状态uni auth login / uni auth status
发送消息、生成文本uni text chat
连续多轮对话uni text repl
描述图片、针对图片提问uni vision describe
将文字转换为语音uni speech synthesize
查看内置音色uni speech voices
将音频转换为文字uni asr transcribe
提取图片中的文字和信息uni ocr extract
将文档转换为 Markdownuni ocr parse
克隆或设计音色uni voice clone / uni voice design
上传、查看、下载或删除文件uni file upload / list / download / delete
查看或修改默认设置uni config show / uni config set
更新工具uni update

模型查询

models list

查看当前可用的模型,以便在后续调用中选择模型 ID。

Bash
uni models list

如需以 JSON 格式查看结果:

Bash
uni models list --output json

认证管理

auth login

配置并保存 API Key,供后续命令使用。

Bash
uni auth login
使用方式命令
按提示输入 API Keyuni auth login
直接指定 API Keyuni auth login --api-key YOUR_API_KEY

API Key 保存在本机的 ~/.uni/config.json 中,也可通过环境变量 UNI_API_KEY 提供。使用优先级为:命令行 --api-key → 环境变量 UNI_API_KEY → 本地配置文件。

auth status

查看当前认证状态:

Bash
uni auth status

auth logout

清除本地已保存的凭证:

Bash
uni auth logout

文本对话

text chat

发送消息,进行问答、写作或代码生成。

Bash
uni text chat --model u2-flash --message "帮我写一段简洁的产品介绍"

设置助手角色,并逐步显示回复:

Bash
uni text chat --model u2-flash --system "你是一位写作助手" --message "将这句话改得更简洁:我们致力于为用户提供便捷高效的服务。" --stream

也可以通过重复传入 --message 提供多轮对话内容:

Bash
uni text chat --model u2-flash --message "你好" --message "assistant:你好,有什么可以帮助你?" --message "请介绍一下你能做什么"

常用参数:

参数说明
--message消息内容;可重复传入
--messages-file从 JSON 文件或标准输入读取消息数组
--tool定义 function/tool calling;可重复传入 JSON 或文件路径
--model模型 ID;未指定时使用默认模型
--system系统提示词,用于设定助手角色或回答要求
--max-tokens最大生成 Token 数,默认 4096
--temperature调整生成内容的随机性
--top-p调整生成内容的采样范围
--stream逐步输出回复内容;TTY 下默认开启,管道/脚本下默认关闭

text repl

进入交互式多轮会话。启动后,直接输入问题即可继续对话。

Bash
uni text repl --model u2-flash

也可以在启动时设置助手角色:

Bash
uni text repl --model u2-flash --system "你是一位编程助手" --temperature 0.7

会话内支持以下命令。输入 / 可查看提示,按 Tab 可补全。

会话命令说明
/exit退出会话
/clear清空对话历史,保留系统提示词
/system查看当前系统提示词
/system 你是一位写作助手设置系统提示词
/model查看当前模型
/model u2-flash切换模型
/save conversation.json将对话保存为 JSON 文件
/history查看当前对话消息
/help显示会话帮助

图片理解

vision describe

描述图片内容,或针对图片提问。支持本地图片和远程图片 URL。

将 YOUR_VISION_MODEL_ID 替换为支持图片输入的模型 ID:

Bash
uni vision describe --image photo.jpg --model YOUR_VISION_MODEL_ID

针对远程图片提问:

Bash
uni vision describe --image "https://example.com/photo.jpg" --model YOUR_VISION_MODEL_ID --prompt "请描述这张图片中的主要内容"
参数说明
--image本地图片路径或图片 URL;也可直接在命令后提供图片路径
--model支持图片输入的模型 ID;未指定时读取默认模型
--prompt希望模型针对图片回答的问题

语音合成

speech voices

查看内置音色,选择后将音色 ID 用于 --voice:

Bash
uni speech voices

speech synthesize

将文字转换为语音,使用模型 u2-tts。

合成短文本并保存音频:

Bash
uni speech synthesize --text "你好,欢迎使用云知声。" --out welcome.mp3

读取文本文件并指定音色:

Bash
uni speech synthesize --text-file narration.txt --voice cn_female_jiajia --out narration.mp3

处理长文本:

Bash
uni speech synthesize --text-file long.txt --async --out narration.mp3

同步合成支持不超过 500 字的文本;长文本可使用 --async,支持不超过 50,000 字。

指定情感和方言:

Bash
uni speech synthesize --text "你好" --voice cn_male_chenyu --emotion happy --dialect sichuan

指定词语读音:

Bash
uni speech synthesize --text "重塑美好生活" --pronunciation "重塑/重chóng塑"

常用参数:

参数说明
--text待合成的文本
--text-file从文件读取文本;使用 - 可从标准输入读取
--voice音色 ID,默认 cn_male_chenyu
--speed / --volume / --pitch / --bright调整语速、音量、音调或明亮度
--language语言设置
--emotion情感设置,例如 happy
--dialect方言设置,合法值:default / sichuan / yueyu
--pronunciation指定词语读音
--format音频输出格式,默认 mp3
--sample-rate采样率,默认 32000
--out音频保存路径;默认文件名为 speech-<时间戳>.<格式>
--async使用异步方式合成长文本
--stream将流式音频输出到标准输出

语音识别

asr transcribe

将音频转换为文字,使用模型 u2-asr,通过异步任务处理。

转写本地音频:

Bash
uni asr transcribe --file meeting.mp3 --language zh

转写公网可访问的音频:

Bash
uni asr transcribe --url "https://example.com/meeting.mp3" --language zh

如果音频 URL 不包含文件扩展名,请显式指定格式:

Bash
uni asr transcribe --url "https://example.com/audio?id=123" --format wav --language zh --output json
参数说明
--file本地音频路径;与 --url 二选一
--url公网可访问的音频 URL;与 --file 二选一
--format音频格式;URL 不含扩展名时需要指定
--language音频语言,例如中文使用 zh
--output json以 JSON 格式输出结果

支持音频格式:mp3、wav、opus、amr、m4a、ogg。

OCR 文字识别与文档解析

ocr extract

从图片中提取文字或指定信息,例如票据金额、日期或图表标签。

Bash
uni ocr extract --file receipt.jpg --prompt "提取总金额和日期"

如需指定模型:

Bash
uni ocr extract --file document.png --prompt "提取图片中的文字" --model u1-ocr-med
参数说明
--file待识别的图片路径或 URL,图片大小不超过 10 MB
--prompt希望提取的内容或识别要求
--model默认 u1-ocr,也支持 u1-ocr-med

ocr parse

将 JPG、PNG 或 PDF 文档转换为 Markdown,通过异步任务处理。

解析文档并保存结果:

Bash
uni ocr parse --file contract.pdf --out contract.md

直接在终端查看解析结果:

Bash
uni ocr parse --file slide.png
参数说明
--file本地文档路径,支持 JPG、PNG、PDF
--outMarkdown 文件的保存路径;不指定时直接输出结果
--modelOCR 模型 ID,默认 u1-ocr
--start-page-id起始页(含)
--end-page-id结束页(含)

自定义音色

voice clone

使用参考音频创建自定义音色:

Bash
uni voice clone --audio speaker.wav --voice-id my_narrator

创建成功后,可将该音色用于语音合成:

Bash
uni speech synthesize --voice my_narrator --text "你好,欢迎收听。" --out narration.mp3
参数说明
--audio参考音频路径
--voice-id自定义音色 ID,用于后续合成

voice design

通过文字描述创建音色:

Bash
uni voice design --prompt "温柔的中年女声,适合讲故事"

也可以指定音色 ID:

Bash
uni voice design --prompt "低沉男声,纪录片风格" --voice-id my_doc_voice
参数说明
--prompt希望生成的音色特征描述
--voice-id自定义音色 ID,可选

文件管理

管理通过 CLI 上传的文件。文件 ID 可通过上传结果或文件列表获取。

file upload

上传文件时,需要通过 --purpose 指定用途。例如,上传语音合成所用的文本文件:

Bash
uni file upload --file narration.txt --purpose t2a_async_input

常用文件用途:

用途值说明
t2a_async_input语音合成输入文件
t2a_async语音合成输出文件
a2t_async_input语音识别输入文件
voice_clone音色克隆参考文件

解析本地文档可直接使用 uni ocr parse --file contract.pdf,无需手动指定上传用途。

file list

查看已上传的文件:

Bash
uni file list

按用途筛选,例如查看语音识别上传的音频:

Bash
uni file list --purpose a2t_async_input

file download

将 YOUR_FILE_ID 替换为实际文件 ID:

Bash
uni file download --file-id YOUR_FILE_ID --out audio.mp3

file delete

删除指定文件:

Bash
uni file delete --file-id YOUR_FILE_ID

如需明确指定用途,例如删除语音识别上传的音频:

Bash
uni file delete --file-id YOUR_FILE_ID --purpose a2t_async_input

下载或删除时,如省略 --purpose,工具会自动从文件列表中查找对应用途。

配置与通用参数

config show

查看当前配置:

Bash
uni config show

config set

设置默认模型:

Bash
uni config set --key default_text_model --value u2-flash

设置默认输出格式:

Bash
uni config set --key output --value json

常用配置项:

配置项说明
default_text_model默认模型;图片理解使用时须确认该模型支持图片输入
output输出格式:text 或 json
api_styleAPI 协议风格:openai(默认)或 anthropic,对应 --style
timeout请求超时时间
proxy网络代理地址

config export-schema

将 CLI 命令导出为 Anthropic/OpenAI 兼容的 JSON tool schema,便于 Agent 集成调用。

例如导出 text chat 的 tool schema:

Bash
uni config export-schema --command "text chat"

通用参数

以下参数可用于命令行调用:

参数说明
--api-key指定本次调用使用的 API Key,优先于环境变量和本地配置
--base-urlAPI 地址,默认 https://maas-api.unisound.com
--style协议风格:openai(默认)或 anthropic
--output结果输出格式:text 或 json
--timeout请求超时时间,单位为秒,默认 300
--verbose打印 HTTP 请求/响应详情,便于排障
--dry-run预演模式,不发送真实请求
--non-interactive禁用交互提示,适用于 CI/Agent 场景
--quiet减少非必要输出
--no-color关闭彩色文字和加载动画
--help查看帮助
--version查看当前版本

如需通过环境变量设置,可使用 UNI_API_KEY 提供密钥,或使用 UNI_OUTPUT 指定 text / json 输出格式。

更新与帮助

更新到最新版本

Bash
uni update

也可以使用 npm 更新:

Bash
npm install -g @unisound/u2-cli@latest

查看帮助

查看命令总览:

Bash
uni help

查看具体命令的参数:

Bash
uni text chat --help
uni speech synthesize --help
uni ocr parse --help

常见问题

提示 No model specified,怎么办?

text chat、text repl 和 vision describe 需要指定模型。可以在命令中传入 --model,或先设置默认模型:

Bash
uni models list
uni config set --key default_text_model --value u2-flash

图片理解请通过 --model 指定支持图片输入的模型。

终端停在 dquote>,命令没有执行,怎么办?

这通常表示双引号尚未闭合。按 Ctrl+C 取消当前输入,检查引号是否成对,再重新执行。

在 zsh 中,如果消息包含 !,可使用单引号包裹消息,避免触发历史展开:

Bash
uni text chat --model u2-flash --message '你好!'
文档解析提示 invalid file purpose (code 100001),怎么办?

当前服务可能尚未支持所需的文件上传用途或文档解析能力。请联系平台支持确认该能力是否可用。如果只需要提取图片中的信息,可以使用:

Bash
uni ocr extract --file document.png --prompt "提取图片中的文字"
为什么图片理解不能使用默认模型?

图片理解要求模型支持图片输入。如果默认模型只支持文本,请为本次命令指定支持图片输入的模型:

Bash
uni vision describe --image photo.jpg --model YOUR_VISION_MODEL_ID
如何退出交互式对话?

输入 /exit,或连按两次 Ctrl+C。回复过程中按一次 Ctrl+C 只会中断当前回复。

语音合成文件保存在哪里?

未指定 --out 时,生成的文件名为 speech-<时间戳>.<格式>。如需明确保存位置,请使用 --out 指定路径:

Bash
uni speech synthesize --text "你好" --out welcome.mp3