当前位置: 首页 > article >正文

使用nodejs快速搭建对接taotoken的简单聊天服务

使用 Node.js 快速搭建对接 Taotoken 的简单聊天服务1. 准备工作在开始之前请确保您已经完成以下准备工作注册 Taotoken 账号并登录控制台在控制台中创建 API Key在模型广场查看并记录您想要使用的模型 ID确保本地已安装 Node.js 16 或更高版本您可以通过node -v命令检查 Node.js 版本。如果尚未安装可以从 Node.js 官网下载并安装最新 LTS 版本。2. 初始化项目创建一个新的项目目录并初始化 Node.js 项目mkdir taotoken-chat-demo cd taotoken-chat-demo npm init -y安装必要的依赖包npm install openai express dotenv这里我们使用了openai官方 JavaScript 库来简化 API 调用express用于创建简单的 Web 服务dotenv用于管理环境变量。3. 配置环境变量在项目根目录下创建.env文件内容如下TAOTOKEN_API_KEYyour_api_key_here TAOTOKEN_MODELclaude-sonnet-4-6 PORT3000请将your_api_key_here替换为您在 Taotoken 控制台中获取的实际 API Key模型 ID 可以根据需要从模型广场中选择。安全提示请确保将.env文件添加到.gitignore中避免将敏感信息提交到版本控制系统。4. 创建基础聊天服务在项目根目录下创建server.js文件内容如下import express from express; import OpenAI from openai; import dotenv from dotenv; dotenv.config(); const app express(); app.use(express.json()); const openai new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, }); app.post(/chat, async (req, res) { try { const { messages } req.body; const completion await openai.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages, }); res.json({ response: completion.choices[0]?.message?.content }); } catch (error) { console.error(Error:, error); res.status(500).json({ error: error.message }); } }); const PORT process.env.PORT || 3000; app.listen(PORT, () { console.log(Server running on port ${PORT}); });5. 添加流式响应支持如果您希望支持流式响应可以修改/chat路由如下app.post(/chat/stream, async (req, res) { try { const { messages } req.body; const stream await openai.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages, stream: true, }); res.setHeader(Content-Type, text/plain); for await (const chunk of stream) { const content chunk.choices[0]?.delta?.content || ; res.write(content); } res.end(); } catch (error) { console.error(Error:, error); res.status(500).json({ error: error.message }); } });6. 测试服务启动服务node server.js使用 curl 测试普通聊天接口curl -X POST http://localhost:3000/chat \ -H Content-Type: application/json \ -d {messages:[{role:user,content:你好请介绍一下你自己}]}测试流式接口curl -X POST http://localhost:3000/chat/stream \ -H Content-Type: application/json \ -d {messages:[{role:user,content:你好请介绍一下你自己}]}7. 扩展前端界面可选如果您希望添加简单的前端界面可以创建public目录并添加 HTML 文件。这里提供一个简单的示例在项目根目录下创建public/index.html!DOCTYPE html html head titleTaotoken 聊天演示/title script async function sendMessage() { const input document.getElementById(message); const output document.getElementById(response); output.textContent 思考中...; try { const response await fetch(/chat, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ messages: [{ role: user, content: input.value }] }) }); const data await response.json(); output.textContent data.response; } catch (error) { output.textContent 出错: error.message; } } /script /head body h1Taotoken 聊天演示/h1 input idmessage typetext placeholder输入消息... button onclicksendMessage()发送/button div idresponse stylemargin-top: 20px;/div /body /html然后在server.js中添加静态文件服务app.use(express.static(public));现在访问http://localhost:3000就可以看到简单的聊天界面了。8. 部署与后续步骤完成本地开发后您可以将此服务部署到任何支持 Node.js 的云平台。部署时需要注意确保生产环境中正确设置了环境变量考虑添加适当的错误处理和日志记录根据需求添加身份验证和速率限制监控 API 使用情况和费用您可以在 Taotoken 控制台中查看 API 使用情况和费用统计帮助您更好地管理资源。如需了解更多关于 Taotoken 的功能和使用方式请访问 Taotoken。

