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

一、后端API(Flask + Qwen)

  1. 环境准备

1.1 安装Python3(如未安装)

python 复制代码
```bash
brew install python
```

1.2 创建虚拟环境并激活

python 复制代码
python3 -m venv qwen_env
source qwen_env/bin/activate

1.3 安装依赖

python 复制代码
bash
pip install torch transformers flask flask-cors
  1. 编写后端API代码

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

python 复制代码
``python
from flask import Flask, request, jsonify
from flask_cors import CORS
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

app = 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': '请输入症状描述'}), 400
        prompt = 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)}'}), 500

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
```
  1. 启动后端服务
python 复制代码
```bash
python app.py
```
  1. 本地API测试
python 复制代码
```bash
curl -X POST http://127.0.0.1:5000/ask -H "Content-Type: application/json" -d '{"symptoms":"咳嗽、咽干"}'
```
  • 返回AI生成的中医分析。

二、小程序前端

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

  • 新建小程序项目,选择自定义目录(`program`)。
  1. 编写页面代码
python 复制代码
`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局域网IP
      method: '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白名单。

  1. 真机调试

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

相关推荐
冷雨夜中漫步3 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴3 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再3 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
2501_916008894 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
webYin5 小时前
解决 Uni-App 运行到微信小程序时 “Socket合法域名校验出错” 问题
微信小程序·小程序·uni-app
喵手5 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934735 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy5 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
念风零壹6 小时前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai
肖永威7 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos