scenic-guide · AI 导览台(DSH Java Native 插件场景案例 P54)
基于 deepseek-harness-java(DSH)Java Native 插件机制 的景区导览场景案例:8 大景点(拥挤度/步行/游览时长)+ 3 条官方路线(半日/全日/亲子,展开为逐站序列)+ 演出索道场次排队 + 周边设施指引 + 实时客流避堵建议,通过 scenic-copilot 插件接入 AI 助手,支持自然语言规划行程、避堵、找设施。
模块
说明
g-app
Spring Boot 3.2 应用(端口 18093 ),景区导览 REST API 与前端页面
g-plugin
DSH Java Native 插件(scenic-copilot),打包 5 个 AI 工具
业务数据:8 个景点(东区观景/西区刺激/南区亲子/中区人文,含拥挤度与开放时间)、3 条官方路线(可展开逐站拥挤等级)、5 个演出/索道/体验项目(场次/排队/票价)、5 处设施(餐厅/卫生间/停车场/游客中心)、实时客流总览(平均拥挤度/最热最闲/长队项目/官方避堵建议)。
工具
说明
spot_list
景点列表:区域/类型/步行/游览时长/亮点/拥挤度/开放时间,可按区域与类型过滤
route_list
官方路线:适用人群/总时长/站点顺序/tip
activity
演出/索道/体验:场次时间/地点/排队分钟/票价
facility
周边设施:餐厅/卫生间/停车场/游客中心位置与备注
flow
实时客流:平均拥挤度/拥挤景点/最热最闲/长队项目/避堵建议
方法
路径
说明
GET
/api/spots?area=&type=
景点列表
GET
/api/routes
路线列表
GET
/api/route?id=
路线详情(逐站展开 + 拥挤等级)
GET
/api/activities?type=
演出/项目
GET
/api/facilities?type=
周边设施
GET
/api/flow
实时客流
POST
/api/assistant/stream
AI 助手 SSE(透传 DSH)
mvn clean package -DskipTests
java -Dserver.port=18093 -jar g-app/target/g-app-1.0.0-SNAPSHOT.jar
bash install_plugin.sh g-plugin/target/g-plugin-1.0.0-SNAPSHOT.jar \
scenic-copilot 1.0.0-SNAPSHOT g-plugin-1.0.0-SNAPSHOT.jar " AI 导览助手"
open http://127.0.0.1:18093/
bash agent_stream.sh 127.0.0.1:8090 scenic-copilot " 半天时间怎么玩最划算?现在人多不多?"
bash agent_stream.sh 127.0.0.1:8090 scenic-copilot " 带5岁孩子来玩,推荐个路线,顺便说下哪里能吃饭"
bash agent_stream.sh 127.0.0.1:8090 scenic-copilot " 玻璃栈道现在挤不挤?还有演出都几点?"
bash agent_stream.sh 127.0.0.1:8090 scenic-copilot " 厕所和停车场在哪"
5 个工具全部验证通过。验证截图:
截图
内容
AI 按拥挤度排顺序给出半日行程与错峰衔接建议
AI 亲子线 + 餐厅/母婴室/厕所全程安排
AI 报索道排队 25 分钟并给先上后挤策略
拥挤度分档 :≥75% 拥挤(红)/ 50~75% 中等(黄)/ <50% 舒适(绿);路线详情把每站拥挤等级展开,AI 可据此调换站点顺序。
路线展开模型 :route_detail 把 spotIds 展开为带 visitMin/crowdLevel 的有序序列并汇总游览时长,AI 直接可读。
排队预警 :waitMin ≥20 分钟的项目进 longWait 清单,系统提示要求主动提醒并给替代方案(如免费茶马古道替代索道)。
结论约束 :行程必须给「按顺序站点 + 每站时长 + 总时长 + tip」,避堵用拥挤度数据说话,禁止编造景点与场次。
scenic-guide/
├── pom.xml # 父 pom(maven.compiler.parameters=true)
├── g-app/ # Spring Boot 应用 (18093)
│ └── src/main/java/cn/xiaofuge/g/app/
│ ├── ScenicApplication.java
│ ├── GStore.java # 景点/路线/演出/设施/客流
│ ├── GController.java # REST API
│ └── AssistantController.java # SSE 透传 DSH
├── g-plugin/ # DSH 插件 (scenic-copilot)
│ └── src/main/
│ ├── java/.../ScenicPlugin.java # 5 工具
│ └── resources/META-INF/ # plugin.yaml + SPI
└── docs/
├── 使用说明.md
└── images/ # 验证截图 ×4