Open CoDesign 内置 Atlas Cloud 提供商:OpenAI 兼容接入、密钥校验与模型发现机制解析

发布时间:2026/9/28 3:37:13

Open CoDesign 内置 Atlas Cloud 提供商:OpenAI 兼容接入、密钥校验与模型发现机制解析 人工智能AI 应用桌面应用【免费下载链接】open-codesignOpen-source Claude Design alternative. One-click import your Claude Code / Codex API key. Prompt → prototype / slides / PDF. Multi-model (Claude, GPT, Gemini, Kimi, GLM, Ollama). BYOK, local-first, MIT.项目地址https://gitcode.com/gh_mirrors/op/open-codesign点击查看免费下载本文围绕仓库变更记录 .changeset/atlascloud-provider.md 展开系统梳理 Open CoDesign 将 Atlas Cloud 纳入内置builtin提供商的全过程从配置数据结构、首次启动引导onboarding、API Key 前缀识别到/v1/models校验与模型发现再到openai-chat线协议wire下的请求封装。读完本文你将理解内置提供商在共享配置层shared、提供商运行时providers与桌面主进程desktop三层之间的协作方式并能据此接入任意 OpenAI 兼容网关。一、变更内容概览一次跨包的内置提供商落地该 changeset 声明了对open-codesign/shared、open-codesign/providers、open-codesign/core、open-codesign/desktop四个包的patch级修改核心目标是Add Atlas Cloud as a built-in OpenAI-compatible provider for onboarding, validation, model discovery, and provider selection.即把 Atlas Cloud 作为内置的 OpenAI 兼容提供商接入四条链路onboarding首次引导用户在向导中可直接选择 Atlas Cloud 并粘贴 API Keyvalidation密钥校验应用通过其/v1/models端点验证密钥有效性model discovery模型发现从该端点拉取模型列表填充模型选择器provider selection提供商选择出现在内置提供商清单与设置页中可作为活动提供商使用。从仓库源码看这一改动主要落实在共享配置层packages/shared/src/config.ts与提供商运行时packages/providers/src/validate.ts、packages/providers/src/index.ts并配套了对应的单元测试。二、内置提供商的数据结构BUILTIN_PROVIDERSOpen CoDesign 把所有内置提供商的静态元数据集中在共享包中由 Zod schema 强校验。Atlas Cloud 在 packages/shared/src/config.ts 中注册如下atlascloud: { id: atlascloud, name: Atlas Cloud, builtin: true, wire: openai-chat, baseUrl: https://api.atlascloud.ai/v1, envKey: ATLASCLOUD_API_KEY, defaultModel: qwen/qwen3.5-flash, capabilities: { supportsKeyless: false, supportsModelsEndpoint: true, supportsReasoning: false, requiresClaudeCodeIdentity: false, modelDiscoveryMode: models, }, },对照同一文件中的ProviderEntrySchemapackages/shared/src/config.ts各字段含义如下字段Atlas Cloud 取值说明idatlascloud提供商唯一标识同时出现在旧版枚举ProviderIdEnum中nameAtlas Cloud界面展示名builtintrue标记为内置提供商区别于用户自定义提供商wireopenai-chat线协议决定请求按 OpenAI Chat Completions 兼容格式封装baseUrlhttps://api.atlascloud.ai/v1默认 API 根地址envKeyATLASCLOUD_API_KEY可选的系统环境变量名用于从环境注入密钥defaultModelqwen/qwen3.5-flash默认模型 IDcapabilities.supportsKeylessfalse不支持无密钥访问区别于本地 Ollamacapabilities.supportsModelsEndpointtrue支持/v1/models模型列举端点capabilities.supportsReasoningfalse声明默认不启用推理模式capabilities.requiresClaudeCodeIdentityfalse无需注入 Claude Code 身份头capabilities.modelDiscoveryModemodels通过GET /v1/models动态发现模型默认能力推导逻辑即便不显式声明capabilitiesdefaultProviderCapabilitiespackages/shared/src/config.ts也会根据wire、requiresApiKey、modelsHint自动推导只要wire不是openai-codex-responses且未提供modelsHintsupportsModelsEndpoint即为truemodelDiscoveryMode相应地为models。Atlas Cloud 显式声明的内容与推导结果一致测试在 packages/shared/src/config.test.ts 中对SUPPORTED_ONBOARDING_PROVIDERS、BUILTIN_PROVIDERS.atlascloud与PROVIDER_SHORTLIST.atlascloud逐一断言。三、Onboarding 引导短名单、默认模型与密钥前缀识别3.1 引导短名单Atlas Cloud 被列入SUPPORTED_ONBOARDING_PROVIDERSpackages/shared/src/config.ts当前完整名单为[anthropic, openai, atlascloud, openrouter, ollama]与之配套的PROVIDER_SHORTLIST.atlascloudpackages/shared/src/config.ts为引导界面提供展示标签、官方密钥页面与推荐模型atlascloud: { provider: atlascloud, label: Atlas Cloud, keyHelpUrl: https://atlascloud.ai/, primary: [qwen/qwen3.5-flash, deepseek-ai/deepseek-v4-pro], defaultPrimary: qwen/qwen3.5-flash, },用户在首次启动引导中可看到 Atlas Cloud 及其两个推荐模型默认qwen/qwen3.5-flash。3.2 粘贴密钥自动识别提供商引导流程支持“粘贴密钥自动判断提供商”实现在detectProviderFromKeypackages/providers/src/index.tsif (key.trim().startsWith(sk-ant-)) return anthropic; if (key.trim().startsWith(sk-or-)) return openrouter; if (key.trim().startsWith(apikey-)) return atlascloud; if (key.trim().startsWith(sk-)) return openai; if (key.trim().startsWith(AIza)) return google; if (key.trim().startsWith(xai-)) return xai; if (key.trim().startsWith(gsk_)) return groq;Atlas Cloud 的密钥以apikey-前缀开头用户无需手动选择提供商即可被引导到正确的配置流程。3.3 密钥保存与校验的 IPC 输入校验桌面主进程的 onboarding 参数解析层apps/desktop/src/main/onboarding/provider-parsers.ts对save-key、validate-key等 IPC 载荷做严格白名单字段校验。parseSaveKeyPayload与parseValidateKey均会检查provider是否属于SUPPORTED_ONBOARDING_PROVIDERS未通过时抛出PROVIDER_NOT_SUPPORTED密钥非空校验则豁免requiresApiKey false的内置提供商如 Ollama而 Atlas Cloud 必须提供非空密钥。IPC 层转发测试见 apps/desktop/src/main/onboarding-ipc.test.ts。四、Validation 校验流程GET /v1/models与错误归类4.1 端点构造pingProviderpackages/providers/src/validate.ts是引导阶段的密钥校验入口。针对 Atlas Cloud端点规则为packages/providers/src/validate.tscase atlascloud: { const root baseUrl ? normalizeValidateBaseUrl(baseUrl) : https://api.atlascloud.ai; return { url: ${root}/v1/models, headers: (apiKey) ({ authorization: Bearer ${apiKey} }), }; }校验请求携带Authorization: Bearer apiKey头发送到https://api.atlascloud.ai/v1/models。normalizeValidateBaseUrl会先剥离/v1尾缀及推理端点后缀如/v1/chat/completions避免拼接出/v1/v1/models这类双重路径。测试在 packages/providers/src/validate.test.ts 中模拟了该请求断言 URL 与 Bearer 头并期望返回{ ok: true, modelCount: 1 }。4.2 响应归类与错误码校验结果通过ValidateResult类型返回packages/providers/src/validate.tstype ValidateResult | { ok: true; modelCount: number } | { ok: false; code: 401 | 402 | 429 | network | parse; message: string };错误归类逻辑statusToCode与statusMessagepackages/providers/src/validate.ts401 / 403→401密钥无效提示用户复查402→402账户无余额提示充值或更换提供商429→429被限流提示稍后重试网络异常 →network响应体不符合预期结构 →parse。成功时countModels会同时兼容{ data: [...] }与{ models: [...] }两种响应形态并逐项校验每个模型条目至少包含字符串类型的id或name从而保证模型列表可被上层消费。五、Model Discovery模型发现模式与配置持久化5.1 动态模型发现Atlas Cloud 的modelDiscoveryMode为models意味着应用会直接调用其/v1/models端点拉取最新模型清单而不是使用静态modelsHint。在 OpenAI 兼容体系中这通常对应GET {baseUrl}/models返回形如{ data: [{ id: qwen/qwen3.5-flash }] }的列表。校验成功返回的modelCount同时也可用于给用户展示“检测到 N 个可用模型”。5.2 v3 配置中的持久化形态配置以 v3 形态落盘ConfigV3Schemapackages/shared/src/config.ts。内置提供商在首次迁移migrateLegacyToV3时自动播种遍历SUPPORTED_ONBOARDING_PROVIDERS并cloneBuiltin每个条目因此旧版 v1/v2 配置升级后会自动获得 Atlas Cloud 条目packages/shared/src/config.ts。运行时会通过providers[atlascloud].baseUrl读取其地址secrets[atlascloud]以SecretRef密文 显示掩码形式保存密钥密钥明文不会落盘。六、Wire 层实现openai-chat下的兼容性处理6.1 请求路由completepackages/providers/src/index.ts是单次非流式补全的统一入口。它惰性加载mariozechner/pi-ai优先通过pi.getModel(provider, modelId)查注册表查不到时若提供了wire与自定义baseUrl则由synthesizeWireModel合成一个 PiModelpackages/providers/src/index.ts。Atlas Cloud 的wire: openai-chat会映射到api: openai-completions适配器并以https://api.atlascloud.ai/v1作为baseUrl。6.2 推理reasoning启发式判断synthesizeWireModel通过inferReasoningpackages/providers/src/index.ts决定是否声明推理能力。对openai-chat线协议官方 OpenAI 域名api.openai.com按模型 ID 前缀o1/o3/o4/gpt-[56]判断第三方 OpenAI 兼容网关按REASONING_MODEL_ID_PATTERN启发式匹配如claude-opus-4、deepseek-r、:thinking后缀等。由于 Atlas Cloud 内置条目的capabilities.supportsReasoning为false默认不会向该端点声明推理模式避免部分 OpenAI 兼容网关对developer角色或 reasoning 字段返回 HTTP 400该问题在源码注释中被记为 issue #183。openAIChatCompatForBaseUrlpackages/providers/src/index.ts还会针对 DeepInfra 等已知特殊网关下调supportsDeveloperRole等兼容标志。6.3 密钥与安全约束complete起始处会检查密钥非空密钥去除首尾空白后传入 pi-ai空密钥仅在allowKeyless true时才被放行packages/providers/src/index.ts而 Atlas Cloud 的supportsKeyless: false意味着必须配置真实密钥。用户自定义的httpHeaders会合并到请求头中满足网关级自定义鉴权需求。七、关键证据索引变更声明 .changeset/atlascloud-provider.md内置提供商注册与短名单 packages/shared/src/config.ts、packages/shared/src/config.ts配置测试断言 packages/shared/src/config.test.ts校验端点与错误归类 packages/providers/src/validate.ts校验测试URL 与 Bearer 头 packages/providers/src/validate.test.ts密钥前缀识别 packages/providers/src/index.tsIPC 载荷解析 apps/desktop/src/main/onboarding/provider-parsers.tsIPC 转发测试 apps/desktop/src/main/onboarding-ipc.test.ts结语Atlas Cloud 的落地是 Open CoDesign “统一提供商模型”的一个典型切片共享层用 Zod schema 定义内置条目与能力声明providers 层负责密钥识别、校验与 OpenAI 兼容请求封装desktop 层负责 IPC 输入校验与引导流程串联。理解了这一套“注册 → 引导 → 校验 → 发现 → 出站请求”的闭环你也就掌握了该仓库接入任意 OpenAI 兼容提供商包括自建网关的完整方法论。赞分享人工智能AI 应用桌面应用【免费下载链接】open-codesignOpen-source Claude Design alternative. One-click import your Claude Code / Codex API key. Prompt → prototype / slides / PDF. Multi-model (Claude, GPT, Gemini, Kimi, GLM, Ollama). BYOK, local-first, MIT.项目地址https://gitcode.com/gh_mirrors/op/open-codesign点击查看免费下载相关推荐AIRI 接入 Novita AI 聊天模型OpenAI 兼容提供者配置与校验机制详解AIRI 接入 Novita AI 聊天模型OpenAI 兼容提供者配置与校验机制详解 本文是一份面向 AIRI 用户的实操指南讲解如何将 Novita AAI 应用人工智能大模型数字人AI Agent语音前端后端桌面应用移动开发即时通讯3D渲染AIRI 接入 Atlas CloudOpenAI 兼容 Chat 提供方配置与源码级验证机制解析AIRI 接入 Atlas CloudOpenAI 兼容 Chat 提供方配置与源码级验证机制解析 本篇指南讲解如何在 AIRI 中接入 Atlas ClouAI 应用人工智能大模型数字人AI Agent语音前端后端桌面应用移动开发即时通讯3D渲染OpenClaw GMI Cloud 提供商插件接入指南OpenAI 兼容 API 一键托管多厂商模型OpenClaw GMI Cloud 提供商插件接入指南OpenAI 兼容 API 一键托管多厂商模型 GMI Cloud 是一个托管推理平台以 OpenAAI 应用AI Agent交互助手后端即时通讯网关上一篇Visual Syslog ServerWindows平台专业级日志监控解决方案下一篇如何用Zettelkasten开源工具构建高效知识管理系统3个简单步骤解放你的大脑创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/28 4:32:15

