免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

Typebot 模型列表更新指南:为 OpenAI 与 Anthropic 块同步最新 AI 模型

Typebot 模型列表更新指南:为 OpenAI 与 Anthropic 块同步最新 AI 模型 Typebot 模型列表更新指南为 OpenAI 与 Anthropic 块同步最新 AI 模型【免费下载链接】typebot.io Typebot is a powerful chatbot builder that you can self-host.项目地址: https://gitcode.com/GitHub_Trending/ty/typebot.io本指南围绕 Typebot 开源仓库中的update-models技能文档系统讲解如何在packages/forge/blocks/openai与packages/forge/blocks/anthropic两个 Forge 集成块中维护 AI 模型清单。你将掌握模型常量文件的完整结构与每个数组的用途、模型下拉选项autoCompleteItems在界面层的消费链路、通配符形式的图片 URL 支持判定逻辑以及一套可重复执行的「先取最新列表 → 对比 → 顶部插入新模型 → 保留旧模型 → 更新命名模式」的更新流程。一、为什么需要手动维护模型列表Typebot 的 OpenAI 与 Anthropic 集成块在配置面板中提供了模型下拉/自动补全autoComplete选项供用户在创建聊天消息、生成变量时选择模型。这些候选列表并非运行时从各厂商 API 动态拉取而是硬编码在 Forge 块的常量文件中作为编辑器界面的静态数据源。从源码可以看到模型选项通过option.string.meta({ layout: { autoCompleteItems: models } })暴露给界面OpenAI 块的Ask Model动作在 actions/askModel.ts 中定义autoCompleteItems直接引用constants.ts中的models数组Anthropic 块的Create Chat Message动作在 actions/createChatMessage.ts 中定义autoCompleteItems引用anthropicModels数组。因此每当上游厂商发布新模型若不更新这些常量文件用户在 Typebot 编辑器中就看不到新模型选项。这正是update-models技能存在的意义——它把这一维护工作标准化为固定流程。二、待修改的文件与核心数据结构技能文档明确指定了要修改的文件与对应的常量文件涉及的常量packages/forge/blocks/openai/src/constants.tsmodels文档中原称chatModels、reasoningModels、modelsWithImageUrlSupportpackages/forge/blocks/anthropic/src/constants.tsanthropicModels、modelsWithImageUrlSupport需要说明的是技能文档写作时提到的chatModels、reasoningModels两个数组在当前仓库源码中已合并为单个models数组详见下文更新时以当前源码的实际导出为准。2.1 OpenAI 块常量文件packages/forge/blocks/openai/src/constants.ts 是模型更新的核心文件完整结构如下models第 18–40 行主模型列表按「最新在前」排序包含gpt-5.4、gpt-5.4-pro、gpt-5.4-mini、gpt-5.4-nano、gpt-5.3-chat、gpt-5.2-pro、gpt-5.2、gpt-5.1-chat、gpt-5、gpt-5-mini、gpt-5-nano、gpt-4.1系列、gpt-4o/gpt-4o-mini、o3/o4-mini/o3-mini/o1/o1-mini推理模型等。注意该数组同时容纳了聊天模型Chat与推理模型Reasoning即文档中chatModels与reasoningModels合并后的形态。modelsWithImageUrlSupport第 42–47 行支持图片 URL 输入的模型命名模式使用通配符匹配如gpt-5*、gpt-4-turbo*、gpt-4o*、gpt-4*vision-preview。excludedModelsFromImageUrlSupport第 49 行图片 URL 支持的排除名单例如gpt-4-turbo-preview虽匹配gpt-4-turbo*模式但不支持视觉输入需在此显式排除。defaultOpenAIOptions第 51–54 行默认选项model: gpt-4o-mini、voiceModel: tts-1。不建议随意改动默认模型它决定了新用户的初始体验。ttsModels第 1 行语音合成模型列表gpt-4o-mini-tts、tts-1、tts-1-hd供Create Speech动作使用。transcriptionModels第 2–7 行语音转文字模型列表gpt-4o-transcribe、gpt-4o-mini-transcribe、gpt-4o-transcribe-diarize、whisper-1供Create Transcription动作使用。openAIVoices第 9–16 行可用音色alloy、echo、fable、onyx、nova、shimmer用as const收紧为字面量联合类型。maxToolCalls第 56 行单轮执行中最多允许的工具调用轮次数10与模型列表无直接关系但属于该文件的受控常量。2.2 Anthropic 块常量文件packages/forge/blocks/anthropic/src/constants.ts 结构更简单anthropicModels第 1–14 行Claude 模型列表按最新在前排列如claude-opus-4-6、claude-sonnet-4-6、claude-haiku-4-5、claude-sonnet-4-5、claude-opus-4-5、claude-opus-4-1、claude-sonnet-4-0、claude-opus-4-0以及claude-3-7-sonnet-latest、claude-3-5-haiku-latest、claude-3-5-sonnet-latest、claude-3-opus-latest等-latest别名。modelsWithImageUrlSupport第 18 行Anthropic 侧为单一模式claude-*——即所有 Claude 模型都支持图片输入。supportedImageTypes第 20–25 行支持的图片 MIME 类型白名单image/png、image/jpeg、image/gif、image/webp同样使用as const。defaultAnthropicMaxTokens第 16 行默认最大 Token 数1024被createChatMessage.ts中maxTokens选项的defaultValue引用。maxToolRoundtrips第 27 行工具调用最大往返次数10。三、模型列表的消费链路从常量到运行时行为理解常量如何被消费才能在更新时预判影响范围。以「图片 URL 支持」为例helpers/isModelCompatibleWithVision.ts 展示了完整的判定逻辑import { wildcardMatch } from typebot.io/lib/wildcardMatch; import { excludedModelsFromImageUrlSupport, modelsWithImageUrlSupport, } from ../constants; export const isModelCompatibleWithVision (model: string | undefined) model !excludedModelsFromImageUrlSupport.includes(model) ? wildcardMatch(modelsWithImageUrlSupport)(model) : false;判定规则可以概括为三步模型名为空 → 直接返回false模型命中excludedModelsFromImageUrlSupport排除名单 → 返回false否则用wildcardMatch来自 lib/wildcardMatch.ts对modelsWithImageUrlSupport中的通配符模式逐一匹配。在 OpenAI 的Ask Model运行时handlers/askModelHandler.ts该判定结果直接决定消息内容的处理方式const messageContent isModelCompatibleWithVision(model) ? await splitMessageIntoResponsesApiInputItems(message) : message;即模型支持视觉时用户消息会被拆分为适配 Responses API 的多模态输入项否则按纯文本消息发送。Anthropic 侧也有对称的判定文件 helpers/isModelCompatibleWithVision.ts复用wildcardMatch与claude-*模式。这解释了为什么技能文档把modelsWithImageUrlSupport的更新单列为一步若新模型在 API 侧支持图片输入却未命中通配符模式或反过来某模型命中模式但不支持视觉都会导致消息组装行为错误——前者丢失多模态能力后者可能引发请求失败。此外OpenAI 块的ttsModels与transcriptionModels分别被 actions/createSpeech.ts 与 actions/createTranscription.ts 的autoCompleteItems引用Anthropic 的defaultAnthropicMaxTokens则在createChatMessage.ts第 83–90 行作为maxTokens的默认值。运行时行为均有对应测试覆盖例如 handlers/createTranscriptionHandler.test.ts 与 handlers/createChatCompletionHandler.test.ts。四、模型更新五步法标准操作流程以下流程直接继承自update-models技能文档并补充了可执行细节步骤 1获取上游最新模型列表以models.dev一个开源的、提供各厂商 API 精确模型 ID 的模型数据库作为唯一事实来源。按 provider 维度分别抓取 OpenAI 与 Anthropic 的当前模型列表重点收集新发布模型的官方 API 标识符model ID。关键约束写入models/anthropicModels的必须是 API 可用的精确模型 ID例如gpt-4.1、claude-sonnet-4-5不能使用展示名称或别名否则块运行时会向厂商 API 发送无效模型名。步骤 2与现有列表对比将抓取结果与当前 packages/forge/blocks/openai/src/constants.ts 的models数组、packages/forge/blocks/anthropic/src/constants.ts 的anthropicModels数组逐项比对找出上游新增、本地缺失的模型 ID上游已下线、本地仍保留的模型 ID不要急于删除见步骤 4。步骤 3新模型插入列表顶部将新增模型追加到数组的最前面保持「最新在前」的排列约定// packages/forge/blocks/openai/src/constants.ts export const models [ gpt-5.4, // ← 最新发布的模型放在最前面 gpt-5.4-pro, gpt-5.4-mini, // ... 其余按版本新旧依次排列 o1-mini, // ← 最旧的模型在末尾 ];新模型置于顶部会让其在编辑器下拉列表中优先展示符合「推荐使用最新模型」的产品预期。步骤 4保留旧模型以维持向后兼容不要删除任何旧模型。已发布的 Typebot 机器人可能在存量配置中引用了这些模型 ID从常量中移除会导致已有流程在运行时解析失败。旧模型统一保留在列表底部直到确认下游兼容性已处理完毕例如通过配置迁移或废弃流程清理。步骤 5同步更新图片 URL 支持模式对照步骤 3 新增的模型检查modelsWithImageUrlSupport中的通配符模式是否仍然覆盖新模型OpenAI 侧gpt-5*、gpt-4-turbo*、gpt-4o*、gpt-4*vision-preview若新模型命名不再落入任何已有模式需新增对应模式若某模型命中模式但实际不支持视觉则加入excludedModelsFromImageUrlSupport排除名单Anthropic 侧claude-*只要新增模型仍遵循claude-前缀命名通常无需改动仅当未来出现命名规则变化时才需要调整。五、更新注意事项与验证5.1 范围与边界本次流程只改两个constants.ts文件不要顺手改动schemas.ts——openai/src/schemas.ts 与 anthropic/src/schemas.ts 均由 Forge 框架的parseBlockSchema自动生成文件头部明确标注 Do not edit this file manually模型数组的变化会自动反映到 schema 中。若新增的是语音/转写类模型还需同步检查ttsModels与transcriptionModels仅 OpenAI 侧它们不在技能文档的默认清单内但属于同一维护范畴。defaultOpenAIOptions.model保持稳定即可更新模型列表不需要同步提升默认模型。5.2 命名模式与排除名单的关系图片支持判定是「通配符模式匹配 排除名单」的组合逻辑先匹配modelsWithImageUrlSupport再在excludedModelsFromImageUrlSupport中二次过滤。因此更新时需同时审视两处任何单边修改都可能造成误判。5.3 验证建议类型检查models、anthropicModels、openAIVoices、supportedImageTypes中多处使用as const收紧类型新增项必须满足字面量类型约束运行类型检查可第一时间暴露拼写错误单元测试OpenAI 块的 handler 已有测试覆盖createChatCompletionHandler.test.ts、createTranscriptionHandler.test.ts模型列表变更后运行相关测试可验证消息组装与 API 调用路径未受影响界面验证启动 builder 应用后在 OpenAI/Anthropic 块的动作配置面板中确认新模型出现在自动补全候选的最顶部。六、小结update-models技能的本质是把「厂商发布新模型 → 同步到 Typebot 编辑器选项」这一重复性维护工作固化为可执行的标准化流程。它建立在两个精确的常量文件之上packages/forge/blocks/openai/src/constants.tsmodels主模型、ttsModels、transcriptionModels、modelsWithImageUrlSupport与excludedModelsFromImageUrlSupport视觉能力、defaultOpenAIOptions默认配置packages/forge/blocks/anthropic/src/constants.tsanthropicModels、modelsWithImageUrlSupportclaude-*、supportedImageTypes、defaultAnthropicMaxTokens。只要遵循「新模型置顶、旧模型保留、同步更新命名模式」的三条铁律并理解模型列表如何经autoCompleteItems进入编辑器、如何经isModelCompatibleWithVision影响运行时消息组装就能安全、快速地完成每一次模型同步。【免费下载链接】typebot.io Typebot is a powerful chatbot builder that you can self-host.项目地址: https://gitcode.com/GitHub_Trending/ty/typebot.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表