Skip to content

About

🐾 安心宠物疫苗驱虫门诊:DSH Java Native Plugin 宠物医疗场景(套餐/医生/预约/订单/统计)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐾 vet-af — 安心宠物疫苗驱虫门诊(P91)

DSH Java Native Plugin 场景案例:宠物疫苗驱虫门诊。用户通过 AI 门诊管家完成「查套餐 → 挑医生 → 预约挂号 → 门诊单查询 → 经营统计」全流程,业务应用以 Spring Boot 提供页面与 REST,插件以 JAVA_NATIVE 方式把 5 个工具注册进 DSH Agent。

首页

业务概览

模块 内容
疫苗驱虫套餐 幼犬疫苗套餐 ¥388 · 幼猫疫苗套餐 ¥358 · 成年宠物年免加强 ¥268 · 体内外驱虫年卡 ¥458 · 抗体检测评估 ¥320
医生 D01 王萌(犬猫全科 4.9)· D02 李知安(猫科专科 4.8)· D03 赵摇滚(异宠门诊 4.7)
门诊单号 VET1001 起,状态流转:已预约 → 已就诊 → 已完成
规则 疫苗提前 3 天预约;接种前空腹 2 小时;留观 30 分钟、24 小时内避免洗澡;年卡续费 9 折;电子免疫本全程记录

AI 对话演示

咨询套餐

咨询套餐

预约挂号(AI 复述要素请用户确认后调用 book,返回单号)

预约挂号

门诊单查询

门诊单查询

经营统计

经营统计

插件注册的 5 个工具

工具 说明 对应 REST
plugin__vet-af__plan_list 套餐列表(价格/内容/预约规则) GET /api/plans
plugin__vet-af__doctor_list 医生列表(专长/评分/在诊量) GET /api/doctors
plugin__vet-af__book 门诊预约(owner/phone/pet/plan 必填,doctorId/date 可选) POST /api/book
plugin__vet-af__order_info 门诊单查询(VET1001 格式单号) GET /api/order?orderId=
plugin__vet-af__stats 运营统计(单量/状态分布/收入/分套餐分医生) GET /api/stats

项目结构

vet-af/
├── pom.xml                     # 父工程(vet-clinic-af)
├── af-app/                     # 业务应用(Spring Boot,端口 18130)
│   ├── pom.xml                 # artifactId: af-app
│   └── src/main/
│       ├── java/cn/xiaofuge/af/app/
│       │   ├── VetClinicApplication.java
│       │   ├── AfStore.java            # 数据中心:医生/套餐/门诊单/统计
│       │   ├── AfController.java       # REST 接口
│       │   └── AssistantController.java# /api/assistant/stream SSE 代理 → DSH
│       └── resources/
│           ├── application.yml         # 端口 18130 / agent-id vet-af
│           └── static/index.html       # 🐾 琥珀色系对话页面
├── af-plugin/                  # DSH 插件(JAVA_NATIVE)
│   ├── pom.xml                 # artifactId: af-plugin
│   └── src/main/
│       ├── java/cn/xiaofuge/af/plugin/VetPlugin.java  # 5 工具
│       └── resources/META-INF/
│           ├── plugin.yaml     # id: vet-af
│           └── services/cn.xiaofuge.deepseek.harness.domain.spi.JavaHarnessPlugin
├── vet_af_e2e.py               # E2E 验证脚本(5 用例)
└── docs/images/                # 截图

快速开始

# 1. 构建并启动业务应用
mvn clean package -DskipTests
java -jar af-app/target/af-app-1.0.0-SNAPSHOT.jar --server.port=18130

# 2. 安装并激活插件(DSH standalone 运行于 8090)
cp af-plugin/target/af-plugin-1.0.0-SNAPSHOT.jar ~/.dsh/standalone/plugins/vet-af.jar
curl -X POST http://127.0.0.1:8090/api/harness/plugins/install \
  -H 'Content-Type: application/json' \
  -d '{"pluginId":"vet-af","displayName":"安心宠物疫苗驱虫门诊","pluginVersion":"1.0.0","runtimeType":"JAVA_NATIVE","sourcePath":"/Users/<you>/.dsh/standalone/plugins/vet-af.jar","entrypoint":"cn.xiaofuge.af.plugin.VetPlugin"}'
curl -X POST http://127.0.0.1:8090/api/harness/plugins/activate \
  -H 'Content-Type: application/json' -d '{"pluginId":"vet-af"}'

# 3. 打开页面 http://127.0.0.1:18130 与 AI 管家对话
# 或运行 E2E
python3 vet_af_e2e.py

E2E 结果

[PASS] T1 套餐列表(388/358/268/458/320)
[PASS] T2 医生列表(王萌/李知安/赵摇滚)
[PASS] T3 预约下单(VET1005,柯基·短腿 驱虫年卡 王萌医生)
[PASS] T4 门诊单查询(VET1002 金毛·大壮)
[PASS] T5 运营统计(总单量/收入/分布)
===== vet-af E2E: 5/5 PASS =====

技术要点

  • JAVA_NATIVE 插件:AbstractHarnessPlugin + 内部 AbstractTool 子类,run() 返回 CompletableFuture<ToolExecutionResult>,HTTP 调用业务应用 REST。
  • 系统提示注入:configure() 中 registerSystemPrompt 写入报价/确认/单号播报与就诊提醒规范;registerHook(PRE_TOOL_USE) 做调用审计。
  • SSE 透传:AssistantController 把页面消息代理到 DSH /api/agent/stream(StreamingResponseBody,上游超时 170s,MVC async 180s)。
  • SSE 事件格式:DSH 输出 event:meta/step_break/tool_result/chunk/finish/done + data:{...};chunk 载荷为 {"content":"..."},前端按 event: 分段解析。
  • 确认式下单:系统提示要求 AI 预约前复述主人/宠物/套餐/价格/医生/时间,用户确认后才调用 book,避免误单。

DSH 版本

  • deepseek-harness-java-types 0.1.5(provided)
  • Spring Boot 3.2.5 / Java 17

License

MIT

About

🐾 安心宠物疫苗驱虫门诊:DSH Java Native Plugin 宠物医疗场景(套餐/医生/预约/订单/统计)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages