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