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

使用Nodejs与Taotoken为你的Nextjs项目快速集成AI对话能力

使用 Node.js 与 Taotoken 为你的 Next.js 项目快速集成 AI 对话能力1. 准备工作在开始集成前请确保已具备以下条件一个可运行的 Next.js 项目版本 12 或更高以及 Taotoken 平台的 API Key。API Key 可在 Taotoken 控制台的「API 密钥」页面创建模型 ID 则需在「模型广场」查看。建议将敏感信息存储在环境变量中避免直接硬编码。2. 安装依赖在 Next.js 项目根目录下执行以下命令安装 OpenAI 官方 Node.js 客户端库npm install openai如果项目使用 TypeScript建议同时安装类型定义包通常作为 devDependencynpm install --save-dev types/node3. 配置环境变量在项目根目录创建或修改.env.local文件添加以下变量TAOTOKEN_API_KEYyour_api_key_here NEXT_PUBLIC_DEFAULT_MODELclaude-sonnet-4-6注意.env.local应被加入.gitignore以避免密钥泄露。在 Next.js 中客户端可访问的变量需以NEXT_PUBLIC_为前缀。4. 创建 API 路由在pages/api目录下新建chat.ts文件实现基础对话接口import { OpenAI } from openai; import type { NextApiRequest, NextApiResponse } from next; const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, }); export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method ! POST) { return res.status(405).json({ error: Method not allowed }); } try { const { messages } req.body; const completion await client.chat.completions.create({ model: process.env.NEXT_PUBLIC_DEFAULT_MODEL, messages, }); return res.status(200).json(completion.choices[0]?.message); } catch (error) { console.error(API error:, error); return res.status(500).json({ error: Internal server error }); } }5. 实现流式响应可选如需支持流式传输修改接口以返回 ReadableStreamexport default async function handler( req: NextApiRequest, res: NextApiResponse ) { // ... 前置校验同上 try { const { messages } req.body; const stream await client.chat.completions.create({ model: process.env.NEXT_PUBLIC_DEFAULT_MODEL, messages, stream: true, }); res.setHeader(Content-Type, text/event-stream); res.setHeader(Cache-Control, no-cache); res.setHeader(Connection, keep-alive); for await (const chunk of stream) { const content chunk.choices[0]?.delta?.content || ; res.write(data: ${JSON.stringify({ content })}\n\n); } res.end(); } catch (error) { console.error(Stream error:, error); return res.status(500).json({ error: Internal server error }); } }6. 前端调用示例在 React 组件中调用该 APIasync function sendMessage(messages: Array{ role: string; content: string }) { const response await fetch(/api/chat, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify({ messages }), }); if (!response.ok) throw new Error(Network response was not ok); return await response.json(); } // 流式版本 async function* streamMessages(messages: Array{ role: string; content: string }) { const response await fetch(/api/chat, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify({ messages }), }); if (!response.body) throw new Error(No response body); const reader response.body.getReader(); const decoder new TextDecoder(); while (true) { const { done, value } await reader.read(); if (done) break; const chunk decoder.decode(value); const lines chunk.split(\n).filter(line line.startsWith(data: )); for (const line of lines) { const data line.replace(/^data: /, ).trim(); if (data [DONE]) continue; yield JSON.parse(data).content; } } }7. 部署注意事项Vercel 部署时需要确保环境变量已正确配置在 Vercel 项目设置的「Environment Variables」页面添加TAOTOKEN_API_KEY重新部署项目使变量生效检查 Edge Function 区域是否支持流式响应默认配置通常已支持如需进一步了解 Taotoken 平台能力可访问 Taotoken 查看完整文档。

相关文章:

使用Nodejs与Taotoken为你的Nextjs项目快速集成AI对话能力

使用 Node.js 与 Taotoken 为你的 Next.js 项目快速集成 AI 对话能力 1. 准备工作 在开始集成前,请确保已具备以下条件:一个可运行的 Next.js 项目(版本 12 或更高),以及 Taotoken 平台的 API Key。API Key 可在 Tao…...

虚拟现实技术参数与用户体验的非线性关系研究

1. 研究背景与方法论解析虚拟现实技术的用户体验研究一直存在一个关键矛盾:硬件参数的提升是否必然带来体验改善?我们团队通过对比两代IVR系统(旧系统采用双基站配置,延迟85.94ms;新系统采用四基站,延迟16.…...

MIKE IO水文数据处理指南:5个步骤解决你的MIKE文件读写难题

MIKE IO水文数据处理指南:5个步骤解决你的MIKE文件读写难题 【免费下载链接】mikeio Read, write and manipulate dfs0, dfs1, dfs2, dfs3, dfsu and mesh files. 项目地址: https://gitcode.com/gh_mirrors/mi/mikeio MIKE IO是DHI集团开发的Python开源库&a…...

创业团队如何利用统一API密钥管理实现成本可控的AI应用开发

创业团队如何利用统一API密钥管理实现成本可控的AI应用开发 1. 多模型接入的密钥管理挑战 小型创业团队在开发AI应用时,常需要接入多个大模型提供商的API。传统模式下,每个开发成员需要单独申请和管理不同厂商的API密钥,导致密钥分散在个人…...

2026 年,如何构建一套具备自愈能力的 AI Agent 自动化工作流?

说实话,站在 2026 年这个节点上,如果你还在玩那种“问一句答一句”的简单 API 调用,那真的已经掉队了。现在的技术圈,大家都在聊 AI Agent(智能体)。但普通的 Agent 已经不够看了,真正的进阶玩家…...

思源宋体完全实战指南:从设计困扰到专业解决方案

思源宋体完全实战指南:从设计困扰到专业解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目寻找既专业又可靠的字体吗?面对市面上昂贵的…...

FFXIV ACT动画跳过插件完整指南:3分钟学会自动化副本体验

FFXIV ACT动画跳过插件完整指南:3分钟学会自动化副本体验 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 在《最终幻想XIV》中国服务器中,副本动画跳过插件FFXIV_ACT_CutsceneSk…...

零代码开发移动应用:MIT App Inventor可视化编程完全指南 [特殊字符]

零代码开发移动应用:MIT App Inventor可视化编程完全指南 🚀 【免费下载链接】appinventor-sources MIT App Inventor Public Open Source 项目地址: https://gitcode.com/gh_mirrors/ap/appinventor-sources 你是否曾想过开发自己的手机应用&…...

如何彻底掌控你的微信聊天记录:3步实现个人数据永久保存与深度分析

如何彻底掌控你的微信聊天记录:3步实现个人数据永久保存与深度分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trend…...

告别会员!用Docker小雅+PotPlayer打造Windows本地4K影院(附Reex/VidHub多端配置)

打造Windows本地4K影院:Docker小雅与多端播放器配置指南 对于追求极致影音体验的用户来说,搭建一个私人影院系统早已不再是遥不可及的梦想。通过Docker小雅与精心挑选的播放器组合,你可以在家中任何角落享受4K甚至8K的高清内容,告…...

为什么93%的AI团队在Docker 27升级后遭遇GPU调度抖动?——NVIDIA Container Toolkit兼容性紧急修复手册

更多请点击: https://intelliparadigm.com 第一章:Docker 27 GPU调度抖动现象全景洞察 Docker 27 引入了全新的 nvidia-container-toolkit v1.14 与 libgpucontainer 底层抽象,但在多卡共享、动态资源重分配场景下,GPU 设备句柄延…...

VOFA+上位机实战:用STM32F407的USB虚拟串口,实现高速数据采集与可视化

VOFA与STM32F407的USB虚拟串口实战:构建高速数据采集系统 在工业自动化和物联网设备开发中,数据采集与实时可视化一直是核心需求。传统UART串口通信受限于115200bps的速率瓶颈,当面对多通道传感器数据采集时往往力不从心。STM32F407系列内置的…...

深入Aurora 8B/10B IP核时钟与复位逻辑:GT收发器、User_clk与Channel_up信号全解析

Aurora 8B/10B IP核时钟与复位逻辑深度解析:从GT收发器到链路状态监测 在高速串行通信领域,Xilinx的Aurora 8B/10B协议因其轻量级和高效性而广受欢迎。然而,许多FPGA开发者在实际调试过程中,常常被复杂的时钟架构和复位逻辑所困扰…...

Laravel中调用大模型API为何总超时?揭秘事件循环阻塞、Swoole协程适配与HTTP/3兼容方案(附可运行PoC代码)

更多请点击: https://intelliparadigm.com 第一章:现代 PHP 框架 (Laravel 12) AI 集成 面试题汇总 Laravel 12 的 AI 就绪架构特性 Laravel 12 引入了原生异步任务调度、内置 HTTP client 流式响应支持,以及可插拔的 AI facade&#xff08…...

保姆级教程:用STM32CubeMX+TouchGFX Designer给F429驱动RGB屏(附SDRAM配置避坑)

从零开始构建STM32F429的TouchGFX图形界面:CubeMX配置与实战避坑指南 第一次拿到STM32F429开发板和RGB屏幕时,那种既兴奋又忐忑的心情至今记忆犹新。兴奋的是终于可以开始图形界面开发,忐忑的是网上教程要么过于简略,要么假设读者…...

PowerToys Awake:三招告别电脑自动休眠,让工作流程永不中断

PowerToys Awake:三招告别电脑自动休眠,让工作流程永不中断 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trend…...

Vissim仿真结果导出实战:用Excel分析行程时间与延误数据(附rsz/vlz文件处理技巧)

Vissim仿真结果导出实战:用Excel分析行程时间与延误数据(附rsz/vlz文件处理技巧) 在交通仿真领域,Vissim作为行业标杆工具,其强大的仿真能力常能生成海量数据。但许多工程师在完成仿真后,面对.rsz、.vlz等结…...

深度解析:如何用foo_openlyrics打造专业级foobar2000歌词体验

深度解析:如何用foo_openlyrics打造专业级foobar2000歌词体验 【免费下载链接】foo_openlyrics An open-source lyric display panel for foobar2000 项目地址: https://gitcode.com/gh_mirrors/fo/foo_openlyrics 在音乐播放的世界里,精准的歌词…...

高光谱成像基础(二)光谱角映射 SAM

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...

建立个人SOP:将重复性工作自动化,释放创造性时间

一、软件测试的效率困局在软件测试领域,“重复”是绕不开的关键词。回归测试中反复执行相同的用例、接口测试里重复构造相似的请求、环境部署时一次次重复相同的配置步骤……这些机械性的工作占据了测试人员大量精力。据行业调研显示,软件测试从业者约40…...

【静态链表】

#include <stdio.h> #include <stdlib.h> #define DEFAULT_SIZE 5 // 静态链表的容量&#xff08;包括头结点&#xff09;/*** 静态链表节点结构* 使用数组下标代替指针来实现链式存储*/ typedef struct StaticLinkedNode {char data; // 存储的字符数据int ne…...

如何在5分钟内掌握UnityExplorer:游戏运行时调试的终极指南

如何在5分钟内掌握UnityExplorer&#xff1a;游戏运行时调试的终极指南 【免费下载链接】UnityExplorer An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games. 项目地址: https://gitcode.com/gh_mirrors/un/UnityExplorer 想要在游戏运…...

Windows热键侦探:3分钟快速定位快捷键冲突的终极指南

Windows热键侦探&#xff1a;3分钟快速定位快捷键冲突的终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾遇…...

Adobe Illustrator批量替换脚本:告别手动操作,10倍提升设计效率的终极解决方案

Adobe Illustrator批量替换脚本&#xff1a;告别手动操作&#xff0c;10倍提升设计效率的终极解决方案 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 还在为Adobe Illustrator中重…...

Windows下保姆级教程:用TensorRT 8.6.1加速你的YOLOv8模型(从.pt到.trt)

Windows平台YOLOv8模型加速实战&#xff1a;TensorRT 8.6.1全流程解析 在计算机视觉领域&#xff0c;YOLOv8凭借其卓越的检测精度和速度成为工业界的热门选择。然而&#xff0c;当我们需要将训练好的模型部署到实际生产环境时&#xff0c;如何充分发挥硬件性能成为关键挑战。本…...

从毫米波到Sub-6G:实测对比不同5G频段下,波束管理策略的实战差异与优化要点

毫米波与Sub-6G频段下的5G波束管理实战指南&#xff1a;从原理到参数调优 当我们在东京银座的十字路口测试毫米波基站时&#xff0c;一个有趣的现象出现了&#xff1a;用户设备在移动过程中频繁触发波束恢复流程&#xff0c;而同一位置的Sub-6G设备却保持稳定连接。这个现象揭示…...

别再用SMB传大文件了!Windows 11 22H2下,试试Robocopy这个命令,速度直接拉满

Windows 11大文件传输终极提速方案&#xff1a;Robocopy实战指南 你是否经历过在局域网内传输几十GB的视频素材或游戏安装包时&#xff0c;进度条像蜗牛爬行般的绝望&#xff1f;特别是在升级到Windows 11 22H2后&#xff0c;许多用户发现文件传输速度出现了明显下降。这并非你…...

使用 Taotoken 后 API 调用延迟与稳定性体验观察

使用 Taotoken 后 API 调用延迟与稳定性体验观察 1. 接入与初步测试体验 在将现有的大模型调用链路迁移到 Taotoken 平台后&#xff0c;最直接的感受是接入过程的平滑性。由于 Taotoken 提供了 OpenAI 兼容的 API 接口&#xff0c;原有代码几乎无需修改&#xff0c;只需将 ba…...

从LSTM的门控到Transformer的FFN:聊聊Sigmoid、Tanh、ReLU在真实模型里的‘工作岗位’

从LSTM的门控到Transformer的FFN&#xff1a;聊聊Sigmoid、Tanh、ReLU在真实模型里的‘工作岗位’ 在深度学习的架构设计中&#xff0c;激活函数的选择远非简单的数学特性对比。当我们翻开LSTM的论文或Transformer的源码&#xff0c;会发现Sigmoid、Tanh和ReLU这些函数被精心安…...

2026年护理学论文降AI工具推荐:护理研究和临床实践部分降AI方案

2026年护理学论文降AI工具推荐&#xff1a;护理研究和临床实践部分降AI方案 直接给结论&#xff1a;嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元&#xff0c;知网AI率58%降到5.9%&#xff0c;稳定可靠。 护理学论文降AI工具怎么选、怎么用&#xf…...