安装指南
您的网站上需要有两样东西在线:访客看到的通知,以及一个声明您人工智能使用情况的小型公开文件(yoursite.com/.well-known/ai-disclosure.json)。代码片段标签只需粘贴一次,在每个页面上都相同,而您的声明决定了哪些通知出现在哪里。请在下方选择您的平台;大多数约需十分钟。
访客在页面上看到的横幅和人工智能标签。
ai-disclosure.json,一个可从您自己域名读取的公开文件。
检测工具显示第 2 级 · 已呈现。
选择您的平台
WordPress
安装插件
在您的 WordPress 后台:插件 → 安装插件 → 上传插件,选择您在下方下载的文件,然后点击“启用”。
让它同时完成两项工作
该插件会自动展示通知并发布您的声明文件。用文章或图片上的“人工智能内容”开关标记人工智能内容。无需修改代码。
-
验证
当检测工具显示第 2 级 · 已呈现时即完成。
运行检测工具
Shopify
添加代码片段
在线商店 → 主题 → ⋯ → 编辑代码 → theme.liquid:将这一个标签粘贴到 </body> 之前。theme.liquid 是每个页面都会经过的布局,因此粘贴一次即可覆盖整个商店。Shopify 无法在您的域名根目录托管文件,因此该标签会携带您的 AIDisclose 站点密钥(data-aidisclose),并加载我们为您托管的清单。
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>链接您的声明
在同一个文件的 <head> 中粘贴这个链接。您的控制面板会显示两行已预填好您站点密钥的代码。
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">这是规范允许的方法。
-
验证
当检测工具显示第 1 级 · 已声明并附带说明时即完成。这是此平台上的预期结果,也是合规的。
运行检测工具
Webflow
添加代码片段
站点设置 → 自定义代码 → 页脚代码:粘贴下方的代码片段块,然后发布。站点级自定义代码会在每个页面上加载。
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>链接您的声明
在头部代码中,添加声明链接行(下方第二个代码块)。希望从您自己的域名提供该文件?如果您的 DNS 通过 Cloudflare 运行,请使用“高级”下的代理。
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">这是规范允许的方法。
-
验证
当检测工具显示第 1 级 · 已声明并附带说明时即完成。这是此平台上的预期结果,也是合规的。
运行检测工具
Squarespace
添加代码片段
设置 → 高级 → 代码注入 → 页脚:粘贴下方的代码片段块。代码注入会应用到每个页面。它需要 Business 套餐。
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>链接您的声明
在头部注入中,添加声明链接行(下方第二个代码块)。
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">这是规范允许的方法。
-
验证
当检测工具显示第 1 级 · 已声明并附带说明时即完成。这是此平台上的预期结果,也是合规的。
运行检测工具
Google Tag Manager
创建代码
新建代码 → 代码配置 → 自定义 HTML → 粘贴代码片段。触发条件:所有页面(网页浏览)。不要使用延迟或滚动触发条件:披露规则要求从首次接触起就显示通知。发布工作区。
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>同时发布您的声明
代码管理器只处理通知。您的声明文件仍需上线:请按其他标签页中适用于您平台的步骤操作,如果您运营自己的网站,则使用“自定义代码”标签页。
-
验证
当检测工具显示第 2 级 · 已呈现时即完成。
运行检测工具
自定义代码
添加代码片段
在您的网站模板或布局中放置一次,位于 </body> 之前,使其随每个页面一起发布。生产环境加固(版本锁定、SRI)见“高级”。
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>提供声明文件
ai-disclosure.json 必须能在你域名的 /.well-known/ 下被读取。在 Vercel 或 Netlify 上,请提交该文件。如果你的框架会把每个路由都重写到 index.html,则该文件需要一条例外规则:参见进阶中的单页应用。nginx 和 Apache 配置同样列在进阶中。
Vercel / Netlify # Vercel / Netlify: commit the file public/.well-known/ai-disclosure.json # SPA that rewrites every route to index.html? # Exclude /.well-known/ from the rewrite (see Advanced).-
验证
当检测工具显示第 2 级 · 已呈现时即完成。
运行检测工具
如果您的网站屏蔽了我们的检测工具(AIDiscloseBot)
扫描和证据采集来自 AIDiscloseBot/1.0。它只读取公开页面:从不登录,从不提交表单,并遵守 robots.txt。如果您的 robots.txt 或机器人防护屏蔽未知爬虫,请明确允许它:
User-agent: AIDiscloseBot
Allow: /
允许它有风险吗?没有。robots.txt 中的允许不授予任何访问权限。它只是告诉守规矩的机器人可以读取那些本已公开的页面。任何人都可以伪造 User-Agent 字符串,但伪造者从中得不到您公开页面尚未提供的任何东西。
如果您用 WAF 或机器人管理器把控流量,切勿仅凭 User-Agent 加入白名单。请配合来源验证。我们会公布爬虫身份,以及随分配而更新的出口 IP 段,位置见 aidisclose.io/bot.json.
高级
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
将脚本锁定到确切版本(SRI)
script 标签中的完整性哈希会让浏览器拒绝运行被修改过的文件。请锁定带版本号的 URL,并从您部署的确切文件生成该哈希:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
自行提供文件(nginx / Apache)
对于您自己控制的服务器,直接提供下载的 ai-disclosure.json:
location = /.well-known/ai-disclosure.json {
alias /var/www/site/ai-disclosure.json;
default_type application/json;
add_header Cache-Control "max-age=3600";
}
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
ForceType application/json
</Files>
从您自己的域名提供控制面板托管的文件
您的服务器会将对那一个地址的请求转发给我们:您在控制面板中编辑文件,它仍从您的域名提供。控制面板会显示这些已预填好您站点密钥的代码。
location = /.well-known/ai-disclosure.json {
proxy_pass https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY;
proxy_set_header Host cdn.aidisclose.io;
proxy_ssl_server_name on;
}
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/.well-known/ai-disclosure.json") {
return fetch("https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY");
}
return fetch(request);
}
};
单页应用与静态托管
会把每个路由都重写到 index.html 的框架,以及某些静态托管,会拦截 /.well-known/ai-disclosure.json 并以 200 状态返回你应用的 HTML。文件看起来已经提交,但检查器读取到的是 HTML 而不是清单。两种修复方式:将 /.well-known/ 从通配重写中排除,让静态文件以 application/json 类型提供;或在 script 标签中加入 data-aidisclose="YOUR_SITE_KEY",改为加载由 AIDisclose 托管的清单,从而完全省去提供该文件。
# netlify.toml: serve the real file before the SPA fallback
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
force = false # a real file at the path wins over this fallback
# vercel.json: rewrite everything EXCEPT /.well-known to the app
{ "rewrites": [
{ "source": "/((?!\.well-known/).*)", "destination": "/index.html" }
] }