AI 模型配置与多 Provider 切换
如果你是从“AI 插件各自填 API Key”的年代过来的,第一次用 AI Models 会觉得挺意外:为什么装一个插件,Eagle 就知道该用哪个模型了?
这一篇讲这套统一模型中心怎么用、怎么配,以及怎么按自己的隐私和成本需求选 Provider。
统一模型中心解决的是什么问题
在没有统一配置中心的年代,痛点是这样的:
装插件 A——输一遍 API Key。装插件 B——再输一遍。装插件 C——发现它压根不支持你用的模型。
AI Models 是官方提供的统一 AI 模型配置中心。你在偏好设置里配一次,所有建立在它之上的 AI 插件都能直接用——包括官方的 AI Search 和 AI Action。
一句话概括:它是配置一次、处处可用。
支持的 Provider
目前支持八个 Provider,分三类。
商业模型:
| Provider | 说明 |
|---|---|
| OpenAI | GPT-5、GPT-4o 等 |
| Anthropic Claude | Claude Opus、Sonnet 等 |
| Google Gemini | Gemini 3、Gemini 2.0 等 |
| DeepSeek | DeepSeek-V3、DeepSeek-R1 等 |
| 通义千问 | Qwen 系列 |
OpenAI 兼容协议:
| Provider | 说明 |
|---|---|
| OpenAI Compatible | 任何提供 OpenAI 兼容接口的服务 |
本地模型(完全离线):
| Provider | 说明 |
|---|---|
| Ollama | 本地模型,无需 API Key |
| LM Studio | 图形化界面,新手友好,无需 API Key |
八个 Provider 不等于只能用八家服务。 OpenAI Compatible 那一项是关键——市面上绝大多数模型服务都提供 OpenAI 兼容接口,包括 Groq、Together AI、Fireworks、vLLM 等。只要你的服务支持 OpenAI 兼容模式,就能配进来。
换句话说:可用模型的实际范围比列表看起来宽得多。
设置步骤
- 打开 Eagle 插件中心,搜索并安装 AI SDK(AI Models)插件。
- 打开偏好设置,在左侧栏找到“AI 模型”。
- 在右侧设置区里选择模型服务提供商,填入 API Key。
- 分别设置默认语言模型和默认视觉模型。
第 4 步容易被漏掉,但它是整套配置里最关键的一环——下面单独讲。
另外一个省心的机制: 当你安装一个依赖 AI SDK 的插件时,Eagle 会自动提示你安装这个依赖插件。也就是说,你不需要手动去装,Eagle 会确保依赖到位才允许插件运行。
版本提示:AI SDK 相关能力需要 Eagle 4.0 Build 20 或更高版本。Build 20 的更新说明里提到,更新后偏好设置中已经出现了“AI Search”和”AI Models“两个面板。
语言模型和视觉模型要分开设
这是最需要理解的一点,也是最影响实际效果的一点。
为什么分开? 因为“生成一段文字”和”看懂一张图“对模型的要求完全不同。
| 类型 | 干什么 | 用途 |
|---|---|---|
| 语言模型 | 处理文字 | 生成命名规则、翻译标签、写文本描述 |
| 视觉模型 | 理解图像 | AI Rename、AI Description、AI Folders、AI Tags |
实践建议:
- 视觉模型要选强的。 它承担了 AI Action 的全部四个能力,是决定产出质量的核心变量。如果你的预算有限,宁可压缩文字生成的开销,也要把视觉模型配好。
- 语言模型可以用便宜的。 翻译标签、生成规则说明这类任务对模型要求不高。
- 两个都设默认值的意义在于: 不同插件可以各自选不同的模型,而不需要你再次输入 API Key。比如 AI Search 用视觉模型,某个翻译插件用语言模型,你各配一次就都解决了。
三种部署方式的取舍
| 方式 | 代表 | 优势 | 代价 |
|---|---|---|---|
| 云端 API | OpenAI、Claude、Gemini、DeepSeek 等 | 能力强、速度快 | 有费用、素材要出本机(取决于任务类型) |
| 本地模型 | Ollama、LM Studio | 完全离线、无费用、隐私 | 慢,尤其视觉任务;需要一定硬件 |
| 中转/兼容服务 | OpenAI Compatible(Groq、vLLM 等) | 灵活、可控成本 | 质量取决于你选的服务 |
关于隐私的一个要点: AI Search 的索引和分析是在你本机完成的,图片不上传云端,断网也能用。这是官方明确的设计。
但需要区分清楚:AI Search 本地运行,不等于所有 AI 功能都本地运行。 AI Action 需要视觉模型去理解图片内容,如果你配的是云端视觉模型,那图片是要发给模型服务的。
所以对敏感素材的态度应该是:
- 想完全离线 → 用 Ollama / LM Studio,接受速度慢一些
- 接受出本机 → 用云端视觉模型,质量更好
这个选择应该在配模型的时候就明确下来,而不是等到用了才发现有问题。
常见坑:以为“AI Search 是本地的”就推断”整个 AI 体系都不出本机“。AI Search 和 AI Action 的数据路径不同——前者的索引和分析是本地的,后者调用的视觉模型可能是云端的。对客户机密素材敏感的话,这一点必须先确认。
多个 Provider 切换的实际策略
配多个 Provider 的价值不是“多”,而是在不同场景换用。
场景一:主模型出问题时快速切换。 某个 Provider 限流、宕机、或者账上没钱了,切到备用的继续跑。每个 Provider 的配置是完全独立的,所以切换只是改默认模型,不需要重新填 Key。
场景二:按任务分配成本。 视觉任务用强的模型,文字任务用便宜的模型。批量跑 500 张时,这个差异是实打实的成本。
场景三:本地和云端互补。 日常小任务用本地模型跑,省钱;需要高质量产出的关键批次用云端模型。
场景四:验证产出质量。 同一批素材用两个不同模型各跑一次,对比结果。这其实是判断“你的指令写得好不好”的最直接方法——如果两个模型产出都差不多,说明瓶颈在指令;差距明显,说明瓶颈在模型。
如果你会写一点代码
AI SDK 对插件开发者开放了一套接口,普通用户了解一下也有价值——它能帮你理解 AI 插件的行为逻辑。
获取模块:
const ai = eagle.extraModule.ai;
取默认模型(推荐做法):
// 语言模型;另有 "image" 可取默认视觉模型
const defaultLLM = ai.getDefaultModel("chat");
if (!defaultLLM) {
// 用户还没设默认模型,直接打开设置面板
ai.open();
return;
}
const model = ai.getModel(defaultLLM);
const result = await ai.generateText({
model,
prompt: "请用一句话介绍数字艺术"
});
这里有一个值得学的思路:官方文档明确建议优先用 getDefaultModel(),而不是在代码里写死具体的 Provider 和模型名。 理由是——写死 openai("gpt-5"),如果用户没配 OpenAI 就直接报错;用默认模型则能保证用户已经配置并验证过。
这个思路对普通用户也有价值: 你的模型配置应该是“我在偏好设置里选的”,而不是”某个插件默认带的“。前者是你可控的,后者是别人替你决定的。
其他常用能力:
ai.getProviders()— 获取全部 Provider(返回数组,不是对象)ai.getAvailableProviders()— 只返回你已完成配置的 Providerai.getProvider(name)— 获取指定 Providerai.open()— 打开模型设置面板
一个容易踩的坑:getProviders() 返回的是数组,不是对象。写成解构赋值 const { openai } = ai.getProviders() 是错的。另外如果写成 await ai.getProviders() 也不对——这个方法是同步的。
常见坑:Provider 和 Model 之间用双冒号
::分隔,比如openai::gpt-5。用单冒号或斜杠会报错。这个格式错误的表现是“明明填了却读不到”。
一个配置检查清单
配完之后过一遍:
- 语言模型和视觉模型都设了默认值吗? 只设一个的话,某些功能会不可用。
- 切到 AI Action 试跑 10 张,出结果了吗? 这是验证视觉模型配置是否生效的最快方式。
- 切到 AI Search 试搜一次,出结果了吗? 验证索引和服务是否正常。
- 云端模型的费用和隐私影响,你确认过吗? 尤其是客户素材。
- 有没有备用的 Provider 配置? 主 Provider 挂掉时的保险。
第 4 条是最容易被忽略但最该先想清楚的。API Key 填完不会提醒你“这批图要发到外部服务”,所以这个判断要在配置之前做,而不是在跑完整批之后才做。
最后:配置决定的只是上限
模型配得再好,也弥补不了规则写得糊。
官方的说法很准确:重命名和描述的效果同样受模型能力、提示设计、素材类型和批量处理方式影响。模型理解不足,或者提示过于笼统,生成的描述就容易流于表面。
所以合理的期待是:好模型 + 好指令 = 好产出;两者只有一个好,结果都一般。 如果产出质量不满意,先判断是哪一环出了问题——换模型试一次,如果还是不行,那就是指令的问题。
整理人:WorkBuddy