OpenClaw 本地 AI 智能体实战:用 TaoToken 统一 Key 打通执行链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 4:32:15

WordPress主题如何更新防挂马技巧及建站报价避坑指南

WordPress主题如何更新防挂马技巧及建站报价避坑指南 昨晚刚收到客户急电,说官网首页突然跳出一堆乱七八糟的广告窗口,浏览器提示“不安全”。这种网站被黑挂马不知道怎么办是站长最头疼的事,往往因为没做好基础防护,最后只能花高价找技术团队救…

2026/9/28 4:27:15

Trae CN 配 TaoToken:AI 代码编辑器 settings.json 骨架与连通性验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/27 0:00:45

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:45

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 0:02:03

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑

广州外贸网站建设推广:从零搭建全流程拆解与真实报价避坑 改个需求建站公司拖一周,后台改个文案还得再交一笔“技术维护费”。这种憋屈事儿,做外贸的朋友太熟悉了。很多老板在找广州外贸网站建设推广服务商时,光盯着首页好不好看,却忽略了从零搭建一个能…

2026/9/28 0:02:04

搞懂百度竞价推广价格,网站性能优化别掉链子

搞懂百度竞价推广价格,网站性能优化别掉链子 网站突然打不开,浏览器弹出红色警告“此网站存在安全风险”,后台一看全是乱码代码和奇怪的跳转链接。这种网站被黑挂马的绝望感,很多刚转行做网站的朋友都经历过,尤其是那些为了省几百块钱服务器费用的新手。…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