本文引用的文件
清鉴 AI 调查工具面向公安、审计、风控等调查场景,围绕“案件”组织多源数据、分析线索并输出研判结果。系统由跨平台桌面客户端、粘性路由网关和后端服务组成:桌面端提供用户界面、会话与地图能力;网关保证同一用户的请求始终落到拥有该案件数据的 ai-server 节点;服务端按业务域拆分为 plat、agent、aiclean、knowledge、graph、person、call、trans、track、govern、dm、otg、external 等模块,分别承担平台能力、智能体、数据清洗、知识检索、关系图谱、人员、通话、交易、轨迹、治理、数据模型、外部数据和在线工具等职责。
本章节是系统架构总览,仅描述边界、职责和数据流,不展开具体实现细节。
仓库是一个 Maven 多模块工程,根 pom.xml 包含两个主要子模块:
ai-server:Java 后端服务,承载业务模块、数据库访问、本地数据源管理和外部系统集成。ai-gateway:基于 Spring Cloud Gateway 的粘性路由网关,负责用户绑定、节点健康检查和请求转发。
graph TB
Root["Maven 根工程<br/>com.zsjz:zsjz-ai"] --> Server["ai-server<br/>Spring Boot 业务服务"]
Root --> Gateway["ai-gateway<br/>Spring Cloud Gateway 粘性路由"]
图示来源
章节来源
| 组件 | 技术定位 | 主要职责 |
|---|---|---|
| Electron 桌面客户端 | TypeScript + Vue 前端 + Electron 主进程 | 提供调查工作台 UI、会话管理、地图展示、授权与本地设置,并通过 Preload Bridge 调用系统能力 |
| Preload Bridge | Electron preload 脚本 | 在渲染进程与 Electron 主进程之间建立安全桥接,封装操作系统、窗口、下载、设置等能力 |
| Spring Cloud Gateway | Java WebFlux 网关 | 根据 token 解析 userId,把请求粘性路由到已绑定的 ai-server 节点,并在节点不可用时返回明确错误 |
| ai-server 业务模块 | Java Spring Boot 应用 | 按 plat/agent/aiclean/knowledge/graph/person/call/trans/track/govern/dm/otg/external 等模块组织业务能力,管理案件数据源、文件、Agent 记忆和技能 |
| PostgreSQL | 关系型数据库 | 存储用户、服务、节点、路由、平台配置、业务主数据等结构化信息 |
| Redis | 内存缓存与会话存储 | 保存 sa-token 登录态、网关路由缓存、服务注册与健康状态 |
| DuckDB | 每节点本地列式数据库 | 承载每个 ai-server 节点上的案件数据源,支持高性能查询和临时表操作 |
| 文件系统 | 节点本地磁盘 | 存放上传附件、Agent 记忆、技能、Python 产物、DuckDB 文件及调查工作目录 |
这些组件共同构成“桌面客户端 → 网关 → 后端节点 → 共享数据库与缓存 → 本地数据源与文件”的调查工具链。
章节来源
下图展示各层边界和主要交互关系。Electron 客户端通过浏览器网络栈访问网关;网关维护用户与 ai-server 节点的绑定关系;ai-server 节点直接读写 PostgreSQL、Redis、本机 DuckDB 和文件系统。
graph TB
Client["Electron 桌面客户端<br/>UI、会话、地图、授权"] --> Bridge["Preload Bridge<br/>系统能力桥接"]
Bridge --> Gateway["Spring Cloud Gateway<br/>粘性路由、用户绑定、健康检查"]
Gateway --> Node1["ai-server 节点 1<br/>业务模块 + 本地数据源"]
Gateway --> Node2["ai-server 节点 N<br/>业务模块 + 本地数据源"]
Node1 --> PG["PostgreSQL<br/>用户、路由、配置、业务主数据"]
Node2 --> PG
Node1 --> Redis["Redis<br/>sa-token、网关缓存、健康状态"]
Node2 --> Redis
Node1 --> DuckDB["DuckDB<br/>节点本地案件数据源"]
Node2 --> DuckDB
Node1 --> FS["文件系统<br/>附件、Agent 记忆、技能、产物"]
Node2 --> FS
图示来源
x-token 解析 userId,再查 Redis 或 PostgreSQL 得到目标节点。章节来源
ai-server 内部以 module 为业务域边界,常见模块如下:
| 模块 | 职责概览 |
|---|---|
plat |
平台基础能力,包括系统信息、用户、表结构、案例元数据、基站转换、缓存管理等 |
agent |
智能体能力,包括模型管理、聊天会话、意图识别、提示词、RAG 索引、工具注册等 |
aiclean |
AI 辅助数据清洗,包括模板匹配、规则计划、字段映射、错误日志、同义词管理等 |
knowledge |
知识文档与索引,支撑检索增强生成和业务知识沉淀 |
graph |
关系图谱建模与可视化相关的数据处理和查询 |
person |
人员画像、亲密关系、常住人口、人群分组等 |
call |
通话记录、夜间通话、连续通话、敏感通话、开号信息等 |
trans |
交易流水、资金流向、大额交易、频繁交易、敏感交易、账户开户等 |
track |
轨迹分析,包括基站、乘车、同住、同乘、同城、快递等 |
govern |
治理规则、树形配置、结果处理器,支撑调查规则和治理流程 |
dm |
数据模型、边缘配置、文件信息、数据质量与清理相关能力 |
otg |
在线工具或特定运营工具相关功能 |
external |
对接外部系统,如车辆违法、犯罪人员、同住人等第三方数据 |
这些模块不是孤立存在的:例如基站转换由 plat 中的监听器处理,随后可能被 track、person 或 graph 复用;数据清洗结果可能进入 dm 的数据模型,再由 govern 的规则驱动下游分析。
章节来源
sequenceDiagram
participant User as "调查员"
participant Client as "Electron 客户端"
participant Bridge as "Preload Bridge"
participant Gateway as "Spring Cloud Gateway"
participant Node as "ai-server 业务节点"
participant PG as "PostgreSQL"
participant Redis as "Redis"
participant DuckDB as "DuckDB"
participant FS as "文件系统"
User->>Client: "打开调查工作台"
Client->>Bridge: "发起登录与业务请求"
Bridge->>Gateway: "HTTP 请求"
Gateway->>Redis: "解析 token 或查找用户绑定"
alt "已有绑定且节点健康"
Gateway->>Node: "转发请求"
Node->>PG: "读取用户、平台、业务数据"
Node->>Redis: "读取缓存与会话"
Node->>DuckDB: "查询案件数据源"
Node->>FS: "读取附件、记忆或产物"
Node-->>Gateway: "业务响应"
Gateway-->>Client: "透传响应"
else "无绑定或节点不可用"
Gateway-->>Client: "返回未绑定或 503 错误"
end
关键边界规则:
图示来源
产品目标是让公安、审计、风控调查员在一个统一的桌面环境中完成案件导入、数据清洗、线索分析、关系挖掘、轨迹追踪和报告输出,同时保障数据安全、可审计和可运维。
章节来源
本章是清鉴 AI 调查工具的顶层视图。后续子文档将分别深入以下主题: