🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

使用Node.js和Taotoken构建你的第一个AI聊天机器人后端

本教程面向已有Node.js基础,但尚未接触过大模型API的开发者。我们将从零开始,创建一个简单的AI聊天机器人后端。整个过程将使用Taotoken平台提供的OpenAI兼容API,让你能够快速接入多种大模型,而无需为每个供应商单独处理复杂的认证和计费逻辑。

1. 项目初始化与环境准备

首先,确保你的开发环境已安装Node.js(建议版本18或更高)。然后,创建一个新的项目目录并初始化。

mkdir my-ai-chatbot
cd my-ai-chatbot
npm init -y

接下来,安装必要的依赖。我们将使用官方的 openai Node.js SDK,因为它与Taotoken的OpenAI兼容接口完美适配。

npm install openai

为了安全地管理API密钥,我们使用环境变量。在项目根目录下创建一个 .env 文件。你需要先前往 Taotoken 平台注册账号,并在控制台的「API密钥」页面创建一个新的密钥。

# .env
TAOTOKEN_API_KEY=你的_API_密钥

同时,安装 dotenv 包以便在开发中加载环境变量。

npm install dotenv

2. 配置OpenAI客户端并连接Taotoken

核心的配置步骤是初始化OpenAI客户端,并正确指向Taotoken的API端点。创建一个名为 index.js 的文件作为入口点。

// index.js
import OpenAI from 'openai';
import * as dotenv from 'dotenv';

// 加载环境变量
dotenv.config();

// 初始化OpenAI客户端,配置Taotoken的Base URL
const client = new OpenAI({
  apiKey: process.env.TAOTOKEN_API_KEY,
  baseURL: 'https://taotoken.net/api', // 关键配置:使用Taotoken的OpenAI兼容端点
});

console.log('OpenAI客户端已初始化,连接到Taotoken平台。');

这里需要特别注意 baseURL 的配置。对于使用OpenAI官方SDK或任何兼容OpenAI API的库,baseURL 应设置为 https://taotoken.net/api。SDK会自动在此基础URL后拼接 /v1/chat/completions 等具体路径。这是对接Taotoken最关键的步骤之一。

3. 实现基础的聊天补全函数

现在,我们来编写一个异步函数,用于调用聊天补全接口。我们将从最简单的非流式响应开始。

// index.js (续)
async function getChatCompletion(messages) {
  try {
    const completion = await client.chat.completions.create({
      model: 'claude-sonnet-4-6', // 模型ID可在Taotoken控制台的「模型广场」查看
      messages: messages, // 消息历史数组
      stream: false, // 非流式响应
      max_tokens: 500,
    });

    return completion.choices[0]?.message?.content || '模型未返回内容。';
  } catch (error) {
    console.error('调用聊天API时发生错误:', error);
    return `抱歉,处理您的请求时出现了问题:${error.message}`;
  }
}

函数接收一个 messages 数组,其格式遵循OpenAI标准,例如 [{ role: 'user', content: '你好' }]model 参数指定了要使用的具体模型,你可以在Taotoken平台的模型广场浏览并选择适合你场景的模型,将对应的模型ID填入此处。

4. 构建一个简单的交互式聊天循环

为了测试我们的后端,可以构建一个简单的命令行交互界面。我们将使用Node.js内置的 readline 模块。

// index.js (续)
import readline from 'readline';

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const conversationHistory = [];

async function chatLoop() {
  rl.question('\n你: ', async (userInput) => {
    if (userInput.toLowerCase() === '退出') {
      console.log('再见!');
      rl.close();
      return;
    }

    // 将用户输入加入历史
    conversationHistory.push({ role: 'user', content: userInput });

    console.log('AI正在思考...');
    const aiResponse = await getChatCompletion(conversationHistory);

    // 将AI回复加入历史并输出
    conversationHistory.push({ role: 'assistant', content: aiResponse });
    console.log(`AI: ${aiResponse}`);

    // 继续下一轮对话
    chatLoop();
  });
}

console.log('聊天机器人已启动。输入内容开始对话,输入“退出”结束。');
chatLoop();

现在,运行你的程序:

node index.js

你应该能在命令行中与AI模型进行多轮对话了。所有的请求都将通过Taotoken平台路由到指定的模型,并在Taotoken控制台中产生相应的调用记录和费用。

5. 进阶:处理流式响应

对于需要实时逐字输出效果的场景,流式响应能提供更好的用户体验。修改 getChatCompletion 函数或创建一个新的函数来处理流式响应。

// 新增一个处理流式响应的函数
async function getStreamingChatCompletion(messages, onChunk) {
  try {
    const stream = await client.chat.completions.create({
      model: 'claude-sonnet-4-6',
      messages: messages,
      stream: true, // 启用流式
      max_tokens: 500,
    });

    let fullContent = '';
    for await (const chunk of stream) {
      const content = chunk.choices[0]?.delta?.content || '';
      fullContent += content;
      if (onChunk && content) {
        onChunk(content); // 回调函数,用于实时处理每个片段
      }
    }
    return fullContent;
  } catch (error) {
    console.error('流式调用发生错误:', error);
    return `流式响应错误:${error.message}`;
  }
}

你可以根据前端或客户端的需求,将 onChunk 回调函数与Server-Sent Events (SSE) 或WebSocket结合,实现真正的实时聊天体验。

6. 总结与后续步骤

至此,你已经成功使用Node.js和Taotoken搭建了一个功能完整的AI聊天机器人后端核心。这个后端可以轻松集成到Express、Fastify等Web框架中,对外提供HTTP API。

回顾关键点:

  1. 配置正确:使用 baseURL: 'https://taotoken.net/api' 是连接成功的前提。
  2. 密钥安全:始终通过环境变量管理 TAOTOKEN_API_KEY,切勿硬编码在代码中。
  3. 模型选择:在代码中替换 model 参数的值,即可无缝切换Taotoken平台支持的不同模型,无需修改任何认证逻辑。

接下来,你可以:

  • 将其封装成REST API或GraphQL服务。
  • 在Taotoken控制台查看详细的调用日志和Token消耗统计,管理项目成本。
  • 探索平台模型广场中的其他模型,通过简单修改模型ID来测试不同模型的能力差异。

通过Taotoken的统一接口,你将复杂的多供应商接入、密钥管理和计费问题简化为一次配置,从而能更专注于构建应用本身的功能与体验。

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