章节 01
导读 / 主楼:Forge:基于 NVIDIA NIM 的多模型统一聊天平台
Forge 是一个开源的 Next.js 15 应用,它通过自动发现 NVIDIA NIM 端点上的约 40 个前沿模型,提供统一的聊天界面,支持推理模型、多模态模型和 FLUX 图像生成,并具备思考过程可视化、实时工件渲染等高级功能。
正文
Forge 是一个开源的 Next.js 15 应用,它通过自动发现 NVIDIA NIM 端点上的约 40 个前沿模型,提供统一的聊天界面,支持推理模型、多模态模型和 FLUX 图像生成,并具备思考过程可视化、实时工件渲染等高级功能。
章节 01
Forge 是一个开源的 Next.js 15 应用,它通过自动发现 NVIDIA NIM 端点上的约 40 个前沿模型,提供统一的聊天界面,支持推理模型、多模态模型和 FLUX 图像生成,并具备思考过程可视化、实时工件渲染等高级功能。
章节 02
/v1/models 端点(每 5 分钟缓存一次),自动获取 NVIDIA NIM 上可用的最新模型。这意味着当新的旗舰模型发布时,Forge 无需代码更新即可自动识别并提供给用户。\n\n然而,原始的 140 个模型 ID 中包含大量非聊天类模型(嵌入、防护栏、解析器等)。Forge 通过一套智能的筛选逻辑,将可用模型精简至约 40 个真正有用的选项:\n\n- 推理模型:DeepSeek V4 Pro/Flash、Kimi K2 系列、GLM 5.1、Llama 3.3、Mistral Large 3、GPT-OSS 120B、Devstral 2、Qwen3 Coder 480B 等\n- 多模态模型:Qwen 3.5 397B VLM、Llama 4 Maverick(支持图像/视频输入)\n- 图像生成:FLUX.1 Schnell、FLUX.1 Dev\n\n筛选器会排除嵌入模型、安全护栏、文档解析器、翻译器、图像分类器、奖励模型等非对话类模型,确保用户看到的是真正可用的聊天和生成模型。\n\n### 2. 统一聊天界面与高级交互\n\nForge 的聊天界面设计充分考虑了多模型比较的需求:\n\n流式对话与 NDJSON 协议\n\n采用 NDJSON(Newline Delimited JSON)事件协议,实现 token-by-token 的流式传输。用户可以实时看到模型的生成过程,而不是等待完整响应。状态标签(queued / streaming / slow / completed / aborted / error)提供了清晰的进度反馈。\n\n思考过程可视化\n\n对于支持推理的模型(DeepSeek、Kimi、GLM、Qwen、Magistral),Forge 提供三种思考模式(off / high / max),并在界面中展示模型的思考轨迹。这一功能对于理解模型的推理逻辑和调试提示词至关重要。\n\n会话中切换模型\n\n用户可以在同一会话中随时切换模型,比较不同模型对同一问题的回答。这种设计特别适合 A/B 测试和模型选型决策。\n\n工件(Artifacts)实时渲染\n\nForge 支持特殊的工件指令(::artifact{type=html|react|svg|mermaid|code title="..."}::),模型可以生成 HTML、React、SVG、Mermaid 图表或代码片段,并在右侧工件面板中实时预览。工件版本历史功能允许用户回溯和对比不同版本的输出。\n\n草稿持久化与附件支持\n\n正在编辑的草稿内容会在页面刷新、导航甚至新建会话后自动保留。用户可以通过拖拽或粘贴添加图片和 PDF 附件,PDF 通过 pdf.js 在客户端解析提取文本。\n\n### 3. FLUX 图像生成集成\n\nForge 不仅是一个聊天平台,还集成了 FLUX 图像生成功能:\n\n- 长宽比选择器:支持 1:1、16:9、9:16、3:2、2:3、4:3、3:4 等多种比例\n- 参数自适应:根据所选模型自动调整参数范围(Schnell: 1-4 步,无 CFG;Dev: 5-100 步,CFG ≤ 9)\n- ** shimmer 占位符**:生成过程中显示与最终长宽比匹配的 shimmer 效果,避免布局跳动\n- 内联存储:图像以 data URL 形式存储在 Firestore 中(无需 Cloud Storage,适用于 700KB 以下的输出)\n- 灯箱查看器:支持下载和全屏查看\n\n## 技术架构:现代全栈的最佳实践\n\nForge 的技术栈选择体现了现代 Web 开发的最佳实践:\n\n### 前端\n\n- Next.js 15:App Router、React 19、Server Components 用于数据加载,Client Components 用于交互\n- Tailwind 4:自定义 CSS 变量主题系统,支持 light / dark / system 三种模式\n- shiki:代码高亮\n- mermaid:图表渲染\n- react-markdown + GFM:Markdown 渲染\n- pdf.js:客户端 PDF 文本提取\n\n### 后端与基础设施\n\n- Firebase 11 JS SDK + firebase-admin 13:认证和数据库\n- NVIDIA NIM:OpenAI 兼容的推理端点(chat-completions 流 + 图像生成)\n- Upstash Redis(可选):基于令牌桶的速率限制,分别针对聊天、FLUX 和突发流量\n\n### 认证与安全\n\n- Firebase Auth:支持邮箱链接(无密码)和 Google OAuth\n- httpOnly Session Cookie:服务器端生成,用于 SSR 页面\n- 可选 App Check:通过 reCAPTCHA Enterprise 启用\n- 速率限制:基于 Redis 的令牌桶算法,未配置时静默降级(便于本地开发)\n\n## 部署与配置\n\nForge 的设计充分考虑了可部署性。从克隆到运行只需几步:\n\nbash\ngit clone https://github.com/<your-username>/forge.git\ncd forge\nnpm install\ncp .env.example .env.local\ncp .firebaserc.example .firebaserc\nnpx firebase use --add\nnpx firebase deploy --only firestore\nnpm run dev\n\n\n关键环境变量包括:\n\n- NVIDIA_API_KEY:从 build.nvidia.com 获取,免费且无需信用卡\n- Firebase 配置:API Key、Auth Domain、Project ID 等\n- 可选 Upstash Redis:用于速率限制\n\nVercel 一键部署支持使得 Forge 可以在几分钟内部署到生产环境。\n\n## 使用限制与注意事项\n\nForge 基于 NVIDIA NIM 的免费试用层,开发者需要注意以下限制:\n\n1. 速率限制:免费层有每分钟和每日的调用上限\n2. 模型可用性:NIM 端点的模型列表会动态变化,某些模型可能会临时不可用\n3. 图像生成配额:FLUX 生成受限于 NIM 的图像生成配额\n4. 数据持久化:Firestore 的免费层有读写配额限制\n\n建议在生产部署前仔细阅读 NVIDIA NIM 的使用条款和配额限制。\n\n## 应用场景与价值\n\nForge 适用于多种场景:\n\n1. 模型选型评估:通过同一会话比较不同模型的回答质量\n2. 提示词工程:利用思考轨迹优化提示词设计\n3. 多模态实验:测试 VLM 的图像理解能力\n4. 图像生成工作流:集成 FLUX 生成到对话流程中\n5. 教学演示:向团队或客户展示不同 LLM 的能力差异\n\n对于独立开发者和研究团队,Forge 提供了一个零成本(仅需 NIM 免费 API Key)即可运行的多模型实验平台。\n\n## 与类似项目的对比\n\n| 特性 | Forge | ChatGPT | Claude 官方客户端 | 其他开源客户端 |\n|------|-------|---------|------------------|--------------|\n| 多模型支持 | 40+ 模型 | 仅 OpenAI 模型 | 仅 Claude | 通常 1-3 个 |\n| 模型切换 | 会话中任意切换 | 不支持 | 不支持 | 通常需新建会话 |\n| 思考轨迹 | 支持(部分模型) | 不支持 | 部分支持 | 罕见 |\n| 工件渲染 | 支持 | 支持 | 支持 | 罕见 |\n| 图像生成 | 集成 FLUX | DALL-E | 不支持 | 需单独集成 |\n| 自托管 | 完全支持 | 不支持 | 不支持 | 部分支持 |\n| 成本 | 免费(NIM 试用层) | 付费 | 付费 | 视后端而定 |\n\nForge 的独特价值在于它将多模型发现、筛选、比较和高级交互功能整合在一个开源、可自托管的包中,且基于 NVIDIA 的免费试用层即可运行。\n\n## 结语\n\nForge 代表了 LLM 客户端演进的一个重要方向:从单一模型交互转向多模型协作与比较。在模型能力快速迭代、新模型层出不穷的今天,能够灵活切换和对比不同模型的工具将变得越来越重要。Forge 不仅提供了这样的能力,还以开源、可部署、零成本的方式降低了使用门槛,值得每一位 LLM 开发者和研究者关注。章节 03
背景:多模型时代的碎片化困境\n\n随着大语言模型生态的爆发式增长,开发者和研究者面临一个日益严峻的问题:如何在不同模型之间高效切换和比较?NVIDIA NIM 端点提供了约 140 个模型 ID,涵盖嵌入模型、安全防护、文档解析、翻译、聊天、多模态和图像生成等多个类别。然而,面对如此庞杂的选项,开发者往往陷入选择 paralysis——每个模型都有其专长,但缺乏一个统一的界面来横向比较它们的表现。\n\n现有的开源聊天客户端大多只支持单一模型交互,用户需要为不同的任务切换不同的工具或 API 端点。这种碎片化不仅降低了效率,也使得跨模型的协作和比较变得困难。\n\nForge 的出现正是为了解决这一痛点。它的核心理念是:"Many models. One conversation."——在一个统一的界面中,让用户能够无缝切换和比较多个前沿模型。\n\n核心功能:从发现到对比的完整闭环\n\nForge 通过三个层面的创新,构建了一个完整的多模型工作流:\n\n1. 自动发现与智能筛选\n\nForge 的模型发现机制是其一大亮点。它通过轮询 /v1/models 端点(每 5 分钟缓存一次),自动获取 NVIDIA NIM 上可用的最新模型。这意味着当新的旗舰模型发布时,Forge 无需代码更新即可自动识别并提供给用户。\n\n然而,原始的 140 个模型 ID 中包含大量非聊天类模型(嵌入、防护栏、解析器等)。Forge 通过一套智能的筛选逻辑,将可用模型精简至约 40 个真正有用的选项:\n\n- 推理模型:DeepSeek V4 Pro/Flash、Kimi K2 系列、GLM 5.1、Llama 3.3、Mistral Large 3、GPT-OSS 120B、Devstral 2、Qwen3 Coder 480B 等\n- 多模态模型:Qwen 3.5 397B VLM、Llama 4 Maverick(支持图像/视频输入)\n- 图像生成:FLUX.1 Schnell、FLUX.1 Dev\n\n筛选器会排除嵌入模型、安全护栏、文档解析器、翻译器、图像分类器、奖励模型等非对话类模型,确保用户看到的是真正可用的聊天和生成模型。\n\n2. 统一聊天界面与高级交互\n\nForge 的聊天界面设计充分考虑了多模型比较的需求:\n\n流式对话与 NDJSON 协议\n\n采用 NDJSON(Newline Delimited JSON)事件协议,实现 token-by-token 的流式传输。用户可以实时看到模型的生成过程,而不是等待完整响应。状态标签(queued / streaming / slow / completed / aborted / error)提供了清晰的进度反馈。\n\n思考过程可视化\n\n对于支持推理的模型(DeepSeek、Kimi、GLM、Qwen、Magistral),Forge 提供三种思考模式(off / high / max),并在界面中展示模型的思考轨迹。这一功能对于理解模型的推理逻辑和调试提示词至关重要。\n\n会话中切换模型\n\n用户可以在同一会话中随时切换模型,比较不同模型对同一问题的回答。这种设计特别适合 A/B 测试和模型选型决策。\n\n工件(Artifacts)实时渲染\n\nForge 支持特殊的工件指令(::artifact{type=html|react|svg|mermaid|code title="..."}::),模型可以生成 HTML、React、SVG、Mermaid 图表或代码片段,并在右侧工件面板中实时预览。工件版本历史功能允许用户回溯和对比不同版本的输出。\n\n草稿持久化与附件支持\n\n正在编辑的草稿内容会在页面刷新、导航甚至新建会话后自动保留。用户可以通过拖拽或粘贴添加图片和 PDF 附件,PDF 通过 pdf.js 在客户端解析提取文本。\n\n3. FLUX 图像生成集成\n\nForge 不仅是一个聊天平台,还集成了 FLUX 图像生成功能:\n\n- 长宽比选择器:支持 1:1、16:9、9:16、3:2、2:3、4:3、3:4 等多种比例\n- 参数自适应:根据所选模型自动调整参数范围(Schnell: 1-4 步,无 CFG;Dev: 5-100 步,CFG ≤ 9)\n- ** shimmer 占位符**:生成过程中显示与最终长宽比匹配的 shimmer 效果,避免布局跳动\n- 内联存储:图像以 data URL 形式存储在 Firestore 中(无需 Cloud Storage,适用于 700KB 以下的输出)\n- 灯箱查看器:支持下载和全屏查看\n\n技术架构:现代全栈的最佳实践\n\nForge 的技术栈选择体现了现代 Web 开发的最佳实践:\n\n前端\n\n- Next.js 15:App Router、React 19、Server Components 用于数据加载,Client Components 用于交互\n- Tailwind 4:自定义 CSS 变量主题系统,支持 light / dark / system 三种模式\n- shiki:代码高亮\n- mermaid:图表渲染\n- react-markdown + GFM:Markdown 渲染\n- pdf.js:客户端 PDF 文本提取\n\n后端与基础设施\n\n- Firebase 11 JS SDK + firebase-admin 13:认证和数据库\n- NVIDIA NIM:OpenAI 兼容的推理端点(chat-completions 流 + 图像生成)\n- Upstash Redis(可选):基于令牌桶的速率限制,分别针对聊天、FLUX 和突发流量\n\n认证与安全\n\n- Firebase Auth:支持邮箱链接(无密码)和 Google OAuth\n- httpOnly Session Cookie:服务器端生成,用于 SSR 页面\n- 可选 App Check:通过 reCAPTCHA Enterprise 启用\n- 速率限制:基于 Redis 的令牌桶算法,未配置时静默降级(便于本地开发)\n\n部署与配置\n\nForge 的设计充分考虑了可部署性。从克隆到运行只需几步:\n\nbash\ngit clone https://github.com/<your-username>/forge.git\ncd forge\nnpm install\ncp .env.example .env.local\ncp .firebaserc.example .firebaserc\nnpx firebase use --add\nnpx firebase deploy --only firestore\nnpm run dev\n\n\n关键环境变量包括:\n\n- NVIDIA_API_KEY:从 build.nvidia.com 获取,免费且无需信用卡\n- Firebase 配置:API Key、Auth Domain、Project ID 等\n- 可选 Upstash Redis:用于速率限制\n\nVercel 一键部署支持使得 Forge 可以在几分钟内部署到生产环境。\n\n使用限制与注意事项\n\nForge 基于 NVIDIA NIM 的免费试用层,开发者需要注意以下限制:\n\n1. 速率限制:免费层有每分钟和每日的调用上限\n2. 模型可用性:NIM 端点的模型列表会动态变化,某些模型可能会临时不可用\n3. 图像生成配额:FLUX 生成受限于 NIM 的图像生成配额\n4. 数据持久化:Firestore 的免费层有读写配额限制\n\n建议在生产部署前仔细阅读 NVIDIA NIM 的使用条款和配额限制。\n\n应用场景与价值\n\nForge 适用于多种场景:\n\n1. 模型选型评估:通过同一会话比较不同模型的回答质量\n2. 提示词工程:利用思考轨迹优化提示词设计\n3. 多模态实验:测试 VLM 的图像理解能力\n4. 图像生成工作流:集成 FLUX 生成到对话流程中\n5. 教学演示:向团队或客户展示不同 LLM 的能力差异\n\n对于独立开发者和研究团队,Forge 提供了一个零成本(仅需 NIM 免费 API Key)即可运行的多模型实验平台。\n\n与类似项目的对比\n\n| 特性 | Forge | ChatGPT | Claude 官方客户端 | 其他开源客户端 |\n|------|-------|---------|------------------|--------------|\n| 多模型支持 | 40+ 模型 | 仅 OpenAI 模型 | 仅 Claude | 通常 1-3 个 |\n| 模型切换 | 会话中任意切换 | 不支持 | 不支持 | 通常需新建会话 |\n| 思考轨迹 | 支持(部分模型) | 不支持 | 部分支持 | 罕见 |\n| 工件渲染 | 支持 | 支持 | 支持 | 罕见 |\n| 图像生成 | 集成 FLUX | DALL-E | 不支持 | 需单独集成 |\n| 自托管 | 完全支持 | 不支持 | 不支持 | 部分支持 |\n| 成本 | 免费(NIM 试用层) | 付费 | 付费 | 视后端而定 |\n\nForge 的独特价值在于它将多模型发现、筛选、比较和高级交互功能整合在一个开源、可自托管的包中,且基于 NVIDIA 的免费试用层即可运行。\n\n结语\n\nForge 代表了 LLM 客户端演进的一个重要方向:从单一模型交互转向多模型协作与比较。在模型能力快速迭代、新模型层出不穷的今天,能够灵活切换和对比不同模型的工具将变得越来越重要。Forge 不仅提供了这样的能力,还以开源、可部署、零成本的方式降低了使用门槛,值得每一位 LLM 开发者和研究者关注。