垂直模型:代码、语音、图像
Codestral 这类垂直模型吃的是窄任务:补全、转写、出图。通用模型(GPT-5.6、Claude、Gemini)吃的是推理、工具和跨步骤编排。没有对照实验就不打分。数字只留厂商写过、且能点开官方页的那几条。
选垂直,还是选通用
先看输入输出是不是整天同一副形状。光标中间补一段、整段录音出稿、一条提示词出图、一路实时语音——形状稳,成功标准也稳,才值得单独接一条垂直模型。下一步还取决于上一步的判断,就不要拆。
选垂直。 量在次数和延迟上,不在「想明白」。补全被采纳或被扔掉,转写对或不对,图能用或作废。
不选垂直。 先读 issue 再改三处代码再写测试;会议录音还要对着截图和仓库约定;出图只是某一步,后面还要解释取舍。这些要上下文和工具,交给通用模型。
| 任务 | 选 | 不选 |
|---|---|---|
| IDE 补全 / FIM | Codestral | 用旗舰聊天模型逐 token 填光标 |
| 仓库级重构、跨文件推理 | GPT-5.6 / Claude | 只靠补全模型「写完一个服务」 |
| 已录好的音视频转写 | gpt-transcribe 或 whisper-1 |
把聊天模型当成转写器 |
| 实时语音对话 | Realtime(gpt-realtime-2.1) |
文本模型外挂一段 TTS 冒充双向会话 |
| 程序里出图、改图 | gpt-image-2 |
让只支持看图的模型去画 |
| 审美向静帧、无 API 编排 | Midjourney V8.2 | 把 Discord 工作流硬塞进服务端循环 |
分层写死:垂直模型补执行,不补判断。路由、是否采纳、要不要重跑,留在通用模型或规则。一条链里不要让三个垂直模型互相投票。
代价也要点名。垂直接口更快更便宜,换来的是不会读完整仓库、不会在语音里做复杂工具规划、不会在出图之后解释为什么这个版式不行。把「便宜」当成「全能」,最后还是把任务送回旗舰模型,白接一条链路。
代码:Codestral 做 FIM,不做架构
2025-07-30 的 Codestral 25.08 是现行产品线,模型 ID codestral-2508,别名 codestral-latest。官方模型卡写低延迟、高频次,专长 fill-in-the-middle 和代码生成;上下文 128k;标价 input $0.3 / output $0.9 per M tokens(模型卡)。
厂商相对上一版 Codestral 的声明(不是对 GPT 的对照实验):accepted completions +30%,suggestion 之后保留下来的代码 +10%,runaway generations 少 50%。出处是同一篇发布说明。跨厂 HumanEval 对照没有官方 URL,不写。
FIM 存在的理由很具体:光标前面是 prompt,后面是 suffix,要填的是中间。聊天模型只有「从这里往后写」。IDE 补全要的是中间那段;把「实现一个 Redis 缓存装饰器」丢给 FIM,是在用错入口。那种任务走 chat completions,或直接交给通用模型。
接口以 FIM 文档 为准。下面摘自该页,未在本机跑过。
from mistralai.client import Mistral
import os
with Mistral(api_key=os.getenv("MISTRAL_API_KEY", "")) as mistral:
res = mistral.fim.complete(
model="codestral-latest",
prompt="def",
stream=False,
suffix="return a+b",
)
print(res)常见失败:只传 prompt、不传 suffix。模型按续写补,IDE 里就会把光标后面已有的代码再生成一遍,或写出和后缀冲突的签名。核对方法:同一段前后文,带 suffix 和不带各打一次,看中间是填缝还是续写。
128k 上下文是上限,不是日常补全该塞进的量。补全请求应只带当前文件附近、必要的前缀后缀。把整个仓库塞进 Codestral,既贵也慢,还是在用它做通用模型的事。官方能力页把 FIM 标成这条产品的核心(code generation)。
选 Codestral。 补全、短补丁、多语言样板、延迟敏感的 IDE 路径。
不选 Codestral。 设计 API、在未知栈里做取舍、要先读完整仓库再改。那是通用模型加工具的工作。
语音:转写一条路,实时对话另一条
OpenAI 音频不是一个万能「Audio」模型。现行拆法见 Speech to text 和 Voice agents。
已录好的文件走 POST /v1/audio/transcriptions。官方推荐新转写用 gpt-transcribe。时间戳、字幕、译成英文,仍用 whisper-1(Whisper 模型页)。文档写明 API 里的 Whisper 由开源 Whisper V2 驱动。说话人标注是专用 gpt-4o-transcribe-diarize,不是默认转写模型。
实时对话走 Speech-to-speech:Realtime,模型 ID gpt-realtime-2.1(模型页)。浏览器用 WebRTC,服务端到服务端用 WebSocket。链式 STT → 文本模型 → TTS 只在流程必须拆开、必须留下中间稿时用。要自然插话、低首包延迟,走 Realtime,不要把三段 API 串成伪实时。
文件转写的硬限制也是官方写的:单文件 25 MB;格式 mp3 / mp4 / mpeg / mpga / m4a / wav / webm。超了要压或切,不要切在一句话中间。whisper-1 的 prompt 上限 224 tokens,只适合少量专有名词;长术语表应转写完再用文本模型后处理,官方指南里有这条路径。
from openai import OpenAI
client = OpenAI()
audio_file = open("audio.wav", "rb")
transcription = client.audio.transcriptions.create(
model="gpt-transcribe",
file=audio_file,
)
print(transcription.text)需要词级时间戳时换成 whisper-1:
transcription = client.audio.transcriptions.create(
file=open("speech.wav", "rb"),
model="whisper-1",
response_format="verbose_json",
timestamp_granularities=["word"],
)
print(transcription.words)两段都摘自官方文档,未在本机跑过。
失败怎么看见:超 25 MB 会被拒,不是「转写质量变差」。whisper-1 要时间戳却忘了 verbose_json,返回里没有 words。Realtime 把 API key 直接暴露给浏览器,会话会在错误的一层鉴权。官方路径是服务端签发 ephemeral key。
选 gpt-transcribe / whisper-1。 会议稿、字幕、归档、英译。
选 Realtime。 要插话、低首包延迟、语音里直接调工具。
不选。 用通用聊天模型的文本输出冒充语音会话;也不要把转写模型和实时模型当成可以互相替换的同一个产品。
图像:API 出图用 gpt-image-2,审美向用 Midjourney
OpenAI 出图现行模型是 gpt-image-2。Image generation 写明:单次出图走 Images API;多轮改图、把出图当工具,走 Responses API,主模型用 GPT-5 一代(文档示例为 gpt-5.6),工具层再选 GPT Image。部分账号要先做 API Organization Verification,未完成时调用会失败,这不是模型「画不出来」。
官方自己列的限制:复杂提示词可能到 2 分钟;文字排版仍可能不准;角色和品牌跨图一致性不保证;版式控制仍然弱。这些是厂商边界。没有跨产品的文字渲染对照分。
from openai import OpenAI
import base64
client = OpenAI()
result = client.images.generate(
model="gpt-image-2",
prompt="A children's book drawing of a veterinarian using a stethoscope to listen to the heartbeat of a baby otter.",
)
image_bytes = base64.b64decode(result.data[0].b64_json)
with open("otter.png", "wb") as f:
f.write(image_bytes)摘自官方文档。常见失败:error.code = "moderation_blocked",不要原样重试;改提示词或输入图。把已经下线或不存在的 image model ID 写进 model,接口会直接拒。
Midjourney 是另一条产品。官方版本说明:默认模型 V8.2,2026-07-24 起(Version,V8.2 发布说明)。定位是审美、画质、Personalization;入口是网站和 Discord,不是 OpenAI 那种 REST 出图。没有官方跨厂准确率表,不编。
看图和出图不要混。Claude 的视觉文档写明:只理解图像,不生成、不编辑(Vision)。通用多模态能描述「这张图该长什么样」,代替不了图像生成模型。
选 gpt-image-2。 产品里要出图、改图、和文本模型同一条 API 账本。
选 Midjourney。 要静帧质量、风格、人工迭代,且不需要把生成嵌进服务端。
不选。 用通用聊天模型代替生成模型;也不要用只支持看图的模型出图。
垂直模型叠在通用模型前面,不要叠在后面
日常接法是:先垂直、后通用,而不是反过来。IDE 里 Codestral 先给出补全,采纳或不采纳;需要跨文件时再开通用模型。录音先出逐字稿,再用通用模型整理行动项——中间那份稿留着,后面才能核对。出图先 gpt-image-2 或 Midjourney,再用通用模型写说明,不要先让通用模型「想象一张图」再当生成结果。
反过来会变贵。通用模型先做一遍完整回答,再把同一段扔给垂直模型「润色」,等于付两次,还丢掉垂直模型真正擅长的接口形状(FIM 的 suffix、转写的时间戳、出图的 mask)。
Whisper 和 gpt-transcribe 也不要串成互为后处理。时间戳只能向 whisper-1 要;流式文件转写是 gpt-transcribe 的能力,whisper-1 文档写了不支持 stream。需要两样就打两次不同模型,或接受缺其中一样,不要假定一个 ID 能开全套音频功能。
边界
垂直模型便宜、快、接口窄,换来的是不会替通用模型做决定。
- 没有官方出处的数字等于谣言。 厂商对「相对自己上一版」的百分比可以引;没有 URL 的跨厂准确率不写。
- 先核对现行 model ID。 文档里的名字会换代。新代码对着 FIM、transcriptions、Images API 的当前页抄,不要对着记忆里的演示名抄。
- GPT-4o 还在。 Hello GPT-4o 是 2024 年的多模态节点;2026-09 的旗舰通用线是 GPT-5.6 家族。新接的通用能力跟 5.6 走。
- 一条链里最多一个决策模型。 补全、转写、出图可以并行打垂直接口;路由和回滚留在通用模型或规则。
接法核对:Codestral 用 FIM 跑一次光标补全;转写用 25 MB 以内的真实文件打 gpt-transcribe;出图用 gpt-image-2。这三项通了,再谈分层。通不了,先修接口。