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

本地Qwen中医问诊小程序系统开发

一、后端API(Flask + Qwen)

1. 环境准备

1.1 安装Python3(如未安装)

```bash
brew install python
```

1.2 创建虚拟环境并激活

python3 -m venv qwen_env
source qwen_env/bin/activate

1.3 安装依赖

bash
pip install torch transformers flask flask-cors

2. 编写后端API代码

新建`app.py`,内容如下:`

``python
from flask import Flask, request, jsonify
from flask_cors import CORS
from transformers import AutoModelForCausalLM, AutoTokenizer
import torchapp = Flask(__name__)
CORS(app)# 加载Qwen模型
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)
device = "mps" if torch.backends.mps.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True).to(device)@app.route('/ask', methods=['POST'])
def ask():try:user_input = request.json.get('symptoms')if not user_input:return jsonify({'result': '请输入症状描述'}), 400prompt = f"你是一位中医医生。用户描述症状:{user_input}。请用中医思路分析,并给出辨证和调理建议。"input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)output = model.generate(input_ids, max_new_tokens=512)response = tokenizer.decode(output[0], skip_special_tokens=True)return jsonify({'result': response})except Exception as e:return jsonify({'result': f'出错了:{str(e)}'}), 500if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)
```

3. 启动后端服务

```bash
python app.py
```

- 首次运行会自动下载Qwen模型。
- 看到`Running on http://0.0.0.0:5000/`即启动成功。

4. 本地API测试

```bash
curl -X POST http://127.0.0.1:5000/ask -H "Content-Type: application/json" -d '{"symptoms":"咳嗽、咽干"}'
```

- 返回AI生成的中医分析。

二、小程序前端

## 1. 微信开发者工具新建项目

- 新建小程序项目,选择自定义目录(`program`)。

2. 编写页面代码

`pages/index/index.wxml````xml
<view class="container"><textarea placeholder="请输入您的症状描述" model:value="{{symptoms}}" bindinput="onInput"/><button bindtap="onAsk" loading="{{loading}}">问诊</button><view wx:if="{{loading}}">AI正在分析,请稍候...</view><view>{{result}}</view>
</view>
```### `pages/index/index.js````js
Page({data: {symptoms: '',result: '',loading: false},onInput(e) {this.setData({ symptoms: e.detail.value });},onAsk() {if (!this.data.symptoms.trim()) {wx.showToast({ title: '请输入症状', icon: 'none' });return;}this.setData({ loading: true, result: '' });wx.request({url: 'http://192.168.1.100:5000/ask', // 替换为你的Mac局域网IPmethod: 'POST',header: { 'content-type': 'application/json' },data: { symptoms: this.data.symptoms },success: (res) => {this.setData({ result: res.data.result });},fail: () => {this.setData({ result: '网络请求失败,请检查API服务' });},complete: () => {this.setData({ loading: false });}});}
});
```

## 3. 配置小程序网络安全域名

- 在微信开发者工具 → 项目设置 → 本地设置 → 不校验合法域名、web-view(开发阶段可勾选)。
- 真机调试时,需在微信公众平台后台配置服务器IP白名单。

4. 真机调试

- 手机和电脑在同一WiFi下。。。
- 小程序API地址用`http://本地局域网IP:5000/ask`
- 输入症状,点击“问诊”,即可看到AI返回的中医分析。

大家可以动手去操作,按照步骤。有手就行😎。。。

http://www.dtcms.com/a/270534.html

相关文章:

  • 【目标检测之Ultralytics预测框颜色修改】
  • OpenCV哈希算法------Marr-Hildreth 边缘检测哈希算法
  • 基于DeepSeek构建的openGauss AI智能优化助手:数据库性能提升新利器
  • 微软 Bluetooth LE Explorer 实用工具的详细使用分析
  • 【DOCKER】-3 数据持久化
  • OpenCV图像增强秘籍:高通滤波与特效艺术
  • Web 前端框架选型:React、Vue 和 Angular 的对比与实践
  • PiscTrace深蹲计数功能实现:基于 YOLO-Pose 和人体关键点分析
  • 【python处理excel】B列单元格中的内容都是回车换行的,把这些信息拆成多行多列,并且把A列对应的信息带过去。
  • A模块 系统与网络安全 第四门课 弹性交换网络-2
  • C#正则表达式全面详解:从基础到高级应用
  • 跨部门协作难以对齐项目进度,如何促进协同
  • Rust #[] 语法
  • PHP语法高级篇(一):日期时间处理和包含文件
  • 【系统与工具】Linux——Linux简介、安装、简单使用
  • 详解Kafka重平衡机制详解
  • MySQL8.0基于GTID的组复制分布式集群的环境部署
  • mysql互为主从失效,重新同步
  • 超越公有云:在裸金属服务器上构建低成本、高性能的静态资源服务
  • 创客匠人:创始人 IP 打造中 “放下身段” 的深层逻辑
  • 身份证识别api-便捷生活与安全社会的双重保障
  • 神经网络简介
  • 鸿蒙商城开发:ZKmall开源商城系统特性适配与性能优化
  • 7.神经网络基础
  • 【JavaEE进阶】图书管理系统(未完待续)
  • 【学习笔记】OkHttp源码架构解析:从设计模式到核心实现
  • 保姆级安装 Ruby 环境下载及安装教程, RubyInstaller下载及安装教程
  • Javaweb - 10.7 乱码和路径问题
  • 影石(insta360)X4运动相机视频删除的恢复方法
  • SHA-256算法详解——Github工程结合示例和动画演示