一个基于 Plan-to-Execute 架构的智能地理空间分析系统,专门用于军事单位部署选址等复杂地理空间分析任务。系统融合了 知识图谱增强推理、自适应规划 和 工具链式执行 等能力,能够理解自然语言任务、自动规划执行流程、智能调用工具并持续优化策略。
- 理解用户自然语言描述的地理空间分析需求
- 基于知识图谱检索相关规则和经验,生成详细的执行计划
- 支持多任务自动拆分(如"无人机和步兵分别应该部署在哪"),为每个单位生成独立计划
- 自动确定每个步骤的具体筛选参数(缓冲区距离、高程范围、坡度范围等)
- 基于 OpenSPG KAG 框架构建结构化知识图谱
- 从原始文本自动抽取实体和关系,构建领域知识库
- 智能检索:结合语义相似度和关键词匹配,精准定位相关规则
- 推理问答:基于知识图谱进行结构化推理,提供可溯源的答案
- Plan-to-Execute 架构:规划阶段确定具体参数,执行阶段直接使用
- 自动错误恢复:执行失败时自动分析原因并重新规划(最多3次)
- 用户反馈驱动:支持用户审查计划并提出修改意见,系统据此调整
- 工具链式调用:自动识别工具依赖关系,前序工具输出自动作为后续工具输入
- RESTful API 服务,支持多客户端接入
- Web 界面提供完整的任务流程管理
- 交互式 API 文档,便于集成和测试
┌─────────────────────────────────────────┐
│ 前端层 (Streamlit) │
│ 任务流程 | 历史结果 | 知识图谱可视化 │
└────────────────┬────────────────────────┘
│ HTTP/REST API
┌────────────────▼────────────────────────┐
│ API服务层 (FastAPI) │
│ 任务规划 | 执行 | 知识图谱查询 │
└────────────────┬────────────────────────┘
│
┌────────────────▼────────────────────────┐
│ 智能体核心层 (Orchestrator) │
│ ┌──────────┐ ┌──────────┐ ┌────────┐│
│ │ 规划模块 │ │重新规划 │ │执行模块││
│ └────┬─────┘ └────┬─────┘ └────┬───┘│
│ └─────────────┴──────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ 上下文管理器 │ │
│ │ - 知识图谱检索 │ │
│ │ - KAG推理问答 │ │
│ └─────────┬─────────┘ │
└──────────────┼──────────────────────────┘
│
┌──────────────▼──────────────────────────┐
│ 工具执行层 │
│ 缓冲区筛选 | 高程筛选 | 坡度筛选 | 植被筛选│
└──────────────┬──────────────────────────┘
│
┌──────────────▼──────────────────────────┐
│ 数据与知识层 │
│ 地理数据 | KAG知识图谱 │
└──────────────────────────────────────────┘
用户任务输入
│
▼
┌─────────────┐
│ 规划阶段 │ ◄── 知识图谱检索
│ │ 生成包含具体参数的计划
└──────┬──────┘
│
▼
┌─────────────┐
│ 用户审查 │ ◄── 可选:提出修改意见
│ (可选) │
└──────┬──────┘
│
▼
┌─────────────┐
│ 执行阶段 │ ◄── 直接使用计划中的参数
│ │ 工具链式调用
└──────┬──────┘
│
├── 成功 ──► 输出结果
│
└── 失败 ──► 自动重新规划(最多3次)
- 任务输入:自然语言描述分析需求
- 计划生成:基于知识图谱检索,生成包含具体参数的执行计划
- 计划审查:查看计划详情、筛选步骤、LLM思考过程、知识库推理结果
- 计划执行:自动调用工具链,生成GeoJSON结果文件
- 结果展示:交互式地图可视化,支持多任务分标签展示
- 知识构建:基于KAG框架从文本自动抽取实体和关系
- 知识检索:语义+关键词混合检索,精准匹配相关规则
- 推理问答:基于知识图谱进行结构化推理
- 可视化展示:实体-关系图可视化,支持筛选和搜索
- 查看所有历史执行结果
- 下载GeoJSON文件
- 在地图上查看结果
pip install -r requirements.txtpython main.py这将同时启动:
- 后端API服务: http://localhost:8000
- 前端界面: http://localhost:8501
- API文档: http://localhost:8000/docs
- 打开浏览器访问 http://localhost:8501
- 在"智能体任务"标签页输入任务,例如:
帮我找找无人机可以部署在哪里、坦克可以部署在哪里、步兵可以部署在哪里 - 系统将自动:
- 检索相关部署规则
- 生成执行计划
- 等待您审查和确认
- 执行计划并输出结果
# 生成计划
curl -X POST "http://localhost:8000/api/plan" \
-H "Content-Type: application/json" \
-d '{"task": "为步兵寻找合适的部署位置"}'
# 执行计划
curl -X POST "http://localhost:8000/api/execute" \
-H "Content-Type: application/json" \
-d '{"plan": {...}}'- 后端框架: FastAPI
- 前端框架: Streamlit
- 知识图谱: OpenSPG KAG SDK
- 嵌入模型: BAAI/bge-large-zh-v1.5
- 地理空间处理: geopandas, shapely, rasterio
- 地图可视化: Folium, pyvis
- 规划阶段:负责理解任务、检索知识、确定具体参数
- 执行阶段:直接使用计划中的参数,无需重新推断
- 重新规划:根据反馈或执行失败调整参数
- 基于结构化知识图谱而非纯文本检索
- 支持推理问答,提供可溯源的答案
- 知识图谱可视化,便于理解和调试
- 执行失败时自动分析原因并重新规划
- 支持用户反馈驱动的计划调整
- 最多3次自动重试机制
MIT License