本地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 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)
```

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