相关文章:

使用nodejs快速搭建对接taotoken的简单聊天服务

使用 Node.js 快速搭建对接 Taotoken 的简单聊天服务 1. 准备工作 在开始之前,请确保您已经完成以下准备工作: 注册 Taotoken 账号并登录控制台在控制台中创建 API Key在模型广场查看并记录您想要使用的模型 ID确保本地已安装 Node.js 16 或更高版本 …...

macOS微信防撤回终极教程:WeChatIntercept插件完整使用指南

macOS微信防撤回终极教程:WeChatIntercept插件完整使用指南 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在为微…...

【scritp】</script> 解析问题

核心规律&#xff1a;只要在 <script> 标签内部出现 </script>&#xff0c;无论是什么&#xff0c;都会触发这个问题&#xff0c;与是否在字符串、注释、正则表达式等无关。 如&#xff1a; 1 <script> 2 alert("aaa"); 3 //</script> 4…...

魔兽争霸3终极优化指南:简单三步解锁流畅游戏体验

魔兽争霸3终极优化指南&#xff1a;简单三步解锁流畅游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3的卡顿、低帧率、画面拉…...

别再踩坑了!Windows 10 下 MobSF 3.6.0 环境搭建保姆级避坑指南(附Frida版本解决方案)

Windows 10下MobSF 3.6.0环境搭建全流程避坑手册 移动应用安全测试已成为开发生命周期中不可或缺的环节&#xff0c;而MobSF作为一款开源框架&#xff0c;凭借其全面的静态与动态分析能力&#xff0c;正获得越来越多安全团队的青睐。但在Windows平台搭建环境时&#xff0c;从Py…...

安卓B站缓存视频合并终极指南:一键导出完整MP4与弹幕播放

安卓B站缓存视频合并终极指南&#xff1a;一键导出完整MP4与弹幕播放 【免费下载链接】BilibiliCacheVideoMerge &#x1f525;&#x1f525;Android上将bilibili缓存视频合并导出为mp4&#xff0c;支持安卓5.0 ~ 13&#xff0c;视频挂载弹幕播放(Android consolidates and exp…...

Source Han Serif CN:开源中文字体性能优化与跨平台部署完整技术方案

Source Han Serif CN&#xff1a;开源中文字体性能优化与跨平台部署完整技术方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf Source Han Serif CN&#xff08;思源宋体&#xff09…...

告别语音文件兼容性烦恼:silk-v3-decoder 助你轻松解码微信QQ音频 [特殊字符]

告别语音文件兼容性烦恼&#xff1a;silk-v3-decoder 助你轻松解码微信QQ音频 &#x1f3b5; 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch…...

猫抓浏览器插件:3分钟学会网页视频下载的终极免费方案

猫抓浏览器插件&#xff1a;3分钟学会网页视频下载的终极免费方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到喜欢的在线视频无…...

AI学习篇(四) | AI设计类Skills推荐清单(2026年)

AI学习篇&#xff08;四&#xff09; | AI设计类Skills推荐清单&#xff08;2026年&#xff09;1. 比较火&#xff0c;但不作为默认推荐的设计类 Skills2. 当前更推荐2.1 taste-skill2.2 impeccable3. 额外场景3.1 只做上线前复审3.2 只做设计方向校准4. 不要这样装5. 扩展关注…...

探索高效教育资源管理:智能电子课本下载工具实战指南

探索高效教育资源管理&#xff1a;智能电子课本下载工具实战指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容。 项目地址:…...

MagiskHide Props Config终极指南:轻松修改Android设备属性,快速通过SafetyNet检测

