Node.js环境快速集成Qwen3.5-4B模型:从安装到构建聊天机器人

张开发
2026/4/11 22:49:04 15 分钟阅读

分享文章

Node.js环境快速集成Qwen3.5-4B模型:从安装到构建聊天机器人
Node.js环境快速集成Qwen3.5-4B模型从安装到构建聊天机器人1. 引言最近在开发一个需要智能对话功能的项目时我尝试了多种大语言模型最终选择了Qwen3.5-4B。这个模型在中文理解和生成方面表现相当出色而且通过星图GPU平台部署后可以很方便地用Node.js调用。今天我就来分享如何在Node.js环境中快速集成这个模型并构建一个简单的聊天机器人。整个过程比想象中简单基本上半天就能搞定。我们将从环境准备开始一步步搭建后端服务、实现API调用、添加实时对话功能最后完成一个简单的前端界面。即使你之前没有接触过大模型集成跟着这个教程也能轻松上手。2. 环境准备与快速部署2.1 前置条件检查在开始之前请确保你的开发环境满足以下要求Node.js 16.x或更高版本推荐18.x LTS已经配置好的npm或yarn包管理器能够访问星图GPU平台的API端点基本的Express框架使用经验你可以通过以下命令检查Node.js版本node -v npm -v2.2 创建项目并安装依赖首先创建一个新的Node.js项目mkdir qwen-chatbot cd qwen-chatbot npm init -y然后安装必要的依赖包npm install express node-fetch ws cors body-parser这些包将分别用于express构建Web服务器node-fetch调用Qwen模型的APIws实现WebSocket实时通信cors处理跨域请求body-parser解析请求体3. 构建Express后端服务3.1 初始化Express应用创建一个server.js文件作为我们的主服务器文件const express require(express); const bodyParser require(body-parser); const cors require(cors); const app express(); const PORT 3000; // 中间件配置 app.use(cors()); app.use(bodyParser.json()); // 基础路由测试 app.get(/, (req, res) { res.send(Qwen3.5-4B聊天机器人后端服务已启动); }); // 启动服务器 app.listen(PORT, () { console.log(服务器运行在 http://localhost:${PORT}); });你可以通过node server.js命令启动服务然后在浏览器访问http://localhost:3000测试是否正常运行。3.2 配置Qwen模型API调用接下来我们添加调用Qwen模型的核心功能。在server.js中添加以下代码const fetch require(node-fetch); // 星图GPU平台的API端点 - 替换为你的实际端点 const QWEN_API_ENDPOINT https://your-mirror-endpoint.com/v1/chat/completions; // API密钥 - 请妥善保管 const API_KEY your-api-key-here; async function callQwenModel(prompt) { try { const response await fetch(QWEN_API_ENDPOINT, { method: POST, headers: { Content-Type: application/json, Authorization: Bearer ${API_KEY} }, body: JSON.stringify({ model: Qwen3.5-4B, messages: [{ role: user, content: prompt }], temperature: 0.7, max_tokens: 1024 }) }); if (!response.ok) { throw new Error(API请求失败: ${response.status}); } const data await response.json(); return data.choices[0].message.content; } catch (error) { console.error(调用Qwen模型出错:, error); throw error; } } // 添加API路由 app.post(/api/chat, async (req, res) { const { message } req.body; if (!message) { return res.status(400).json({ error: 消息内容不能为空 }); } try { const reply await callQwenModel(message); res.json({ reply }); } catch (error) { res.status(500).json({ error: 处理请求时出错 }); } });这段代码实现了定义了一个callQwenModel函数用于调用Qwen3.5-4B模型创建了一个/api/chat路由接收用户消息并返回模型响应包含了基本的错误处理逻辑4. 实现WebSocket实时对话4.1 设置WebSocket服务器为了提供更流畅的聊天体验我们添加WebSocket支持。在server.js中添加const WebSocket require(ws); // 创建WebSocket服务器 const wss new WebSocket.Server({ port: 8080 }); wss.on(connection, (ws) { console.log(新的WebSocket连接已建立); ws.on(message, async (message) { try { const userMessage message.toString(); console.log(收到消息:, userMessage); // 调用Qwen模型获取回复 const reply await callQwenModel(userMessage); // 发送回复 ws.send(reply); } catch (error) { console.error(处理WebSocket消息出错:, error); ws.send(抱歉处理您的消息时出错了); } }); ws.on(close, () { console.log(WebSocket连接已关闭); }); }); console.log(WebSocket服务器运行在 ws://localhost:8080);4.2 测试WebSocket功能你可以使用任何WebSocket客户端工具测试这个功能。例如在浏览器控制台中const ws new WebSocket(ws://localhost:8080); ws.onmessage (event) console.log(收到回复:, event.data); ws.send(你好你是谁);5. 构建简单的前端界面5.1 创建前端文件在项目根目录下创建public文件夹然后添加index.html和chat.js文件!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 titleQwen3.5-4B聊天机器人/title style body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; } #chat-container { border: 1px solid #ddd; border-radius: 8px; height: 500px; overflow-y: auto; padding: 15px; margin-bottom: 15px; } #message-input { width: 70%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; } #send-button { padding: 10px 20px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; } .message { margin-bottom: 10px; padding: 8px 12px; border-radius: 4px; } .user-message { background-color: #e3f2fd; align-self: flex-end; } .bot-message { background-color: #f1f1f1; align-self: flex-start; } /style /head body h1Qwen3.5-4B聊天机器人/h1 div idchat-container/div div input typetext idmessage-input placeholder输入你的消息... button idsend-button发送/button /div script srcchat.js/script /body /html5.2 添加前端交互逻辑在chat.js中添加以下代码document.addEventListener(DOMContentLoaded, () { const chatContainer document.getElementById(chat-container); const messageInput document.getElementById(message-input); const sendButton document.getElementById(send-button); // 使用WebSocket连接 const ws new WebSocket(ws://localhost:8080); ws.onmessage (event) { addMessage(event.data, bot); }; ws.onerror (error) { console.error(WebSocket错误:, error); addMessage(连接服务器出错请刷新页面重试, bot); }; function addMessage(text, sender) { const messageDiv document.createElement(div); messageDiv.classList.add(message, ${sender}-message); messageDiv.textContent text; chatContainer.appendChild(messageDiv); chatContainer.scrollTop chatContainer.scrollHeight; } function sendMessage() { const message messageInput.value.trim(); if (message) { addMessage(message, user); ws.send(message); messageInput.value ; } } sendButton.addEventListener(click, sendMessage); messageInput.addEventListener(keypress, (e) { if (e.key Enter) sendMessage(); }); });5.3 配置Express提供静态文件在server.js中添加静态文件服务// 在app.listen之前添加 app.use(express.static(public));现在你可以访问http://localhost:3000来使用完整的聊天机器人界面了。6. 总结通过这个教程我们完成了一个完整的Node.js集成Qwen3.5-4B模型的聊天机器人应用。从环境准备到后端服务搭建再到WebSocket实时通信和前端界面整个过程虽然涉及多个组件但每个步骤都很清晰明了。实际使用中Qwen3.5-4B模型在中文理解和生成方面表现相当不错响应速度也很快。这个基础版本还有很多可以扩展的地方比如添加对话历史管理、支持多轮对话、实现更复杂的前端功能等。如果你在部署过程中遇到任何问题建议先检查API端点是否正确网络连接是否正常。对于更复杂的应用场景可以考虑添加限流、错误重试等机制来提高稳定性。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章