插件

AI 助手

官方 ai 插件(付费)把 AI 用在网站最常见的三件事上:编辑器里写作和做 SEO、把内容一键翻译成全部站点语言、在网站上回答访客的问题。插件随框架一起发布(plugins/ai)。

node node_modules/nuxtcms/scripts/plugin.mjs add ai
pnpm build:cf && pnpm deploy

支持的服务

在 后台 → 插件 → AI 助手 → 配置 中选择服务商并填写 API Key(也可以用环境变量 NUXT_AI_API_KEY、NUXT_AI_BASE_URL、NUXT_AI_MODEL):

服务商默认模型说明
DeepSeekdeepseek-chat国内可直接访问,性价比高
通义千问(阿里云百炼)qwen-plusDashScope 兼容模式
OpenAIgpt-4o-mini
Kimi(月之暗面)moonshot-v1-8k
智谱 GLMglm-4-flash
其他 OpenAI 兼容接口自填OpenRouter、Ollama、企业网关等,填写接口地址
Cloudflare Workers AI@cf/meta/llama-3.1-8b-instruct站点在 Cloudflare 上时绑定 AI 即可(wrangler:[ai] binding = "AI"),否则填 Account ID 与 API Token

在 后台 → AI 助手 可以测试连接、查看近 30 天按功能统计的调用次数和 tokens。API Key 不会出现在页面、日志或返回结果里。

编辑器写作与 SEO

文章、页面、产品编辑页右侧多一个「AI 助手」面板:

  • 生成 SEO 信息:SEO 标题、描述、摘要、焦点关键词、标签、网址别名,逐项或一次全部填入表单(已有网址别名时不改,避免网址变化)。
  • 标题建议:5 个标题,点一下即替换。
  • 写作:根据标题写初稿、续写、改写、润色、精简、扩写;先预览,再选择替换正文或追加到末尾。

所有建议都只填进表单,保存后才生效。

一键翻译

在编辑页面板中勾选目标语言后点「开始翻译」,每种语言生成一篇草稿(与原文相同的网址别名),检查后再发布。已有该语言版本时会先询问是否覆盖:覆盖前自动保存历史版本,可在修订记录中恢复,原来的发布状态保持不变。正文中的链接、图片和 HTML 结构保持原样;长文分段翻译。AI 返回的 HTML 一律经过安全过滤后再保存。

网站智能问答

开启「网站智能问答」后,前台左下角出现问答按钮,AI 根据本站已发布的文章、页面和产品回答,并附上来源页面链接;找不到答案时会如实说明并建议联系你们,不会编造价格或参数。

  • 每个访客每天的提问次数可设置(默认 20 次),另有每分钟的频率限制。
  • 「额外说明」可以写联系方式、回答风格等。
  • 「每次提问消耗积分」大于 0 时需要 SaaS 套件:访客须登录,积分只在回答成功后扣除,并记入积分明细。
  • 在站点 app.config.ts 中可以隐藏或调整:nuxtcms: { slots: { 'app:end': { AiChatWidget: false } } }。

在自己的接口中使用

export default defineEventHandler(async (event) => {
  const cfg = await requireAi(event)
  const user = await requireSaasApiUser(event)          // 需要 SaaS 套件时
  await spendSaasCredits(event, user.id, 1, 'ai.summary')
  const r = await aiChat(event, cfg, {
    feature: 'assist',
    actor: `user:${user.id}`,
    messages: [{ role: 'user', content: '用一句话总结:...' }],
  })
  return { text: r.text }
})

数据表 {前缀}ai_usage 在首次使用时自动创建。

测试

pnpm smoke:ai --base http://localhost:3192 --db .data/saas-demo.sqlite 会在本机启动一个模拟的 OpenAI 兼容服务,覆盖连接测试、SEO、写作(含恶意输出过滤)、翻译(草稿、覆盖确认、修订、链接保留)、问答(检索、来源、每日限制、积分扣费)和服务商出错的情况,不需要真实 Key。