DeepSeek Harness OpenGIS 技能包插件

前言

在构建 GIS 能力时,开发者需要与 GDAL、QGIS、GeoServer、PostGIS、CesiumJS、Mapbox GL JS 等众多工具打交道。手动将它们的技能或命令集成到智能体中,往往涉及版本探测、权限配置、环境映射和执行顺序。DeepSeek Harness(DSH)通过插件与 bundle 机制,将这类能力封装成可启停的技能。znlgis/dsh-opengis-skill 就是面向 GIS 领域的一套技能包插件,将 opengis-skills 仓库中的 gis/ 技能打包成 DSH 可安装、可切换的 bundle,每个技能包含执行建议与参考文档。

插件定位

  • 名称:@dsh-gis/dsh-opengis-skill
  • 维护者:znlgis
  • 分类:模型推理
  • 核心价值:把 GIS 全链路工具(GDAL、QGIS、GeoServer、PostGIS、CesiumJS、OpenLayers、Leaflet、Mapbox GL JS、deck.gl 等)的技能封装为 DSH 可按需加载的 bundle,减少环境配置与版本管理成本。

核心功能

按需加载技能

插件注册为 skill provider(通过 ctx.skills.registerProvider),发现阶段只读取 frontmatter(名称与描述),技能正文与 reference/*.md 参考文档在调用时按需加载。这有助于保持会话目录轻量,同时保证技能内容完整。

覆盖 GIS 全链路

插件包含 32 个技能,覆盖 GIS 全流程工具链,包括但不限于:

  • 数据与格式处理:GDAL/OGR CLI、GDAL API、QGIS(qgis_process / PyQGIS / QGIS Server)、MapServer、PostGIS、PROJ、PDAL、Shapely、GeoPandas
  • 计算与几何:JTS、NetTopologySuite、Esri Geometry API(Java/.NET)、OpenGIS Utils(Java/.NET)
  • Web 可视化:CesiumJS、OpenLayers、Leaflet、Mapbox GL JS、deck.gl
  • 后端与框架:GeoServer(含 REST API 与 Cloud)、GeoTools、GRASS GIS、GeoPipeAgent、SharpMap、Mapsui、OpenGisDAF
  • 索引与全流程:opengis-all 全流程索引

零运行时依赖

插件依赖项为空,仅使用 Node.js 内置模块,不引用 DSH 内部包。所有资产随 npm 包分发,解压后约 720 kB。插件运行在 DSH 进程上下文中,不占用额外运行时依赖。

可同步上游

通过 npm run sync 可从 opengis-skills 检出并复制资产,将上游 commit 与每个文件的 SHA-256 记录到 upstream.json,并重新生成技能清单。这便于与上游保持同步,同时保留版本与校验信息。

可启停与执行建议

单包既是 bundle 又是插件(通过 dsh.bundle.patch 插入自身行),可在 DSH 的 Plugins 面板中启用或停用。每个技能末尾包含 ## DeepSeek Harness 使用建议,说明如何按需读取参考文档、Windows 下的 shell 命令映射、版本探测顺序、产物验证步骤,以及需要提前确认的安装/覆盖/凭据操作。

兼容性

  • DeepSeek Harness:>=0.2.0-rc.2 <0.3.0-0(package.json 的 engines.dsh)
  • Node.js:>=22(engines.node,仅开发脚本与测试需要)
  • 运行时依赖:无

技能清单(部分)

以下列出部分技能及其用途(完整 32 个技能见 README):

Skill 主要用途
cesiumjs 构建浏览器 3D 地球、3D Tiles、CZML/时序数据与 glTF 模型;配置 Ion Token、Workers/Assets/Widgets 路径与 GCJ-02 偏移
deck-gl 使用 deck.gl 9.4.0 在浏览器中可视化大规模地理数据;调试空画布、数据属性与子包版本不匹配
gdal 通过 GDAL/OGR CLI 处理栅格/矢量数据;格式转换、重投影、镶嵌、等高线提取、NDVI 计算、诊断格式识别问题
gdal-api 在 C/C++/Python/Java/.NET 中编程使用 GDAL/OGR;处理栅格/矢量 I/O、异常抛出、空间参考转换与驱动注册问题
geopandas 在 Python 中进行矢量空间分析;文件读写、空间连接、叠加、裁剪、溶解、坐标系转换与可视化
geoserver 部署 GeoServer 3.0.x 发布 WMS/WFS/WMTS/WCS/MVT;配置 SLD/CSS 样式、RBAC 安全与 GeoWebCache 种子
geoserver-cloud 部署 GeoServer Cloud 3.0.2(Docker Compose 或 Kubernetes);配置网关、PgConfig 与 datadir 后端、RabbitMQ 配置总线与健康检查
geoserver-rest-api 通过 REST API 自动化 GeoServer 3.0.2;工作空间、数据存储、要素类型、SLD 上传与缓存刷新
geotools 基于 GeoTools 35.2(JDK 17)构建 Java GIS 应用;使用 CQL/ECQL 过滤器、CRS 解析与投影转换、流式渲染与资源释放
grass-gis 无头模式下使用 GRASS GIS 进行 GIS 处理;区域管理、栅格/矢量/三维栅格/时间模块操作与 Python 脚本
jts 使用 JTS 1.20.0 进行精确 2D 几何计算;几何构造、空间谓词、叠加运算、缓冲与空间索引优化;修复拓扑异常与环闭合问题
leaflet 在网页中添加轻量级 2D 瓦片地图;标记、弹窗、GeoJSON 叠加与图层控制;调试空白地图与标记图标问题
mapbox-gl-js 使用 mapbox-gl 3.33.0 构建矢量 Web 地图;WebGL 渲染、样式规范层、地形设置与填充挤出;调试 Token 与样式加载问题
opengis-all 提供全流程 GIS 技能索引与快速调用入口

安装与启用

插件通过 npm 发布,安装前请确认 DeepSeek Harness 版本符合要求(>=0.2.0-rc.2 <0.3.0-0)。

  1. 在 DeepSeek Harness 界面或命令行中,通过官方插件管理渠道安装 @dsh-gis/dsh-opengis-skill。
  2. 安装后,在 Plugins 面板中启用该插件。插件同时作为 bundle,会话技能目录将出现对应的技能条目。
  3. 在会话中,可通过技能名称调用相应 GIS 工具,工具会按需加载技能正文与参考文档。

典型用法

在会话中直接引用技能名称,例如:

  • 使用 gdal 处理栅格/矢量数据:gdal -o output.tif input.tif
  • 使用 geopandas 进行空间连接:gpd.sjoin(left, right, how="inner")
  • 使用 geoserver-rest-api 创建工作空间:POST /rest/workspaces(需提供认证与正确 JSON 结构)

插件会根据当前环境与配置,结合 reference/*.md 与执行建议进行版本探测、路径映射与权限确认。

适用场景与注意

  • 适用人群:需要将 GIS 工具链集成到智能体或 DSH 会话中的开发者、GIS 工程师。
  • 运行环境:插件以当前 DSH 进程权限运行,确保对目标工具(如 GDAL、QGIS、GeoServer)有相应执行与文件访问权限。
  • 依赖检查:安装前建议查看插件源码与许可证(MIT),确认与项目安全策略一致。
  • 版本要求:确保 DSH 版本在 >=0.2.0-rc.2 <0.3.0-0 范围内;Node.js >=22 仅用于开发脚本与测试,不影响插件运行。
  • 上游同步:如需保持技能内容最新,可在插件目录运行 npm run sync 同步上游资源。

小结

znlgis/dsh-opengis-skill 将 GIS 全链路工具封装为可按需加载的 DSH 技能包,提供零运行时依赖、可启停、可同步上游的特性。它适合需要频繁使用 GDAL、QGIS、GeoServer、CesiumJS、Mapbox GL JS 等工具的场景,帮助开发者减少环境配置与版本管理成本。如需查看完整技能清单与使用建议,可访问插件目录页与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye