news 2026/5/1 13:36:45

从零开始使用Taotoken API完成一个简单的Node.js对话应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零开始使用Taotoken API完成一个简单的Node.js对话应用

从零开始使用Taotoken API完成一个简单的Node.js对话应用

1. 准备工作

在开始编码前,需要完成两项基础准备工作。首先访问Taotoken平台注册账号并获取API Key。登录后进入控制台,在「API密钥」页面点击「新建密钥」,生成后妥善保存。其次确保本地已安装Node.js 18或更高版本,可通过node -v命令验证。

2. 初始化项目

创建项目目录并初始化npm包管理文件:

mkdir taotoken-chat-demo cd taotoken-chat-demo npm init -y

安装必要依赖包,包括Express框架和官方OpenAI JavaScript库:

npm install express openai body-parser

3. 配置Taotoken连接

创建.env文件存储敏感信息,内容如下:

TAOTOKEN_API_KEY=your_api_key_here PORT=3000

新建config.js处理配置逻辑:

import 'dotenv/config' export default { apiKey: process.env.TAOTOKEN_API_KEY, baseURL: 'https://taotoken.net/api', port: process.env.PORT || 3000 }

4. 实现后端服务

创建server.js作为主入口文件:

import express from 'express' import { OpenAI } from 'openai' import config from './config.js' const app = express() app.use(express.json()) const client = new OpenAI({ apiKey: config.apiKey, baseURL: config.baseURL }) app.post('/api/chat', async (req, res) => { try { const completion = await client.chat.completions.create({ model: 'claude-sonnet-4-6', messages: req.body.messages }) res.json(completion.choices[0].message) } catch (error) { res.status(500).json({ error: error.message }) } }) app.listen(config.port, () => { console.log(`Server running on port ${config.port}`) })

5. 创建前端界面

在项目根目录新建public文件夹,添加index.html文件:

<!DOCTYPE html> <html> <head> <title>Taotoken Chat Demo</title> <style> #chatbox { height: 300px; border: 1px solid #ccc; overflow-y: scroll; } </style> </head> <body> <div id="chatbox"></div> <input id="userInput" type="text" placeholder="Type your message..."> <button onclick="sendMessage()">Send</button> <script> const chatbox = document.getElementById('chatbox') const userInput = document.getElementById('userInput') const messages = [] function appendMessage(role, content) { const msgDiv = document.createElement('div') msgDiv.innerHTML = `<strong>${role}:</strong> ${content}` chatbox.appendChild(msgDiv) chatbox.scrollTop = chatbox.scrollHeight } async function sendMessage() { const content = userInput.value.trim() if (!content) return messages.push({ role: 'user', content }) appendMessage('You', content) userInput.value = '' const response = await fetch('/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ messages }) }) const data = await response.json() messages.push(data) appendMessage('AI', data.content) } </script> </body> </html>

6. 启动与测试

修改server.js添加静态文件服务支持:

import path from 'path' import { fileURLToPath } from 'url' const __dirname = path.dirname(fileURLToPath(import.meta.url)) app.use(express.static(path.join(__dirname, 'public')))

启动服务并测试:

node server.js

访问http://localhost:3000即可开始对话。完整项目可参考Taotoken示例代码库获取更多实现方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 13:32:39

基于OpenClaw与Telegram Bot构建自动化运维自愈通知系统

1. 项目概述与核心价值 最近在折腾一些自动化运维和监控的活儿&#xff0c;发现一个挺有意思的开源项目&#xff0c;叫 openclaw-telegram-selfheal-notification-skill 。光看名字有点唬人&#xff0c;拆开来看&#xff0c; openclaw 像是个平台或工具集&#xff0c; tel…

作者头像 李华
网站建设 2026/5/1 13:30:20

自定时电路设计优化:基于输入分布的性能提升策略

1. 自定时电路设计基础与挑战在VLSI设计领域&#xff0c;时钟同步电路长期占据主导地位&#xff0c;但随着工艺节点进入纳米尺度&#xff0c;其局限性日益凸显。同步设计必须按照最坏情况路径延迟来设置全局时钟频率&#xff0c;导致大部分电路周期处于"过度等待"状态…

作者头像 李华