武城网站建设公司泰安中推网络科技有限公司
2026/4/10 10:41:16 网站建设 项目流程
武城网站建设公司,泰安中推网络科技有限公司,做的网站是怎么被收录,加速wordpressQwen2.5 API开发速成#xff1a;1小时搭建首个智能对话应用 引言#xff1a;为什么选择Qwen2.5开发智能对话应用#xff1f; Qwen2.5是阿里云最新开源的大型语言模型系列#xff0c;相比前代在知识掌握、编程能力和指令执行等方面都有显著提升。作为全栈工程师#xff0…Qwen2.5 API开发速成1小时搭建首个智能对话应用引言为什么选择Qwen2.5开发智能对话应用Qwen2.5是阿里云最新开源的大型语言模型系列相比前代在知识掌握、编程能力和指令执行等方面都有显著提升。作为全栈工程师你可能经常需要在短时间内快速验证一个AI应用的原型比如为团队内部开发一个智能微信机器人。传统方式需要从零搭建模型服务、编写API接口、处理微信消息对接整个过程至少需要1-2天时间。现在通过预置FastAPI的云镜像你可以像搭积木一样快速组合出完整的解决方案。本文将带你用1小时完成一键部署Qwen2.5 API服务用FastAPI构建中间层接口对接微信公众号接收和回复消息实现基础的智能对话功能整个过程不需要深度学习专业知识所有代码都可直接复制使用。我们使用的技术栈包括 -Qwen2.5-7B-Instruct专为对话优化的开源模型 -FastAPIPython现代Web框架天生支持异步 -WeChat Official Account微信公众号开发接口1. 环境准备获取GPU资源与部署镜像1.1 选择适合的GPU实例Qwen2.5-7B模型需要至少16GB显存才能流畅运行。在CSDN算力平台可以选择以下配置 - GPU型号RTX 3090 (24GB) 或 A10 (24GB) - 镜像选择PyTorch 2.0 CUDA 11.8 FastAPI预装环境1.2 一键部署镜像创建实例后在终端执行以下命令验证环境# 检查GPU是否可用 nvidia-smi # 检查Python环境 python --version # 需要Python 3.8 # 检查FastAPI pip show fastapi uvicorn # 确认已安装2. 快速部署Qwen2.5 API服务2.1 使用vLLM启动模型服务vLLM是高性能推理框架特别适合大语言模型的API服务部署。执行以下命令# 安装vLLM已预装可跳过 pip install vllm # 启动OpenAI兼容的API服务 python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-7B-Instruct \ --trust-remote-code \ --port 8000服务启动后你可以用curl测试curl http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: Qwen/Qwen2.5-7B-Instruct, prompt: 请用Python写一个快速排序算法, max_tokens: 500 }2.2 验证服务正常运行收到类似下面的响应说明服务已就绪{ id: cmpl-3b6a7c8, object: text_completion, created: 1689267160, model: Qwen/Qwen2.5-7B-Instruct, choices: [{ text: def quick_sort(arr):\n if len(arr) 1:\n return arr\n pivot arr[len(arr)//2]\n left [x for x in arr if x pivot]\n middle [x for x in arr if x pivot]\n right [x for x in arr if x pivot]\n return quick_sort(left) middle quick_sort(right), index: 0, logprobs: null, finish_reason: length }], usage: { prompt_tokens: 15, completion_tokens: 92, total_tokens: 107 } }3. 构建FastAPI中间层3.1 创建基础API路由新建main.py文件添加以下代码from fastapi import FastAPI, HTTPException from pydantic import BaseModel import httpx app FastAPI(titleQwen2.5微信机器人API) class ChatRequest(BaseModel): user_message: str conversation_id: str None app.post(/chat) async def chat_with_qwen(request: ChatRequest): try: async with httpx.AsyncClient() as client: response await client.post( http://localhost:8000/v1/chat/completions, json{ model: Qwen/Qwen2.5-7B-Instruct, messages: [{role: user, content: request.user_message}], temperature: 0.7, max_tokens: 500 } ) return response.json() except Exception as e: raise HTTPException(status_code500, detailstr(e))3.2 启动FastAPI服务uvicorn main:app --host 0.0.0.0 --port 5000 --reload现在你的中间层API已经运行在5000端口可以通过/chat端点与Qwen2.5交互。4. 对接微信公众号4.1 配置微信公众号开发模式登录微信公众平台进入「开发」-「基本配置」启用服务器配置填写服务器URL你的公网IP:5000/wechatToken可以设置为任意字符串如qwen1234.2 添加微信消息处理逻辑在main.py中添加以下代码from fastapi import Request import hashlib import xml.etree.ElementTree as ET WECHAT_TOKEN qwen123 app.get(/wechat) async def wechat_verify(signature: str, timestamp: str, nonce: str, echostr: str): # 验证微信服务器 tmp_list sorted([WECHAT_TOKEN, timestamp, nonce]) tmp_str hashlib.sha1(.join(tmp_list).encode()).hexdigest() if tmp_str signature: return echostr else: raise HTTPException(status_code403) app.post(/wechat) async def wechat_message(request: Request): # 处理微信消息 body await request.body() xml_data ET.fromstring(body.decode()) msg_type xml_data.find(MsgType).text user_openid xml_data.find(FromUserName).text if msg_type text: user_msg xml_data.find(Content).text # 调用Qwen2.5获取回复 async with httpx.AsyncClient() as client: response await client.post( http://localhost:8000/v1/chat/completions, json{ model: Qwen/Qwen2.5-7B-Instruct, messages: [{role: user, content: user_msg}], temperature: 0.7, max_tokens: 500 } ) reply response.json()[choices][0][message][content] # 构造XML回复 return f xml ToUserName![CDATA[{user_openid}]]/ToUserName FromUserName![CDATA[{xml_data.find(ToUserName).text}]]/FromUserName CreateTime{int(time.time())}/CreateTime MsgType![CDATA[text]]/MsgType Content![CDATA[{reply}]]/Content /xml else: return xml ToUserName![CDATA[{user_openid}]]/ToUserName FromUserName![CDATA[{xml_data.find(ToUserName).text}]]/FromUserName CreateTime{int(time.time())}/CreateTime MsgType![CDATA[text]]/MsgType Content![CDATA[目前只支持文本消息哦~]]/Content /xml 4.3 配置公网访问由于微信公众号需要公网可访问的URL你可以使用CSDN算力平台的外网暴露功能或者使用ngrok等工具建立隧道ngrok http 5000将生成的https地址配置到微信公众号后台即可。5. 效果优化与进阶技巧5.1 对话记忆实现要让机器人记住上下文修改/chat接口from collections import defaultdict conversation_history defaultdict(list) app.post(/chat) async def chat_with_qwen(request: ChatRequest): if not request.conversation_id: request.conversation_id str(uuid.uuid4()) messages conversation_history[request.conversation_id] messages.append({role: user, content: request.user_message}) try: async with httpx.AsyncClient() as client: response await client.post( http://localhost:8000/v1/chat/completions, json{ model: Qwen/Qwen2.5-7B-Instruct, messages: messages, temperature: 0.7, max_tokens: 500 } ) ai_reply response.json()[choices][0][message] messages.append(ai_reply) return {reply: ai_reply[content], conversation_id: request.conversation_id} except Exception as e: raise HTTPException(status_code500, detailstr(e))5.2 关键参数调优Qwen2.5 API有几个重要参数可以调整{ temperature: 0.7, # 控制创造性0-1越高越随机 top_p: 0.9, # 核采样影响多样性 max_tokens: 500, # 最大生成长度 presence_penalty: 0.0, # 避免重复话题 frequency_penalty: 0.0 # 避免重复词语 }5.3 性能优化建议启用批处理vLLM支持同时处理多个请求bash python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-7B-Instruct \ --trust-remote-code \ --port 8000 \ --max-num-batched-tokens 4096使用量化模型减少显存占用python --quantization awq # 或gptq缓存常见回复对高频问题缓存结果6. 常见问题排查6.1 模型服务无法启动显存不足检查nvidia-smi确保至少有16GB空闲显存端口冲突确认8000和5000端口未被占用模型下载失败手动下载模型到指定目录6.2 微信消息无法接收Token不匹配检查微信后台和代码中的Token是否一致URL未备案国内服务器需要ICP备案HTTPS要求微信公众号要求HTTPS使用ngrok或配置SSL证书6.3 回复质量不佳调整temperature降低值使回复更确定性优化prompt明确指令如请用中文简短回答限制领域添加系统消息如你是一个专业的技术助手7. 总结通过本文的实践你已经成功搭建了一个完整的Qwen2.5智能对话应用原型。核心要点包括快速部署使用预置镜像和vLLM10分钟内即可启动Qwen2.5 API服务灵活对接FastAPI中间层让模型服务轻松对接各种前端微信、APP、网页等效果可控通过参数调整可以获得不同风格的对话回复易于扩展可以继续添加多轮对话、知识库检索等高级功能整个项目代码不到200行但实现了一个真正可用的AI应用。你可以基于这个原型继续开发添加用户认证和权限控制集成企业知识库实现问答系统对接更多消息渠道飞书、钉钉等加入语音输入输出能力现在就可以试试给你的微信公众号粉丝提供AI助手服务了实测下来Qwen2.5的中文理解能力和代码生成能力都非常出色特别适合技术类问答场景。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询