使用Nodejs为网站构建AI客服机器人,通过Taotoken稳定接入大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
使用Nodejs为网站构建AI客服机器人,通过Taotoken稳定接入大模型
1. 项目概述与准备工作
为网站添加一个AI客服机器人,可以显著提升用户体验和自动化服务能力。使用Node.js作为后端,配合OpenAI官方SDK,可以快速构建一个可响应的聊天接口。通过Taotoken平台,你可以用一个统一的API Key接入多个主流大模型,简化了模型选型和接入流程。
在开始编码之前,你需要完成两项准备工作。第一,访问Taotoken平台并注册账号。第二,在平台控制台中创建一个API Key,这个Key将用于后续所有API调用的身份验证。同时,建议你浏览一下模型广场,那里列出了所有可用的模型及其标识符(Model ID),例如claude-sonnet-4-6或gpt-4o-mini,后续在代码中需要指定具体的模型。
2. 初始化Node.js项目与依赖安装
首先,创建一个新的项目目录并初始化Node.js项目。打开终端,执行以下命令:
mkdir ai-customer-service
cd ai-customer-service
npm init -y
接下来,安装项目所需的核心依赖。我们将使用openai这个官方Node.js库来调用兼容OpenAI的API,同时使用express来构建一个简单的Web服务器,dotenv用于管理环境变量。
npm install openai express dotenv
安装完成后,在项目根目录下创建一个名为.env的文件,用于安全地存储你的API密钥和配置。这个文件不应该被提交到版本控制系统(记得将其添加到.gitignore中)。
3. 配置Taotoken API并实现核心服务函数
关键的配置步骤在于正确设置SDK的baseURL参数。Taotoken提供了OpenAI兼容的API端点,你需要将baseURL指向https://taotoken.net/api。在.env文件中,添加你的API Key:
TAOTOKEN_API_KEY=你的_API_Key_粘贴在此处
然后,创建一个名为service.js的文件,实现AI聊天的核心逻辑。我们将导出一个异步函数,它接收用户消息并返回模型的回复。
import OpenAI from 'openai';
import dotenv from 'dotenv';
dotenv.config();
// 初始化OpenAI客户端,关键是指定Taotoken的baseURL
const client = new OpenAI({
apiKey: process.env.TAOTOKEN_API_KEY,
baseURL: 'https://taotoken.net/api',
});
/**
* 获取AI客服回复
* @param {Array} messageHistory - 消息历史记录,格式为 [{role: 'user', content: '...'}, ...]
* @param {string} model - 选用的模型ID,例如 'claude-sonnet-4-6'
* @returns {Promise<string>} - AI返回的文本内容
*/
export async function getAIResponse(messageHistory, model = 'claude-sonnet-4-6') {
try {
const completion = await client.chat.completions.create({
model: model,
messages: messageHistory,
temperature: 0.7, // 控制回复的随机性,可根据需要调整
max_tokens: 500,
});
return completion.choices[0]?.message?.content || '抱歉,我没有收到回复。';
} catch (error) {
console.error('调用AI API时发生错误:', error);
return '客服机器人暂时无法响应,请稍后再试。';
}
}
这段代码的核心是初始化OpenAI客户端时,将baseURL设置为Taotoken的地址。getAIResponse函数封装了API调用,接收消息历史和模型ID,返回AI生成的文本。错误处理确保了服务在API异常时也能向用户返回友好的提示。
4. 构建Express服务器与API路由
有了核心服务函数,我们需要创建一个HTTP服务器来暴露一个可供网站前端调用的API接口。创建一个server.js文件。
import express from 'express';
import { getAIResponse } from './service.js';
const app = express();
const port = process.env.PORT || 3000;
// 中间件:解析JSON请求体
app.use(express.json());
// 可选:配置CORS以允许你的网站域名访问
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '你的前端网站域名'); // 例如:'https://yourwebsite.com'
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
// 定义AI聊天API端点
app.post('/api/chat', async (req, res) => {
const { messages, model } = req.body;
// 简单的请求验证
if (!messages || !Array.isArray(messages)) {
return res.status(400).json({ error: '无效的请求参数:messages应为数组' });
}
try {
const aiReply = await getAIResponse(messages, model);
res.json({ reply: aiReply });
} catch (error) {
console.error('API路由错误:', error);
res.status(500).json({ error: '服务器内部错误' });
}
});
// 健康检查端点
app.get('/health', (req, res) => {
res.json({ status: 'ok' });
});
app.listen(port, () => {
console.log(`AI客服服务运行在 http://localhost:${port}`);
});
这个服务器创建了一个/api/chat的POST接口。前端需要以JSON格式发送请求体,包含messages(对话历史数组)和可选的model参数。服务器调用之前实现的getAIResponse函数,并将结果以JSON格式返回给前端。
5. 运行测试与前端集成示例
现在,可以启动你的AI客服后端服务了。在终端中运行:
node server.js
如果看到服务启动成功的日志,说明后端已经就绪。你可以使用curl命令或Postman等工具进行测试。
curl -X POST http://localhost:3000/api/chat \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "你好,请问你们支持哪些支付方式?"}],
"model": "claude-sonnet-4-6"
}'
对于前端集成,这里提供一个简单的JavaScript Fetch API调用示例。你可以将其嵌入到你的网站JavaScript中。
async function askAICustomerService(userMessage, conversationHistory = []) {
const messages = [...conversationHistory, { role: 'user', content: userMessage }];
const response = await fetch('http://你的后端地址/api/chat', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
messages: messages,
model: 'claude-sonnet-4-6' // 或从下拉菜单中获取用户选择的模型
}),
});
const data = await response.json();
if (response.ok) {
return data.reply; // AI回复内容
} else {
console.error('API调用失败:', data.error);
return '网络请求失败,请检查连接。';
}
}
// 使用示例
const reply = await askAICustomerService('我的订单什么时候发货?');
console.log(reply);
至此,一个基础的、可通过Taotoken调用多种大模型的AI客服后端已经搭建完成。你可以在Taotoken控制台中实时查看API调用量和费用消耗,并根据业务需求在代码中轻松切换不同的模型ID。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
更多推荐



所有评论(0)