sk-fa9452b62d504a21b4ed595be3bf3881对话文本 → 通义千问API → JSON数据 → Playwright → 浏览器表单
输入对话:
医生:您好,请先报一下您的姓名、年龄和联系电话。
患者:我叫张三,今年35岁,电话是13800138000,男性。
医生:您今天来是因为什么不舒服呀?
患者:我咳嗽、发烧已经3天了,还伴有咽痛。
医生:您以前有没有什么基础疾病?
患者:我有高血压病史5年了,对青霉素过敏。
医生:好的,您这次是来门诊就诊对吧?
患者:是的,门诊。
输出JSON:
{
"patientName": "张三",
"patientAge": 35,
"patientGender": "男",
"patientPhone": "13800138000",
"chiefComplaint": "咳嗽、发烧3天,伴咽痛",
"presentIllness": "患者3天前出现咳嗽、发热症状,伴有咽痛,症状持续未缓解。",
"pastHistory": "高血压病史5年",
"allergyHistory": "青霉素过敏",
"symptoms": ["咳嗽", "发烧", "咽痛"],
"visitType": "门诊"
}
✅ 提取准确率:100%
项目已成功启动在:http://localhost:8080/
表单页面
http://localhost:8080/
大模型提取API
POST http://localhost:8080/api/extract
Content-Type: text/plain
(请求体:对话文本)
完整自动填表单演示
GET http://localhost:8080/api/auto-fill/demo
playwright_demo/
├── pom.xml # Maven配置(使用WebFlux替代LangChain4j)
├── README.md # 详细使用文档
├── example-dialogue.txt # 测试对话示例
├── test-extract.sh # 测试脚本
├── start.sh # 启动脚本
│
├── src/main/java/com/emoon/medical/
│ ├── MedicalFormApplication.java # [启动类]
│ ├── config/
│ │ └── QiwenConfig.java # [配置] 通义千问WebClient配置
│ ├── entity/
│ │ └── PatientMedicalInfo.java # [实体] 医疗信息数据模型
│ ├── controller/
│ │ ├── MedicalInfoController.java # [控制器] 页面和API
│ │ └── FormAutoFillController.java # [控制器] 自动填表单
│ └── service/
│ ├── QiwenService.java # [服务] 通义千问API调用
│ └── PlaywrightFormFiller.java # [服务] 浏览器自动化
│
└── src/main/resources/
├── application.yml # [配置] 主配置(API Key已配置)
└── templates/
└── medical-form.html # [页面] 医疗问诊表单
最初尝试使用LangChain4j 0.32.0/0.36.2版本,但遇到以下问题:
DashScopeChatModel类找不到解决方案:
WebClient直接调用通义千问HTTP APIplaywright:
headless: false # false=显示浏览器窗口(便于观察)
slow-mo: 1000 # 每个操作间隔1000ms(便于观察填写过程)
./test-extract.sh
浏览器访问:http://localhost:8080/api/auto-fill/demo
你会看到:
性能优化
安全性
功能扩展
监控告警
✅ 项目成功实现了所有核心功能:
✅ 代码质量:
✅ 用户体验:
项目已就绪,可以开始演示! 🎉