什么是 AI 制品?
AI 制品是强大的工具,允许用户在 Discourse 帖子中直接创建、嵌入和交互动态的 Web 组件。这些组件可以包含自定义的 HTML、CSS 和 JavaScript,从而实现多种用途,例如:
- 嵌入交互式测验或表单。
- 通过丰富的图形和动画可视化数据。
- 集成轻量级 Web 应用程序或工具。
- 作为学习 Web 框架、JavaScript 库等的工具。
AI 制品通过增加交互性无缝增强 Discourse 帖子,同时确保安全的浏览体验。
站点设置
管理员可以配置以下设置:
1. 启用功能
- 设置:
discourse_ai_enabled- 确保启用此全局设置,以便 AI 制品能够正常运行。
2. 安全模式
- 设置:
ai_artifact_security- 选项:
disabled:禁用制品系统。lax:制品自动出现在帖子中,无需用户交互。hybrid:制品默认需要点击才能运行,但帖子作者可以在嵌入标记中添加data-ai-artifact-autorun,使特定制品立即运行。strict:用户必须在浏览器中通过点击“查看”或“运行”按钮显式激活制品。此设置推荐用于注重安全的环境。(默认)
- 选项:
3. 制品创建者访问权限
- 默认情况下,制品创建者代理仅限制为工作人员用户。此限制确保只有受信任的个人才能创建制品,从而最大限度地减少不当或恶意使用的风险。
- 如果需要更广泛的访问权限,站点管理员需要手动配置权限。
在帖子中使用 AI 制品
制品由制品创建者代理按需自动创建。
上述制品是使用 GPT-4o 和 anime.js 库生成的一旦创建,它们仅对您和制品创建者代理私有。能够共享 AI 对话的用户(属于 ai bot public sharing allowed groups 的用户)也可以通过共享对话将制品设为公开。
共享后,您可以使用以下 HTML 标记在帖子中渲染它:
<div class="ai-artifact" data-ai-artifact-version="3" data-ai-artifact-id="71"></div>
(其中版本和制品 ID 是您的版本化制品)
安全考虑
鉴于 AI 制品可以执行自定义编写的 HTML、CSS 和 JavaScript,Discourse 已实施严格的安全措施:
1. 在 iFrames 中沙箱化
- 制品在隔离的
iframe容器中渲染,并带有sandbox属性,以限制以下潜在不安全操作:- 跨站脚本攻击。
- 访问外部站点或 API。
2. 内容安全策略 (CSP)
- 制品中的所有资源(如 JavaScript 库)仅限于安全且预先批准的域名,例如:
- https://cdn.jsdelivr.net
- https://cdnjs.cloudflare.com
- https://unpkg.com
- https://ajax.googleapis.com
- https://d3js.org
- https://code.jquery.com
- https://esm.sh
3. 安全模式
- 严格模式:推荐用于制品未完全受信任的环境。用户需要在浏览器中手动激活制品后才能渲染。
4. 访问和权限
- 制品仅对以下人员可见:
- 其创建者。
- 拥有查看关联帖子权限的用户(例如个人消息)。
- 公开制品必须通过共享 AI 对话显式标记为公开。
5. 长度限制
- 制品中的 HTML、CSS 和 JavaScript 大小分别限制为 64 KB。这确保组件保持轻量级,不会给用户或系统带来负担。
制品存储
Web 制品可以选择性地存储按用户的数据。为此,请提示制品创建者使用“使用用户存储”或类似指令。
此系统允许存储键值对:
- 私有(仅管理员和特定用户可见)
- 公开(所有用户包括匿名用户可见)
键值对针对制品来源的帖子进行保护,但如果您将制品公开共享,所有人都可以添加键。
要控制存储,您可以使用以下隐藏设置:
ai_artifact_kv_value_max_length(默认项长度最多为 5000 个字符)ai_artifact_max_keys_per_user_per_artifact(默认 100)
常见问题解答
谁可以创建 AI 制品?
默认情况下,只有工作人员用户(例如管理员或版主)可以通过制品创建者代理创建制品。该代理简化了使用 HTML、CSS 和 JavaScript 设计交互式 Web 小部件的过程。
如果我点击制品会发生什么?
- 在宽松模式下,制品会自动出现。
- 在混合模式下,制品默认需要点击,但如果嵌入包含
data-ai-artifact-autorun,则可以自动运行。 - 在严格模式下,点击“运行”按钮会激活制品并允许其在浏览器中加载。
AI 制品安全吗?
是的。AI 制品在严格受控的环境中运行:
- 它们被沙箱化,无法直接与 Discourse 应用程序或用户上下文交互,仅能通过 iframe 消息传递。
- 严格模式让您控制激活过程。
- 制品默认是私有的,您需要主动共享才能赋予全局访问权限。
我可以看到制品的源代码吗?
可以。当 Discourse AI 生成制品时,它将包含完整的标记、CSS 和 JavaScript。
支持哪些大语言模型?
制品可以使用您配置的任何大语言模型生成,但某些大语言模型专门针对制品创建进行了优化和微调。
我们观察到 o3、Anthropic Claude Sonnet 3.7 - 4.0、GPT-4.1、Gemini Pro 2.5 等模型效果良好。通常,更先进的模型表现更好。
制品创建过程中存在大量的试错成分,实验是关键。