大模型API接口接入网站,CMS增加AI对话模块
很多站长想给网站加一个AI对话功能,但卡在“大模型API接口接入网站”这一步,尤其是用的CMS没有现成插件。这篇文章会从零开始,带你完成CMS增加AI对话模块的全过程。只要你能登录服务器和CMS后台,按下面步骤操作,最终就能在网站前台看到一个能正常回答问题的AI对话框。
## 动手前先确认这三件事
**第一,你需要有一个可用的大模型API Key。** 国内常见的有百度文心、阿里通义、智谱等,国外有OpenAI。注册对应平台后,在控制台创建API Key,并记下接口地址(Base URL)。例如OpenAI兼容接口通常长这样:`https://api.openai.com/v1/chat/completions`。具体地址请以你所用平台的官方文档为准。
**第二,确认你的CMS支持插入自定义代码。** 大部分主流CMS(如WordPress、Typecho、Z-Blog、帝国CMS)都允许在模板或主题文件中添加HTML/JavaScript,或者提供“自定义HTML”小工具。如果你的CMS完全封闭,可能需要改用支持自定义页面的方案。
**第三,准备好一个后端转发脚本。** 直接把API Key写在前端JavaScript里会泄露密钥,所以必须通过你网站自己的后端文件去请求大模型API。下面以PHP为例,其他语言思路相同。
## 编写后端转发接口
在你的网站根目录下新建一个文件,比如`ai_proxy.php`,内容如下(注意替换成你自己的API Key和接口地址):
```php
'消息为空']);
exit;
}
$api_key = '你的API_KEY';
$api_url = 'https://api.openai.com/v1/chat/completions'; // 换成你的接口
$data = [
'model' => 'gpt-3.5-turbo', // 换成你的模型名
'messages' => [['role' => 'user', 'content' => $user_message]],
'temperature' => 0.7
];
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $api_key
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
```
上传后,在浏览器访问`https://你的域名/ai_proxy.php`,如果返回类似`{"error":"消息为空"}`,说明文件可访问。**这一步的关键是确保API Key没有暴露在前端。**
## 在CMS中插入对话窗口
进入CMS后台,找到你想显示AI对话的页面或侧边栏。以WordPress为例,在外观→小工具里添加一个“自定义HTML”区块,粘贴以下代码:
```html
```
保存后,打开网站前台,在对应位置就能看到输入框和发送按钮。输入问题,稍等片刻,AI的回答就会显示在对话框中。**注意:如果你的CMS使用了页面缓存,需要清空缓存后再测试。**
## 常见报错与避坑要点
**报错1:返回`401 Unauthorized`。** 说明API Key错误或没有权限。检查Key是否复制完整,是否与接口地址匹配。
**报错2:返回`429 Too Many Requests`。** 说明请求频率超限或余额不足。登录大模型平台查看配额和账单。
**报错3:前端显示`请求失败`。** 打开浏览器开发者工具,看Network里`ai_proxy.php`的响应。如果是500错误,检查PHP的curl扩展是否开启(在宝塔面板:软件商店→PHP→设置→安装扩展→勾选curl)。
**避坑:不要在JS里直接写API Key。** 任何访问者都能看到源码,密钥会立刻泄露。必须通过后端转发。
**避坑:注意跨域问题。** 如果你的前端域名和后端接口域名不同,需要在`ai_proxy.php`里添加`header('Access-Control-Allow-Origin: *');`,但建议只允许你自己的域名,更安全。
## 验证是否真的接入了
在网站前台输入“你好”,如果AI回复了类似“你好!有什么可以帮助你的?”就说明接入成功。再测试一个具体问题,比如“介绍你的功能”,看回复是否正常。**如果连续多次请求都失败,优先检查API平台是否欠费或Key是否被禁用。**
另外再看一点,建议在`ai_proxy.php`里加入简单的频率限制,比如同一IP每分钟最多请求10次,避免被恶意刷量。可以在文件开头加一段基于session或文件计数的逻辑,这里不展开,但这是生产环境必须考虑的一步。
## 关于成本和维护
大模型API通常按token计费,每次对话都会消耗费用。建议在后台设置每日预算上限,并定期查看用量。如果网站访问量较大,可以考虑加入缓存机制,对常见问题直接返回预设答案,减少API调用。
最后一步再处理提醒:不同大模型平台的接口参数略有差异,比如模型名称、请求格式。如果更换平台,需要同步修改`ai_proxy.php`里的`$api_url`和请求体。**一切以你所用平台的官方文档为准,不要直接套用本文示例中的模型名。**
按照以上步骤,你就能在不改动CMS核心代码的情况下,为网站增加一个可用的AI对话模块。遇到问题时,先看后端返回的具体错误信息,再针对性排查,大部分配置问题都能快速解决。