MagiskHide Props Config终极指南&#xff1a;轻松修改Android设备属性&#xff0c;快速通过SafetyNet检测 【免费下载链接】MagiskHidePropsConf This tool is now dead... 项目地址: https://gitcode.com/gh_mirrors/ma/MagiskHidePropsConf MagiskHide Props Config是…...

互联网大厂 Java 求职面试:面对微服务与 Spring Cloud 的挑战

互联网大厂 Java 求职面试&#xff1a;面对微服务与 Spring Cloud 的挑战 面试官&#xff1a;燕双非&#xff0c;今天我们将进行一场关于 Java 和微服务的面试。首先&#xff0c;请你简单介绍一下 Spring Cloud 的主要组件以及它们的作用。 燕双非&#xff1a;哦&#xff0c;Sp…...

Doris索引怎么选?从BloomFilter、Bitmap到倒排索引的保姆级配置手册

Doris索引选型实战指南&#xff1a;从原理到配置的深度优化 在数据仓库领域&#xff0c;查询性能直接决定了分析效率的上限。作为新一代MPP分析型数据库&#xff0c;Doris凭借其优异的实时分析能力已经成为企业级数据仓库的热门选择。但要让Doris真正发挥威力&#xff0c;索引的…...

别再只读原始数据了!手把手教你用MPU6050的DMP功能获取稳定姿态角(STM32 HAL库实战)

从卡尔曼滤波到DMP&#xff1a;MPU6050姿态解算的工程实践指南 在无人机飞控、自平衡机器人或VR设备开发中&#xff0c;姿态检测的准确性和实时性往往直接决定产品成败。许多工程师第一次接触MPU6050时&#xff0c;都会经历从原始数据采集到自行实现互补滤波的探索过程&#xf…...

深入STM32定时器:巧用PWM移相与ADC触发,搞定三电阻采样的非观测区难题

STM32定时器高级应用&#xff1a;PWM移相与ADC触发协同破解三电阻采样盲区 在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中&#xff0c;相电流检测的准确性直接决定了控制性能的优劣。当采用三电阻采样方案时&#xff0c;工程师们常常会遇到一个棘手的难题——在扇区过渡区和…...

iperf3 Windows预编译二进制完整解决方案:企业级网络性能测试深度实践

iperf3 Windows预编译二进制完整解决方案&#xff1a;企业级网络性能测试深度实践 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3-win-build…...

天赐范式第28天:意识节点穿越的算子流实现——从Wilson-Cowan到三态自发循环

AdS/CFT对偶、公理切换、数学毒丸&#xff0c;在一个简化的神经群体模型中自发涌现了清醒–梦境–混沌的三态循环。我们不是要“模拟意识”&#xff0c;而是想看看&#xff1a;当把天赐范式的算子流架构搬到Wilson-Cowan方程上&#xff0c;能否自然出现节点穿越&#xff1f;1. …...

马斯克证实 xAI 曾借助 OpenAI 模型改进自身模型,模型蒸馏引争议

【导语&#xff1a;周四&#xff0c;在加利福尼亚州的联邦法庭上&#xff0c;埃隆马斯克证实其创立的 xAI 曾借助 OpenAI 模型改进自身模型&#xff0c;而模型蒸馏这一常见做法近年来引发了诸多争议。】xAI 借助 OpenAI 模型改进自身周四在加利福尼亚州的一家联邦法庭上&#x…...

终极指南:如何通过ComfyUI Photoshop插件高效提升AI绘画工作流

终极指南&#xff1a;如何通过ComfyUI Photoshop插件高效提升AI绘画工作流 【免费下载链接】Comfy-Photoshop-SD Download this extension via the ComfyUI manager to establish a connection between ComfyUI and the Auto-Photoshop-SD plugin in Photoshop. https://github…...

如何高效使用智能屏幕翻译工具:创新实时翻译解决方案完整指南

如何高效使用智能屏幕翻译工具&#xff1a;创新实时翻译解决方案完整指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo …...

