阿里云百炼在 2026-09-18 发布千问新一代原生全模态模型 Qwen3.8-Omni-Flash。它统一处理文本、图像、音频、视频四类输入,原生上下文长度 1M Token,可一次吃下一小时音视频,并面向真实生产力场景把"理解内容"推进到"规划任务、调用工具、完成交付"。本篇是实操 SOP,目标是让你在拿到 DashScope API Key 之后,用 OpenAI 兼容接口把三件事真正跑通:一小时会议转结构化纪要、数小时视频转带时间戳图文笔记、按需控制粒度的音视频 Caption。所有 endpoint、模型 ID、参数名均来自官方文档,未核实的细节会明确标注为示例骨架。
网页版(免 API)入口在 qianwenai.com/models/qwen3.8-omni-flash,可作为临时试用或校验结果的备选。但凡要做批量、要进工作流、要接工具,还是走 API 更稳。关于这次发布的来龙去脉与能力边界,建议先看 Qwen3.8-Omni-Flash 发布热点;想把它接进 Agent 框架、补上视频剪辑与长视频记忆,见 Qwen-MM-Plugins 多模态插件资源;横向比价与成本口径见 音视频模型成本横评。
一、开通与 API Key 申请
第一步永远不是写代码,而是把账号、计费和密钥这三件事办妥。Qwen3.8-Omni-Flash 的推理服务供应商是阿里云百炼(Model Studio),调用走 DashScope 兼容接口,因此你需要一个百炼账号、一个已开通模型计费的业务空间,以及一个 API Key。
打开 bailian.console.aliyun.com(百炼控制台),用阿里云主账号或子账号登录。进入"模型广场"或"模型部署",搜索 qwen3.8-omni-flash,确认该模型在你要用的地域已开放。模型的可用地域包括华北2(北京)、新加坡、中国香港、日本(东京)、德国(法兰克福)、美国(弗吉尼亚),不同地域的 API Key 不互通,请选离你用户最近、且计费账户已绑定的地域。若控制台没有列出该模型,说明你所在地域尚未灰度开放,换地域或等待即可。
接着做计费开通。全模态模型按 Token 计费,首次调用前必须确认业务空间已开启对应模型的计费开关,否则请求会直接返回未开通错误。百炼的计费是后付费(按量)或资源包,具体在"费用中心"查看。建议给生产环境单独开一个子账号并只授予 DashScope 调用权限,避免主账号密钥泄露带来的全局风险。
最后申请 API Key。在"API Key 管理"页面新建一个 Key,复制后只保存在环境变量里,不要写进源码或提交到仓库。下面的命令把密钥注入当前 shell,Python 进程通过 os.environ 读取:
export DASHSCOPE_API_KEY="sk-你的密钥"
export DASHSCOPE_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"密钥泄露的处理方式很简单也很关键:立刻在控制台吊销旧 Key 并新建一个,同时排查哪些服务在用旧 Key。把 Key 当成密码管理,而不是当成配置项随手贴。
二、环境准备:OpenAI 兼容调用
Qwen3.8-Omni-Flash 同时兼容 OpenAI 的 Chat Completions 与 Responses 两套接口,所以你不需要学新 SDK,装一个 openai 包即可。官方要求 Python SDK 版本不低于 1.52.0,Node.js SDK 不低于 4.68.0,低于此版本会缺少多模态字段。
python3 -m pip install --upgrade openai客户端初始化只做一件事:把 base_url 指向百炼的兼容端点,api_key 用环境变量。下面这段代码是后续所有场景的基础骨架,建议你先单独跑通它,确认能返回文本,再叠加音视频。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url=os.environ["DASHSCOPE_BASE_URL"],
)
resp = client.chat.completions.create(
model="qwen3.8-omni-flash",
messages=[{"role": "user", "content": "用一句话介绍你自己。"}],
)
print(resp.choices[0].message.content)几个需要记牢的接口事实。第一,音频和视频只能放在 user 消息的 content 数组里,不能出现在 system 或 assistant 消息。第二,传媒体用可公网访问的 URL,字段为 input_audio 或 input_video,内部再放 url 与 format;也可以直接给 base64 数据,但长文件用 URL 更省心也更稳。第三,模型支持深度思考,默认开启,可用 reasoning_effort 调节 xhigh、medium、low 三档,preserve_thinking 默认开启;复杂任务用 xhigh,追求速度成本用 low。第四,支持 Function Calling 与联网搜索,联网在 Chat Completions 下用 extra_body 传 enable_search,Responses 下用内置 web_search 工具。
如果你已经在用其他 OpenAI 兼容网关,把 base_url 换掉就能复用同一套代码。具体字段名与限流数值,以百炼控制台与官方限流文档为准,本篇代码均为示例骨架。
三、场景一:一小时会议音视频转纪要
这是最贴近办公的场景。原生支持一小时音视频输入意味着你不用先切片,整段录音或录像直接丢给模型,它会端到端做说话人切分、转录、身份对齐、纪要生成,还能顺着待办继续调用工具。下面给一个可落地的调用骨架,音频用可访问的 WAV 或 MP3 链接。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url=os.environ["DASHSCOPE_BASE_URL"],
)
audio_url = os.environ["MEETING_URL"] # 会议录音/录像的可访问链接
prompt = """你是一会议纪要与执行助手。请基于这段会议音视频输出结构化结果:
1. 会议概览:时间、参与人(按声音区分并给出发言人编号如 发言人A)、核心议题。
2. 逐议题纪要:每个议题的讨论要点、达成的结论、存在的分歧。
3. 待办清单:每条含「任务内容、负责人(发言人编号或姓名)、截止时间、优先级」。
4. 风险与阻塞:未决事项、需要的外部依赖。
要求说话人切分准确,时间引用精确到分;若声音无法区分身份,用发言人编号代替姓名。"""
resp = client.chat.completions.create(
model="qwen3.8-omni-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{"type": "input_audio", "input_audio": {"data": audio_url, "format": "wav"}},
],
}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in resp:
if not chunk.choices:
if chunk.usage:
print("\nUsage:", chunk.usage)
continue
delta = chunk.choices[0].delta
if delta.content:
print(delta.content, end="")跑通后你会得到一份带发言人与时间点的纪要。如果会议超过官方推荐的 60 分钟单段上限,先把音视频按章节或每 40 分钟切成数段,逐段调用,最后用一段轻量请求把各段纪要合并成总览。合并时把每段结论作为上下文喂进去,要求模型去重并统一待办列表,避免重复项。
想进一步自动化,可把待办写回飞书文档、发邮件或建任务。这正对应 会议录音纪要工作流 SOP 与 工作流会议笔记自动化 里的方法,本模型负责"听懂并产出",外部工具负责"执行"。
四、场景二:Video2Note 长视频转带时间戳图文笔记
Video2Note 把数小时视频压缩成图文对应、带时间戳的笔记。通过 API,我们能拿到结构化文本(含精确到秒的时间戳),再配合抽帧把关键画面拼成可复习的 PDF。官方对多数分析与转写场景推荐单段视频长度不超过 60 分钟,更长的素材先分段。
下面这个骨架强调"带时间戳"与"可定位画面"。它要求模型在每个要点后给出起止时间,方便后续抽帧。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url=os.environ["DASHSCOPE_BASE_URL"],
)
video_url = os.environ["VIDEO_URL"]
prompt = """请把这段视频整理成带时间戳的图文笔记,输出 Markdown:
1. 逐段小结:每段给「开始时间 - 结束时间」与一句话摘要。
2. 关键知识点:每条含时间戳、标题、要点、对应的画面描述。
3. 术语与人物:出现的专业词、人名、机构名及首次出现时间。
4. 金句或重要结论:原文摘录加时间戳。
要求时间精确到秒,便于后续按时间戳抽取画面帧。"""
resp = client.chat.completions.create(
model="qwen3.8-omni-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{"type": "input_video", "video_url": {"url": video_url}},
],
}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in resp:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")拿到文本后,处理链条通常是三步。第一步,用正则从模型输出里抽取所有"开始 - 结束"时间戳。第二步,用 ffmpeg 在对应时间点截一帧:ffmpeg -ss 起始秒 -i 视频 -frames:v 1 输出图。第三步,把时间戳、文字与截图按笔记顺序拼进一个 HTML 或 Markdown,再转 PDF。这样线性视频就变成可检索、可复习的内容资产。视频若超过 60 分钟,按章节切分后逐段生成再合并,合并时让模型按时间线重排并消除重复。
控制质量与成本的一个技巧是 max_pixels:快速浏览用较低像素(官方约 230400),内容抽取用中高像素(约 921600 到 2073600),细粒度多人场景才上最高像素。像素越低越省 Token,但画面细节越少,按用途权衡即可。
五、场景三:可控音视频 Caption(按需提问)
可控 Caption 是这套模型最被低估的能力:你不一定要一次要完整描述,而是指定描述对象、时间范围、信息粒度与输出格式,让模型只回答你关心的那一段。典型用法是"只在 10:00 到 15:00 区间,按每 5 分钟一段,输出人物动作与台词"。
下面骨架演示"限定时间窗 + 指定粒度 + 指定格式"三要素如何写进同一个 prompt。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url=os.environ["DASHSCOPE_BASE_URL"],
)
video_url = os.environ["VIDEO_URL"]
prompt = """仅分析视频 00:10:00 到 00:15:00 这一段,忽略其余部分。
按每 5 分钟一段切分,每段输出:
- 时间区间
- 画面中人物及其动作、镜头与光影变化
- 该段出现的台词原文
输出为表格,不要扩展背景知识。"""
resp = client.chat.completions.create(
model="qwen3.8-omni-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": prompt},
{"type": "input_video", "video_url": {"url": video_url}},
],
}],
)
print(resp.choices[0].message.content)可控性的价值在于省钱与聚焦。与其让模型把整段视频从头描到尾,不如先粗扫定位候选片段,再对关键区间放细。官方实验中,这种"由粗到细"的取证方式让 Token 消耗下降约 45.7%,同时准确率从 63.4 提升到 67.8。把它写成可复用的函数:传入视频链接、时间窗、粒度、格式四参数,返回结构化结果,就能服务字幕校对、镜头清单、教学切片等多种需求。
六、成本控制:降价口径、取证与分段策略
先讲清楚官方降价口径,避免误读。相比上一代 Qwen3.5-Omni 系列,Qwen3.8-Omni-Flash 的音频输入价格降幅超 98%,音视频输入整体降价超 93%。更重要的是"全模态同价":文本、图像、音频、视频的输入计费统一,不再为音频视频单独加价。中国内地参考价为输入 0.8 元 / 百万 Token、缓存命中 0.1 元 / 百万 Token、输出 2.7 元 / 百万 Token,实际以百炼控制台最新价格为准。
三条省钱策略。第一,善用上下文缓存:相同前缀的媒体与系统提示会被自动缓存命中,重复调用同一视频的不同问题能显著降本。第二,用 Agentic 取证替代全量扫描:先粗扫定位、再细查关键段,官方数据 Token 降约 45.7%。第三,分段与按需提问:把长会议、长视频按 40 到 60 分钟切片,只对你关心的区间提问,避免为无关内容付费。
在参数层,reasoning_effort 直接关联成本:xhigh 最准但最贵,medium 平衡,low 最快最省;能跑通 low 的任务就不要默认 xhigh。输出长度也要约束,prompt 里明确要求"简洁""只列要点"能有效压低输出 Token。批量场景优先走缓存命中的稳定前缀,把视频 URL 与固定指令放在消息前部,变化的问题放在末尾。
七、踩坑速查:文件、格式、超时与链接
把高频问题一次列清,省得每次都从头查。
| 坑 | 现象 | 解法 |
|---|---|---|
| 媒体链接不可访问 | 返回 4xx 或超时,提示资源拉取失败 | 用公网可访问 URL(OSS 或已授权 CDN),本地文件先上传再传链 |
| 单段时长超限 | 长会议/长视频结果截断或报错 | 官方多数场景推荐单段 ≤60 分钟,更长先分段再合并 |
| 音频格式不被识别 | 提示 format 不匹配 | 显式传 format(如 wav、mp3),多通道空间音频加 use_multichannel |
| 深度思考拖慢且费 | 首字慢、Token 偏高 | 简单任务设 reasoning_effort=low,关掉不必要的 preserve_thinking |
| 请求超时 | 大模型视频分析耗时超过网关超时 | 减小 max_pixels、缩短时间窗、分段调用 |
| 地域 Key 不互通 | 换地域后鉴权失败 | 每个地域用对应地域申请的 Key,base_url 也随地域切换 |
| 限流报错 | 429 或并发超限 | 降并发、加退避重试,限流数值以官方限流文档为准 |
补充两点。其一,音频输入支持 113 种语言与方言,含 39 种中文方言,多通道空间音频(双声道立体声、四通道)通过 use_multichannel 开启,默认按单通道处理。其二,具体文件大小上限、码率上限与精确限流数值,官方未在公开文档给出统一数字,统一以百炼控制台与官方限流页为准;本篇所有涉及数值的参数均为示例骨架,落地前请核对控制台。
常见问题
问题 1:模型 ID 到底写什么字符串?
答:写作 qwen3.8-omni-flash。这是官方文档与模型卡片给出的 ID。不同地域、不同业务空间的精确可用 ID 以百炼控制台模型列表为准,调用前在控制台确认一次即可,不要凭记忆硬编码。
问题 2:音频和视频应该怎么传给接口?
答:只放在 user 消息的 content 数组里,用可公网访问的 URL,字段为 input_audio(配 data 与 format)或 input_video(配 url)。也可以传 base64,但长文件用 URL 更省心。媒体不能出现在 system 或 assistant 消息中。
问题 3:一小时会议真的能一次吃下吗?
答:模型原生支持一小时音视频输入,1M 上下文可容纳数小时素材。但官方对多数分析、转写场景推荐单段不超过 60 分钟;超过这个长度建议先按章节或每 40 分钟切片,逐段调用后再合并,既稳又可控。
问题 4:支持联网搜索和函数调用吗?
答:都支持。联网在 Chat Completions 下通过 extra_body 传 enable_search 开启,Responses 接口下用内置 web_search 工具。函数调用即标准 Function Calling,可让模型在理解音视频后继续调用你的工具去发邮件、建任务、写文档。
问题 5:音频输入这么便宜,是不是所有模态都同价?
答:是。Qwen3.8-Omni-Flash 采用"全模态同价",文本、图像、音频、视频的输入统一计费,不再为音视频单独加价。相对上一代,音频输入降幅超 98%、音视频整体降幅超 93%,这是它能把长会议、长视频分析做成日常成本的关键。
参考来源
- 阿里云百炼官方文档:Qwen3.8-Omni-Flash 模型卡片与 Qwen-Omni 调用指南(help.aliyun.com / alibabacloud.com/help)
- Qwen 官方发布博客与模型卡片:qwen.ai/blog?id=qwen3.8-omni-flash
- 百炼控制台与限流、价格页:bailian.console.aliyun.com(具体数值以控制台最新页面为准)
- 多模态插件与 Agent 工作流:Qwen-MM-Plugins(github.com/QwenLM/Qwen-MM-Plugins)