什么是 AI 工件 (AI Artifacts)?
AI 工件是强大的工具,允许用户直接在 Discourse 帖子中创建、嵌入和交互基于 Web 的动态组件。这些组件可以包含自定义的 HTML、CSS 和 JavaScript,从而实现多种用例,例如:
- 嵌入交互式测验或表单。
- 使用丰富的图形和动画可视化数据。
- 集成轻量级 Web 应用程序或工具。
- 用于学习 Web 框架、JavaScript 库等的工具。
AI 工件通过增加交互性无缝增强 Discourse 帖子,同时确保安全的浏览体验。
站点设置 (Site Settings)
管理员可以配置以下几个设置:
1. 启用功能 (Enabling the Feature)
- 设置项 (Setting):
discourse_ai_enabled
- 确保启用此全局设置项以使 AI 工件正常工作。
2. 安全模式 (Security Modes)
- 设置项 (Setting):
ai_artifact_security
- 选项:
disabled
:禁用工件系统。lax
:工件自动出现在帖子中,无需用户交互。strict
:用户必须通过单击“查看”(View) 或“运行”(Run) 按钮在其浏览器中显式激活工件。建议在对安全性敏感的环境中使用此设置。(默认)
- 选项:
3. 工件创建者访问权限 (Artifact Creator Access)
- 默认情况下,工件创建者角色 (Artifact Creator persona) 仅限于工作人员 (staff users)。此限制确保只有受信任的人员才能创建工件,从而最大限度地降低不当或恶意使用的风险。
- 如果需要更广泛的访问权限,则需要由站点管理员手动配置权限。
在帖子中使用 AI 工件 (Using AI Artifacts in Posts)
工件由工件创建者角色根据需要自动创建。
运行工件 (译注:保留原文,因为上下文是一张图片)
上述工件是使用 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 是您的版本化工件)(译注:保留原文中的技术术语)
安全注意事项 (Security Considerations)
鉴于 AI 工件可以执行自定义编写的 HTML、CSS 和 JavaScript,Discourse 实施了强大的安全措施:
1. 沙盒化 iFrame (Sandboxing in iFrames)
- 工件在具有
sandbox
属性的隔离iframe
容器内呈现,以限制潜在的不安全操作,例如:- 跨站点脚本 (Cross-site scripting)。
- 访问外部站点或 API。
2. 内容安全策略 (CSP, Content Security Policy)
- 工件中的所有资源(如 JavaScript 库)都限制在安全的、预先批准的域,例如:
3. 安全模式 (Security Mode)
- 严格模式 (Strict Mode):建议在不完全信任工件的环境中使用。用户需要在浏览器中手动激活工件,然后才能呈现它们。
4. 访问和权限 (Access and Permissions)
- 工件仅对以下用户可见:
- 其创建者。
- 具有查看相关帖子权限的用户(例如,私人消息)。
- 公共工件必须通过共享 AI 对话明确标记为公共。
5. 长度限制 (Length Limits)
- 工件中 HTML、CSS 和 JavaScript 的大小上限为 64 KB。这确保组件保持轻量级,并且不会给用户或系统带来负担。
常见问题解答 (FAQ)
谁可以创建 AI 工件 (Who Can Create AI Artifacts)?
默认情况下,只有工作人员 (staff users)(例如,管理员或版主)可以通过工件创建者角色 (Artifact Creator Persona) 创建工件。此角色简化了使用 HTML、CSS 和 JavaScript 设计交互式 Web 小部件的过程。
如果我单击工件会发生什么 (What Happens If I Click an Artifact)?
- 在 lax 模式下,工件会自动显示。
- 在 strict 模式下,单击“运行”(Run) 按钮会激活工件并允许其在您的浏览器中加载。
AI 工件安全吗 (Are AI Artifacts Safe)?
是的。AI 工件在严格控制的环境中运行:
- 它们是沙盒化的,不能直接与 Discourse 应用程序或用户上下文交互。
- 严格模式让您可以控制激活。
我可以查看工件的源代码吗?(Can I see the source code for Artifacts)
可以。当 Discourse AI 生成工件时,它将包含完整的标记、CSS 和 JavaScript。
支持哪些LLM?(What LLMs are supported?)
可以使用您配置的任何 LLM 生成工件,但是各种 LLM 都有专门化并且针对工件创建进行了更精细的调整。
我们已经看到 GPT-o、Anthropic Claude Sonnet 3.5、GPT-4o、Gemini Pro 1.5 和 Qwen 2.5 coder 取得了良好的结果。
工件创建存在很大的试错方面,实验是关键。