从‘Hello World’到处理百万交易:手把手带你体验COBOL在IBM z/OS上的开发环境搭建

从‘Hello World’到处理百万交易&#xff1a;手把手带你体验COBOL在IBM z/OS上的开发环境搭建 第一次接触COBOL时&#xff0c;很多人会被它独特的语法结构和历史感所震撼。这种诞生于1959年的语言至今仍在全球金融、保险等关键领域默默支撑着每天数万亿的交易。本文将带你从零…...

蓝桥杯嵌入式省赛真题复盘:STM32G431如何用两个定时器搞定双路独立PWM?

STM32G431双定时器PWM实战&#xff1a;蓝桥杯嵌入式竞赛高频考点精解 在嵌入式系统开发中&#xff0c;PWM&#xff08;脉冲宽度调制&#xff09;技术如同一位低调却不可或缺的幕后工作者&#xff0c;从电机调速到LED调光&#xff0c;处处都有它的身影。而当面对需要多路独立PWM…...

VSCode 2026启动卡顿真相:不是插件,是VSCodium兼容层引发的IPC队列阻塞(附patch补丁+验证脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VSCode 2026启动卡顿现象的系统性定位 VSCode 2026 版本在部分高负载开发环境中出现显著启动延迟&#xff08;平均 >8.2s&#xff09;&#xff0c;该问题并非单纯由硬件性能引发&#xff0c;而是与扩…...

如何快速搭建免费开源翻译服务:3种高效部署方法全解析

如何快速搭建免费开源翻译服务&#xff1a;3种高效部署方法全解析 【免费下载链接】LibreTranslate Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. 项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate …...

Altera 28nm FPGA浮点DSP设计流程与矩阵分解优化

1. Altera 28nm FPGA浮点DSP设计流程解析在数字信号处理领域&#xff0c;FPGA凭借其并行架构和可重构特性&#xff0c;已成为高性能计算的重要平台。传统FPGA在定点运算中表现出色&#xff0c;但在浮点运算领域却长期面临挑战。Altera针对这一痛点开发的创新设计流程&#xff0…...

构建个人技能仓库:用Git管理技术能力与知识资产

1. 项目概述&#xff1a;一个技能仓库的诞生与价值 在技术社区里&#xff0c;我们经常看到各种以“awesome-xxx”命名的仓库&#xff0c;它们汇集了某个领域的精选资源、工具和教程。但今天我想聊一个不太一样&#xff0c;却可能对每个开发者职业生涯都至关重要的项目&#xff…...

告别HuggingFace Transformers卡顿:在Win11上实测vLLM推理Baichuan2-7B,吞吐量提升真这么猛?

Win11实战&#xff1a;vLLM如何让Baichuan2-7B推理速度飞起来&#xff1f; 当你在本地运行7B参数的大语言模型时&#xff0c;是否经历过这样的煎熬——输入一个简单问题后盯着进度条发呆&#xff0c;看着GPU利用率像心电图一样波动&#xff0c;而显存占用却居高不下&#xff1f…...

5分钟掌握BiRefNet:零基础玩转高分辨率图像分割

5分钟掌握BiRefNet&#xff1a;零基础玩转高分辨率图像分割 【免费下载链接】BiRefNet [CAAI AIR24] Bilateral Reference for High-Resolution Dichotomous Image Segmentation 项目地址: https://gitcode.com/gh_mirrors/bi/BiRefNet 想象一下&#xff0c;你有一张复杂…...

保姆级教程:用Python和PyTorch复现BEVFormer,在nuScenes数据集上跑通3D检测

保姆级教程&#xff1a;用Python和PyTorch复现BEVFormer&#xff0c;在nuScenes数据集上跑通3D检测 自动驾驶技术的快速发展对感知算法提出了更高要求&#xff0c;而BEV&#xff08;Birds Eye View&#xff09;视角因其独特的空间表达能力&#xff0c;正在成为行业研究热点。本…...