Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 study-ah — 静光社区自习室(P93)

DSH Java Native Plugin 场景案例:社区自习室。用户通过 AI 自习管家完成「查座位 → 挑督导 → 订座下单 → 订座单查询 → 经营统计」全流程,业务应用以 Spring Boot 提供页面与 REST,插件以 JAVA_NATIVE 方式把 5 个工具注册进 DSH Agent。

首页

业务概览

模块 内容
座位 开放式明档座 ¥25/天 · 静音隔间座 ¥38/天 · 单人卡座 ¥49/天 · 双人研讨间 ¥88/天 · VIP 独立自习室 ¥128/天
值班管理员 A01 学姐·安然(考研规划 4.9)· A02 馆员·老纪(文献检索 4.8)· A03 教练·大力(专注力训练 4.7),陪学督导 30 元/天,可选自助自习
订座单号 SD1001 起,状态流转:已订座 → 使用中 → 已完成
规则 连订 7 天 9 折;考试月(6月/12月)提前 5 天放号;免费 WiFi/茶水/充电;23:00 闭馆可申请延时

AI 对话演示

咨询座位

咨询座位

订座下单(AI 复述要素后调用 book,返回单号)

订座下单

订座单查询

订座单查询

经营统计

经营统计

插件注册的 5 个工具

工具 说明 对应 REST
plugin__study-ah__seat_list 座位列表(价格/配置/优惠规则) GET /api/seats
plugin__study-ah__admin_list 值班管理员列表(专长/评分/在督量) GET /api/admins
plugin__study-ah__book 座位预订(owner/phone/seat/days 必填,adminId/date 可选) POST /api/book
plugin__study-ah__order_info 订座单查询(SD1001 格式单号) GET /api/order?orderId=
plugin__study-ah__stats 运营统计(单量/状态分布/收入/分座位分管理员) GET /api/stats

项目结构

study-ah/
├── pom.xml                     # 父工程(study-room-ah)
├── ah-app/                     # 业务应用(Spring Boot,端口 18132)
│   ├── pom.xml                 # artifactId: ah-app
│   └── src/main/
│       ├── java/cn/xiaofuge/ah/app/
│       │   ├── StudyRoomApplication.java
│       │   ├── AhStore.java            # 数据中心:座位/管理员/订座单/统计
│       │   ├── AhController.java       # REST 接口
│       │   └── AssistantController.java# /api/assistant/stream SSE 代理 → DSH
│       └── resources/
│           ├── application.yml         # 端口 18132 / agent-id study-ah
│           └── static/index.html       # 📚 蓝色系对话页面
├── ah-plugin/                  # DSH 插件(JAVA_NATIVE)
│   ├── pom.xml                 # artifactId: ah-plugin
│   └── src/main/
│       ├── java/cn/xiaofuge/ah/plugin/StudyPlugin.java  # 5 工具
│       └── resources/META-INF/
│           ├── plugin.yaml     # id: study-ah
│           └── services/cn.xiaofuge.deepseek.harness.domain.spi.JavaHarnessPlugin
├── study_ah_e2e.py             # E2E 验证脚本(5 用例)
└── docs/images/                # 截图

快速开始

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

# 2. 安装并激活插件(DSH standalone 运行于 8090)
cp ah-plugin/target/ah-plugin-1.0.0-SNAPSHOT.jar ~/.dsh/standalone/plugins/study-ah.jar
curl -X POST http://127.0.0.1:8090/api/harness/plugins/install \
  -H 'Content-Type: application/json' \
  -d '{"pluginId":"study-ah","displayName":"静光社区自习室","pluginVersion":"1.0.0","runtimeType":"JAVA_NATIVE","sourcePath":"/Users/<you>/.dsh/standalone/plugins/study-ah.jar","entrypoint":"cn.xiaofuge.ah.plugin.StudyPlugin"}'
curl -X POST http://127.0.0.1:8090/api/harness/plugins/activate \
  -H 'Content-Type: application/json' -d '{"pluginId":"study-ah"}'

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

E2E 结果

[PASS] T1 座位列表(25/38/49/88/128)
[PASS] T2 管理员列表(安然/老纪/大力)
[PASS] T3 订座下单(SD1006/SD1007,隔间座 × 7 天 9 折 ¥239.4)
[PASS] T4 订座单查询(SD1002 VIP 室)
[PASS] T5 运营统计(总单量/收入/分布)
===== study-ah 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: 分段解析。
  • 数值容错:Controller 对 days 做 Number/String 双格式解析,兼容 LLM 传 "7" 字符串。

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