最基础版「AI 行动系统」Gotham 情报篇 · 落地方案
把「多源情报接入 → 清洗融合 → 实体解析建图 → 查询/图分析 → 时空研判 → 模式告警 → 情报报告 → 协作与权限 → AIP AI 跨产品联动」用真实功能串成一条可演示、可复现、可验收的情报自动化闭环。
▎文档卡片
| 项目 | 说明 |
|---|---|
| 方案名称 | 最基础版「AI 行动系统」Gotham 情报篇——一条端到端的情报接入-研判-行动闭环 |
| 业务主题 | 「玄武集团关联网络」情报研判:多源人员/资金/航运情报接入 → 重复实体消解合并 → 知识图谱关联分析 → 地图/时间轴时空定位 → 模式规则命中告警 → 自动生成情报简报 → 全程 ABAC 权限与审计(沿用 Gotham bootstrap 幂等预置的演示数据,无需造数) |
| 覆盖产品 | P4 Gotham多源接入 / 清洗 / 实体解析 / 知识图谱 / 全局搜索 / 图分析 / 地理 / 时间轴 / 多视图 / 模式识别 / 情报报告 / 协作 / ABAC / 审计哈希链 P1 AIPAutomation Copilot(call_gotham_api 跨产品工具) |
| Demo 时长 | 完整分幕约 40~60 分钟;验收最小路线约 15 分钟(第 6 节标 ⭐ 项);3 分钟台词见第 7 节 |
| 参考依据 | action/products/gotham/ 当前分支代码(路由 server/server.go、seed server/seed.go、presets pattern/presets.go)、wiki/frontend-intro-v5/markdown/gotham/(16 页前端手册)、wiki/gotham/TAD、wiki/docs/gotham/API/ |
| 前置结论 | Gotham 已具备「多源接入 + AI/规则检测 + 人工审核 + 报告 + 权限审计」完整能力,无需新增开发即可演示;本方案不做代码改动,只做「把已实现功能串起来」的操作编排。姊妹篇:AIP+Foundry 版见 action/docs/ai-action-demo.html |
1 这个 Demo 是什么
1.1 一句话定义
Gotham 版「AI 行动系统」=多源接入/融合 负责把杂乱情报洗成统一实体,实体解析/图谱 负责把实体连成可推理的关系网,模式识别 负责自动发现可疑行为并告警,情报报告 负责一键汇聚成简报留证,最后 AIP Copilot 让你用一句话驱动 Gotham 查数、建实体。人只在该拍板的地方拍板(实体合并人工审核、告警研判、报告发布),其余全自动。
它回答演示中最常被问的四个问题:
- 情报从哪来、怎么变成系统里的「对象」? —— 多源接入页配置「连接 + 映射 + 清洗」三段式数据源,运行后原始记录自动映射成图谱节点/边(融合实体)。
- 同一批人出现在多个源里怎么办? —— 实体解析四层打分流水线(确定性→规则→模糊→AI 裁决,未配 LLM key 时灰区降级)+ 三阈值带分流 + 人工审核合并兜底。
- 系统怎么「主动」发现问题? —— 模式识别规则(frequency/anomaly/association)自动扫描实体与事件,命中落告警,评分排序,人工确认/处置闭环。
- 凭什么相信研判结论? —— 实体簇/匹配对可回看、告警带证据链、报告由真实数据汇聚生成、ABAC 策略评估留 trace、审计日志带哈希链可验证。
1.2 Gotham 的「对象 / 本体」怎么理解(对比 Foundry)
从 Foundry(或 ai-action-demo.html)过来的观众最常问:「Gotham 里对象在哪建?本体在哪配?」答案是:Gotham 没有独立的『本体管理』页面,它的语义层是『图谱实体 + 映射配置 + 解析作业』三件事合起来承担的:
| 概念 | Foundry 对应物 | Gotham 落点(怎么建/怎么配) |
|---|---|---|
| 对象类型(person/org/ship…) | 对象类型 object_type(强 schema,属性列固定) | 图节点 type 字符串(弱 schema):不需要预先注册,由数据源 mapping_config.node_type、解析作业 entity_type、手工建节点时的 type 字段约定;seed 预置 person/org/ship 三类 |
| 属性(列) | 对象属性(白名单校验) | 节点 properties 任意键值 JSON,由数据源 mapping_config.property_fields 决定哪些原始列入图 |
| 对象实例(行) | 业务表行 | 图节点(存磁盘 JSON temp/gotham_graph.json)+ 融合实体表 fused_entities(含原始记录 raw 留底) |
| 链接(关系) | link 类型 | 图边:数据源边型映射(edge_type/source_field/target_field)自动生成,或 POST /graph/edges 手工建 |
| 版本审批 | draft→review→merge | 不适用(无版本机);等价的治理卡点是实体合并人工审核与 ABAC 策略 |
一句话:Gotham 的「建模」= 建数据源时写好映射配置(记录→节点/边的规则),「实例」= 运行导入 + 实体解析,「查询」= 全局搜索 / 图 API / 时空 API。详见 §5.1/§5.2。
1.3 验收标准(做完后应能逐项打勾)
- 在线层:Gotham 后端 18083
/healthok;admin/admin1 登录成功,token 与 AIP/Foundry 互信。 - 数据层:多源接入页可见 seed 数据源
gotham_demo_personnel与 5 条融合实体;新建一个数据源并运行,批次 success、融合实体增加。 - 解析层:创建并运行一个实体解析作业,作业 completed;能看到匹配对(auto_merged/review)、实体簇,人工审核「确认合并」后图上代表实体吸收成员。
- 图谱层:情报工作台能看到 10 节点 8 边 seed 图(玄武集团/天河贸易/青龙航运/泰和轮…),neighbors/subgraph 可查。
- 查询层:全局搜索
/search?q=玄武并发检索七域(图谱/融合实体/时间轴/地理/报告/任务/项目),命中结果按实际数据出现分类。 - 时空层:地图 6 要素与 heatmap 可见;时间轴 9 事件、range/aggregate 可查。
- 自动化层:模式识别规则「测试」返回命中数、「评估」落库命中并进告警看板;告警 acknowledge→resolve 闭环可走。
- 报告层:从数据生成一份情报简报(entity/incident/analysis 分节),发布后可导出 HTML。
- 权限层:ABAC 评估「analyst 读 secret」返回 deny;审计
/audit/verify哈希链校验通过。 - AI 联动层:AIP Copilot 对话经
call_gotham_api查询 Gotham 图谱节点 / 创建新节点成功。
1.4 范围边界(诚实的“不做什么”)
- 本方案只串 Gotham 单产品闭环 + AIP Copilot 跨产品联动;Foundry 数据管道/本体审批、Apollo 供应链、Swift 卫星结算不在主剧情内(AIP/Foundry 版见
action/docs/ai-action-demo.html)。 - AI 能力诚实声明:① 实体解析第四层(LLM 裁决灰区)已接线:server 按 LLM key 注入网关(O-012,
llm.api_keys配了 deepseek/dashscope 任一即注入resolution.NewResolver(db, graphStore, llm, …)),作业勾enable_ai后灰区匹配对真实交大模型裁决并产出ai_reviewed;仅未配置任何 LLM key 时才保持 nil 降级,灰区自动按模糊层分数处理,不报错不阻塞——演示时讲「AI 裁决层真实可用,未配 key 的降级场景灰区自动走审核」;② 情报报告/reports/generate是数据驱动汇聚(把实体/事件/命中按 sections 拼装成报告块),不是 LLM 写作;③ 模式识别是「规则 + 统计」确定性检测,AI 增强属 V2 规划未启用。 - Neo4j 图存储为可选后端(
gotham.graph.mode=neo4j),默认 disk 模式(JSON 落盘temp/gotham_graph.json),单机演示够用;运维备份经/ops/backups。 - 依赖 LLM 的环节(AIP Copilot 对话)结果不完全确定,跑偏用自然语言补一句纠正,不算 bug。
2 产品与能力落点
「AI 行动系统」每个环节在 Gotham 里都有一个真实落点:
| 系统环节 | 承担模块 | 前端入口(Gotham 侧边栏) | 后端 API(前缀 /api/v1,前端经 /gotham-api/v1 代理) |
|---|---|---|---|
| 情报接入与清洗 | fusion(多源融合) | 多源接入 /gotham/ingestion | /ingestion/sources、/ingestion/batches、/ingestion/entities |
| 实体消解(本体归一) | resolution(四层打分) | 实体解析 /gotham/resolution | /resolution/jobs、/resolution/reviews |
| 知识图谱 | graph(disk/neo4j 双实现) | 情报工作台 /gotham | /graph/nodes、/graph/edges、/graph/neighbors|subgraph|merge |
| 全局查询 | search(七域并发) | 情报工作台搜索框 | GET /search?q= |
| 图分析 | analysis(B4 增强) | 图谱映射/图分区/时序分析页 | /analysis/graph/path|centrality|community|pagerank|partition|temporal/*(admin) |
| 地理空间 | geo | 地图视图 /gotham/map | /map/features、/map/heatmap、/map/radius、/map/trajectory/:entity_id |
| 时序研判 | timeline | 时间轴 /gotham/timeline | /timeline/events、/timeline/range|aggregate|forecast|compare |
| 多视图联动 | views | 多视图联动 /gotham/views | /views/sessions、/views/links |
| 模式识别/告警 | pattern(规则+统计) | 模式识别 /gotham/patterns | /patterns/rules、/patterns/hits、/patterns/alerts |
| 情报报告 | reports(数据驱动) | 情报报告 /gotham/reports | /reports、/reports/generate、/reports/:id/html|pdf|docx |
| 协作工作流 | collab + eventbus/ws | 项目协作/任务看板/协同动态 | /collab/projects|tasks|comments|notifications、GET /ws |
| 权限与审计 | abac + 审计哈希链 | 访问控制 /gotham/access | /access-policies、/access-policies/evaluate|traces、/audit/verify |
| AI 跨产品联动 | AIP Automation Copilot | AIP 管理后台 → AI 自动化经营 | /automation/chat(工具 call_gotham_api,接口目录 products/aip/automation/catalog/gotham.go) |
3 一条端到端链路(全景图)
主剧情推荐的业务闭环(点击各节跳到对应操作):
图中每个箭头都是「已实现的路由或前端页面」,没有一条是 PPT 上虚构的能力。§5 分幕即按此链路展开。
4 环境准备与启动
4.1 前置依赖与配置
必需
- 代码分支 action-v5,仓库含
action/目录 - Go 1.25+、Node.js(前端构建)
- PostgreSQL 17(可选:不可达自动降级 SQLite
./data/gotham_platform.db) - LLM Key(仅 §5.11 AIP Copilot 联动需要:
config.yaml → llm.api_keys.deepseek)
关键配置(action/config.yaml)
gotham.graph.mode: disk(默认;图数据落盘temp/gotham_graph.json,neo4j 可选)gotham_api.base_url:AIP Copilot 调 Gotham 的地址,缺省已默认http://localhost:18083,无需配置security.username_fallback=true(默认):AIP/Foundry/Gotham 共享 SECRET_KEY,token 跨产品互信
4.2 启动方式
开发模式(推荐演示用),开两个终端(要演 §5.11 再加 AIP 终端):
# 终端 1 —— Gotham 后端(情报全栈,端口 18083)
cd <本机检出目录>/action # 例如 E:\GitHub\auto_project_gen\action
go run ./products/gotham/cmd
# 终端 2 —— 前端(Vite 5173,/gotham-api→18083 并重写为 /api/v1;/api→18081;/aip-api→18080)
cd <本机检出目录>/action/web
npm run dev
# 终端 3(可选,§5.11 用)—— AIP 后端
cd <本机检出目录>/action
go run ./products/aip/cmd
- 健康检查:
curl http://127.0.0.1:18083/health返回 ok;OpenAPI 自文档:http://127.0.0.1:18083/api/docs/ui。 - 直连 API 演示时用
http://localhost:18083/api/v1/…(脚本/回归);走前端代理则用/gotham-api/v1/…。 - 启动即完成:建库(PG
chatbi_action_dev优先,与 AIP/Foundry 同库不同表)→ AutoMigrate 全部表 → 幂等 seed(见 §4.3)→ 监听 18083。
cd … && … 前缀;停进程用 PowerShell Stop-Process -Name xxx -Force(勿用 taskkill,WOW64 杀不掉 64 位进程);8080/8000 已占用勿用,Gotham 固定 18083。4.3 登录与演示数据(bootstrap 幂等 seed)
| 项 | 说明 |
|---|---|
| 账号 | 超级管理员 admin / admin1(环境变量 DEFAULT_ADMIN_USERNAME/PASSWORD 可覆盖)。演示 ABAC 时再注册一名 analyst 角色用户更真实。 |
| 图谱 seed | 10 节点(person/org/ship,含 1 个 classification=secret 的玄武集团)+ 8 边(member_of / transferred_to[金额 50 万] / shipped_to / operates / associated_with),固定 ID 幂等 upsert |
| 融合 seed | manual 数据源 gotham_demo_personnel(5 条人员记录:张远/李四/王敏/吴刚/赵敏,含 org/role/amount),已运行导入成功 |
| 地理 seed | 6 要素:北京联络点/上海货栈/广州港口/青岛锚地/深圳观察点 5 个点 + 华北-华东航线 1 条线(部分关联 entity_id) |
| 时间轴 seed | 9 条事件(2026-07~08):meeting/movement/transaction/registration/incident,severity low→critical,部分关联图节点 |
| 模式 seed | 2 条演示规则(「高频事件预警」frequency / 「大额资金异常」anomaly)+ 预置规则库(反欺诈/企业关联/公共安全三类 ≥5 条,默认 active) |
| 报告 seed | 1 条《玄武集团关联网络情报简报》(heading/paragraph/table/kv 块,draft 态) |
| ABAC seed | 3 条策略:「分析师禁读机密」(deny,priority 100)/「分析师可读内部数据」(allow)/「管理员全量放行」 |
temp/gotham_graph.json,删掉该文件重启可还原图谱初始态(数据库平台表保留)。删图上节点用情报工作台删除按钮或 DELETE /graph/nodes/:id。5 主剧情:玄武集团关联网络「接入-研判-行动」闭环
5.1 第一幕 · 多源接入:对象怎么创建
目的:回答「Gotham 里的对象从哪来」——建数据源 → 配映射 → 运行导入,三步把原始记录变成图谱实体候选。入口:Gotham 侧边栏 → 多源接入(/gotham/ingestion)。
操作(推荐边讲边配一个新源)
- 点「创建数据源」,填名称(全局唯一,编辑不可改)与显示名,来源类型四选一:
file_csv/file_json(文件路径)/database(连接器参数 + 查询 SQL,口令 AES 加密落库)/manual(直接预置 records 数组——演示最稳,无外部依赖)。 - 配映射配置(本体的核心,表单/JSON 双模式):节点型填
node_type(如 person)+id_field(唯一标识列)+label_field(名称列)+property_fields(哪些列入图属性);边型填edge_type+source_field/target_field(两端实体标识列)。 - 配清洗规则(可选):勾选启用 + 错误策略
skip/strict/tolerant+ 预设按钮逐个追加(去首尾空格/空值统一/日期标准化/手机号规整/全角转半角/正则替换/枚举映射)。 - 推荐演示数据(与 seed 人员刻意重叠,为 §5.2 解析供料)——manual 源
records示例:
①②是同一人的两条异源记录(同名不同 id,fuzzy 层会给出高相似分);③演示规则层谐音归一(“赵敏” vs “ZW航运-赵敏”)。[ {"entity_id":"intel_a_001","name":"张远","org":"玄武集团","role":"头目","amount":260000}, {"entity_id":"intel_a_002","name":"张远","org":"玄武集团","role":"出资人","amount":260000}, {"entity_id":"intel_a_003","name":"ZW航运-赵敏","org":"天河贸易","role":"财务","amount":120000} ] - 保存后点数据源行内 运行:确认后
POST /ingestion/sources/:id/run异步执行,立即返回 running 批次;前端经 SSE(fetch + ReadableStream 带 Bearer 头)实时推进进度条。大文件可 暂停/继续(断点续传按 ResumeOffset)。 - 批次终态后看「融合实体」表:每条记录一行,含 schema_type(node/edge)、fingerprint(sha256 去重键)、status=
pending(待解析)。
怎么验
- 批次列表出现
success(或 partial)行,详情弹窗可见 total/imported/failed/error_log;融合实体表新增 3 条 pending 实体。 - 清洗生效:故意传一条空名称记录 → 按 error_strategy 被跳过并记入 error_log,而不是整批失败。
database 源复用连接器工厂 allow-list,默认仅放行 MYSQL/SQLSERVER/POSTGRESQL(SQLITE 需显式授权),连不上先查这里;② 编辑数据源时 name 与 source_type 不可改(置灰),改名需删除重建;删除数据源保留历史批次与融合实体。5.2 第二幕 · 实体解析:本体信息怎么配置与归一
目的:多源重复实体合并成一个图谱节点——这是 Gotham 的「本体治理」卡点。四层打分流水线 + 三阈值带分流 + 人工审核闭环。入口:侧边栏 → 实体解析(/gotham/resolution)。
操作
- 「作业管理」页创建解析作业:名称(全局唯一)、实体类型(datalist 常用 person/org/ship/incident/asset,可自由输入)、参与数据源(勾选 §5.1 的两个源)、AI 层
enable_ai勾选(见下方 AI 层说明)→ 点「创建并运行」(POST /resolution/jobs+ 自动POST /resolution/jobs/:id/run)。 - 作业后台执行 四层打分,前端每 2s 轮询作业详情(60s 上限):
L1 确定性 external_id / fingerprint 完全一致 → 1.00 自动合并 L2 规则 归一化名称相等 → 0.95;拼音首字母同串 → 0.85(谐音,如 张伟/章伟) L3 模糊 Levenshtein / JaroWinkler / Soundex / Dice 组合相似度 (L2/L3 叠加属性加成:phone/email 同名值相等 +0.12、其余同名键 +0.04,总上限 +0.20) L4 AI 灰区 [0.35, 0.85) 且作业勾 enable_ai、后端已注入 LLM 网关时交大模型裁决(见下) 三阈值带: score ≥ 0.90 → auto_merged(自动合并) 0.70 ≤ score < 0.90 → review(进人工审核) score < 0.70 → rejected(拒绝) 阈值带作业级可配:API thresholds 字段须满足 0 < candidate < accept ≤ 1,缺省仍 0.90/0.70 - 作业 completed 后看详情面板:统计卡(候选实体/匹配对/自动合并/待审核/AI 裁决/实体簇)+ 实体簇列表 + 匹配对列表(按状态过滤)。
- 切「人工审核」标签:review 态匹配对以实体 A/B 并排属性卡片展示(含匹配依据与相似分)→ 填可选审核理由 → 点确认合并(实体 B 吸收进代表实体并写图,
POST /resolution/reviews/:id/confirm)或拒绝。审核写操作经 ABAC PEP(resolution.review),deny 命中返回 403。 - 回「情报工作台」搜合并后的代表实体:图上只保留一个节点,fused_entities 的
resolved_entity_id已回填。
怎么验
- 作业 completed;两条「张远」记录出现在同一实体簇(L1/L3 分流);人工审核确认后簇成员数变化。
- 「确认合并前图谱无新节点、确认后代表节点属性吸收成员」——审核闸门是真的。
config.yaml → llm.api_keys 配了 deepseek/dashscope 任一即注入,都为空才保持 nil);作业勾 enable_ai 后,灰区 [0.35, 0.85) 匹配对交大模型裁决并产出 ai_reviewed,LLM 调用失败自动降级回 L3 分数、不阻塞作业。仅未配 key 的降级场景下,灰区自动按 L3 模糊分分流到人工审核。演示话术:「勾了 AI 层且后端配了 key,灰区匹配真走大模型裁决并打 ai_reviewed;没配 key 时按模糊相似度分流,保证不漏判」。另:后端有 POST /resolution/reviews/:id/split(拆分已合并实体),前端暂未提供按钮,需走 API。5.3 第三幕 · 知识图谱:节点与边
目的:看懂「情报对象在图上的形态」,并演示手工建实体(不经过导入的直接姿势)。入口:侧边栏 → 情报工作台(/gotham)。
操作
- 工作台看 seed 图:点「玄武集团」(org,
classification=secret)看属性与关联边(张远/李四 member_of、transferred_to 天河贸易 amount=500000)。 - 手工建节点(API 演示,对应 Copilot 目录里的
gotham_create_graph_node):curl -X POST http://localhost:18083/api/v1/graph/nodes \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{"type":"person","name":"神秘出资人","properties":{"region":"华北","amount":999999},"source":"线报-2026-09"}' - 建边连回已知实体(
POST /graph/edges,source_id/target_id/type/weight/properties),如financed→ 玄武集团。 - 查邻居
GET /graph/nodes/:id/neighbors、子图过滤GET /graph/subgraph?type=org;发现重复节点时POST /graph/nodes/merge合并(TAD-04)。
怎么验
- 新节点/边立即出现在工作台与
GET /graph/nodes列表;GET /graph/stats计数 +1。 - graph stats 显示节点/边总数与类型分布,与 seed+新增一致。
temp/gotham_graph.json,进程内存 + 落盘);配置 gotham.graph.mode=neo4j 并填 Bolt 连接即可切换 Neo4j,API 不变——「单机优先、不过度封装」的典型落点。5.4 第四幕 · 怎么查询:全局搜索 + 图分析
目的:把「图里有什么」变成「一句话/一次调用问出来」。Gotham 的查询入口比 Foundry 更「情报化」:
| 入口 | 在哪 | 适合问 | 真实例子 |
|---|---|---|---|
| 全局搜索 | 情报工作台搜索框(GET /search?q=) | 「这个词和谁有关」 | 搜 玄武 → 七域并发(图谱节点/融合实体/时间轴事件/地理要素/报告/任务/项目,每域限 10 条、空分类不返回) |
| 图邻域查询 | 工作台节点详情 | 「这个人的直接关系网」 | /graph/nodes/graph:person:zhy/neighbors → 所属组织+同组织人员+关联人 |
| 图分析(admin) | 图谱映射/时序分析页 | 「路径/中心性/社区/影响力」 | /analysis/graph/path(两实体关系链)、centrality(谁是关键中间人)、community(团伙划分)、pagerank(影响力排序) |
| 时序图分析 | 时序分析页 /gotham/temporal | 「某时间段的关系演变」 | /analysis/graph/temporal/subgraph|trend|path(时窗子图/时间桶统计/时窗最短路径) |
怎么验
- 搜索「玄武」七域并发、图谱/融合实体等域按实际数据出现命中行(空分类不返回;seed 报告标题含「玄武」亦会命中报告域);搜索「赵敏」能同时看到融合实体(原始记录)与图节点(归一后)。
- 图分析任选一个算法(如 centrality)返回分数列表——注意
/analysis/*需要 admin 角色。
5.5 第五幕 · 地图视图
目的:给关联网络加空间维度。入口:地图视图(/gotham/map)。
操作与验证
- 看 seed 6 要素:5 个点(北京联络点/上海货栈/广州港口/青岛锚地/深圳观察点)+ 1 条航线线要素(华北-华东航线)。
- 手工建要素(
POST /map/features):{"name":"疑似交接点","geometry_type":"point","coordinates":[122.1,30.5],"properties":{"entity_type":"ship"},"entity_id":"graph:ship:taihe"}——entity_id关联图实体后可从实体下钻到地图。 - 空间查询三连:
GET /map/features/bbox(框选)、GET /map/features/radius(半径)、GET /map/heatmap(热力聚合);GET /map/aggregate/regions按区域聚合。 - 轨迹回放:
GET /map/trajectory/:entity_id查某实体(如泰和轮)的时空轨迹。 - 图层管理:
/map/layers增删改查,按业务分组控制要素显隐。
5.6 第六幕 · 时间轴
目的:给关联网络加时间维度,并为 §5.8 模式规则供料。入口:时间轴(/gotham/timeline)。
操作与验证
- 看 seed 9 事件(2026-07~08):高管会晤/离港/大宗交易/船舶登记/货栈异常/靠泊/检查/集会/航线异常——incident 类事件是「高频事件预警」规则的评估对象。
- 新建事件(
POST /timeline/events):{"title":"可疑夜间卸货","event_time":"2026-09-01T02:00:00Z","event_type":"incident","severity":"high","entity_id":"graph:ship:taihe","location":"舟山"};event_type 枚举 meeting/movement/transaction/registration/incident,severity low/medium/high/critical。 - 时序查询:
/timeline/events/range(区间)、/timeline/aggregate(按周期聚合)、/timeline/forecast(趋势预测)、/timeline/compare(双周期对比)、/timeline/periods。
5.7 第七幕 · 多视图联动
目的:图谱/地图/时间轴三视图同一筛选条件联动,讲「情报研判不是切页面,是同一个案的多面」。入口:多视图联动(/gotham/views)。
操作与验证
- 创建视图会话(
POST /views/sessions),多视图页同时打开图谱/地图/时间轴面板。 - 应用过滤器(
POST /views/sessions/:id/filter,如按实体类型/时间窗)→ 三个视图同步收窄;DELETE …/filter清除。 - 建立视图联动关系(
POST /views/links)后在图谱点选实体,GET /views/sessions/:id/linked返回联动结果。 - 协作闭环:把会话存为共享视图(
/collab/projects/:id/shared-views),团队成员打开即见同一研判现场。
5.8 第八幕 · 模式识别:自动化发现 + 告警闭环
目的:演示「系统主动发现问题」——把「什么样的事件值得警惕」固化为规则,自动扫描、命中落库、评分排序、人工处置。入口:模式识别(/gotham/patterns)。
操作
- 看规则列表:seed 2 条(「高频事件预警」:30 天内 incident ≥3 起触发;「大额资金异常」:person 实体 amount > 10 万)+ 预置规则库(反欺诈/企业关联/公共安全三类,active)。
- 新建一条规则练手:三种类型
frequency(时间窗频次)/anomaly(属性阈值,算子 gt/lt/gte/lte/eq)/association(同一实体事件类型组合共现);表单切类型自动填 config 模板;configJSON 如{"window_days":30,"min_count":3,"event_type":"incident"}。 - 先点「测试」(
POST /patterns/rules/:id/test,不落库只返回命中数)确认规则不跑偏 → 再点「评估」(落库命中)或「全量评估」(所有启用规则批量执行,返回 total/hit/miss/errors 卡片)。 - 规则生命周期:draft→测试中→启用中→已禁用→已归档(
POST /patterns/rules/:id/transition状态机约束非法流转;预置规则默认 active 直通)。 - 命中闭环:「命中记录」表查看(证据/次数/严重度)→ 点确认(
acknowledge)→ 点处置(resolve);「告警看板」按score = 严重度基础分 × 类型置信度 × 新鲜度衰减排序。
怎么验
- frequency 窗口 = 「评估时刻往前推 window_days」:seed 3 条 incident 中只有 2026-08-06 / 08-15 两条落在 30 天窗内,先按 §5.6 新建一条 9 月 incident(如 09-01「可疑夜间卸货」)凑满 3 条,「高频事件预警」评估即命中。
- 「大额资金异常」对 seed 人员 amount(张远 20 万/赵敏 12 万 > 10 万阈值)命中——正好回应主剧情资金线。
- 告警看板出现带 score 的条目,acknowledge → resolve 状态机走通。
node.created / edge.created,图谱一有新节点/边(如实体合并写图、手工建实体)即实时重新评估——演示时建完节点立刻看告警看板,常有惊喜。5.9 第九幕 · 情报报告:数据驱动生成与导出
目的:把研判成果沉淀成可发布的简报——不是 LLM 写作,而是从真实数据按 sections 汇聚,保证每个数字可溯源。入口:情报报告(/gotham/reports)。
操作
- 从数据生成(
POST /reports/generate):sections 每节指定kind:entity(嵌入实体属性,传 entity_type/entity_id)/incident(时间范围内事件表)/analysis(命中统计)/general(自由段落):{ "title": "玄武集团资金网络专报", "report_type": "analysis", "sections": [ {"kind":"entity","entity_type":"org","entity_id":"graph:org:xuanwu"}, {"kind":"incident","start_time":"2026-07-01T00:00:00Z","end_time":"2026-09-01T00:00:00Z"}, {"kind":"analysis"}, {"kind":"general"} ] } - 生成器读 GraphStore/时间轴/命中记录拼装报告块(heading/table/kv)并落草稿 → 前端编辑润色 → 发布(
POST /reports/:id/publish,draft→published)或归档。 - 导出三格式:
GET /reports/:id/html|pdf|docx——现场点一个 HTML 预览最有说服力。 - 进阶:模板库(
/reports/templates+from-template)、报告复制、嵌入对象(/reports/:id/objects,引用实体/图表并可 refresh 刷新)、版本管理(/reports/:id/versions+ restore)。
怎么验
- 生成的报告内容与图谱/时间轴数据一致(实体属性表、事件时间表、命中统计)。
- 发布后导出 HTML 可直接打开;seed 报告《玄武集团关联网络情报简报》可作对照样例。
5.10 第十幕 · 协作与访问控制(ABAC)
目的:演示「情报系统的秩序」:谁能看什么(ABAC 属性策略)、多人怎么协作(项目/任务/评论)、证据怎么防篡改(审计哈希链)。入口:访问控制(/gotham/access)、项目协作/任务看板/协同动态页。
ABAC 演示(deny 一票否决)
- 看 seed 3 策略:deny(analyst × classification=secret × read, priority 100) > allow(analyst × internal) > allow(admin × *)。
- 用「策略评估」试算(
POST /access-policies/evaluate):subject{"role":"analyst"}+ resource{"classification":"secret"}+ actionread→ 返回 deny(玄武集团节点就是 secret,analyst 打开它会被拒)。 - 换成 subject
{"role":"admin"}→ allow。评估留痕:GET /access-policies/traces可回看每次判定。
协作与实时
- 项目协作(
/gotham/projects):建「玄武专案」项目 → 加成员 → 成员角色调整/移除(PUT|DELETE /collab/projects/:id/members/:user_id,仅 owner)→ 建任务(/collab/projects/:id/tasks,状态机transition推进)→ 评论@同事。 - 协同动态(
/gotham/collab):WebSocket(GET /api/v1/ws,Vite 代理支持 ws)实时推送任务/评论/告警动态;通知可单条/全部已读。
怎么验
- analyst 身份读 secret 节点被拒、admin 放行;trace 列表有记录。
- 审计校验:
GET /api/v1/audit/verify返回哈希链完整——「任何一条情报操作都无法静默篡改」。
5.11 第十一幕 · AI 联动:AIP Copilot 一句话驱动 Gotham
目的:把「AI 行动系统」点题——AIP 的 Automation Copilot 经 call_gotham_api 工具(接口目录 products/aip/automation/catalog/gotham.go,gotham_api.base_url 缺省已指向 18083)直接读写 Gotham。这是 Gotham 与平台其他产品的 AI 纽带。入口:AIP 管理后台 → AI 自动化经营(/admin/automation,需先启动 AIP 后端并配置 LLM Key)。
三段对话演示(照着念,跑偏就补一句纠正)
- 查:「帮我查一下 Gotham 图谱里玄武集团的关系网络」→ Copilot 调
gotham_list_graph_nodes(type=org)+gotham_get_graph_node,把节点属性与关联边汇总成回答。 - 建:「在 Gotham 里新建一个 person 节点,名字叫『神秘出资人』,属性 region=华北、amount=999999」→ Copilot 调
gotham_create_graph_node(执行前会说明影响,确认后放行),回工作台刷新可见。 - 连:「给『神秘出资人』建一条 financed 边指向玄武集团,权重 0.9」→
gotham_create_graph_edge。也可以直接问「最近 Gotham 里有哪些事件」(gotham_list_timeline_events)或「看看玄武集团的邻居」(gotham_graph_neighbors)。
怎么验
- 对话落
automation_sessions/automation_messages;每次工具调用审计AUTOMATION_TOOL_CALL。 - Gotham 侧
GET /graph/nodes出现 Copilot 建的节点;GET /audit/logs(AIP 侧)可回看调用链。 - AIP 工作流
call_api节点也可直调 Gotham 端点(url 填http://localhost:18083/api/v1/…),适合做「定时巡检图谱并通知」的自动化。
username_fallback=true,Copilot 的调用以互信 JWT 身份到达 Gotham(admin 通配权限);若 Copilot 提示 client 未配置(CLIENT_UNAVAILABLE),检查 config 的 gotham_api.base_url(有 env 兜底 GOTHAM_API_BASE_URL)与 Gotham 是否在线。6 分步验收测试单
给演示/回归用,勾选式 PASS/FAIL。标 ⭐ 是最小演示集。
| # | 验收点 | 操作(详见节) | 通过标准 |
|---|---|---|---|
| ⭐1 | Gotham 在线 + 登录 | §4.2/4.3 | /health ok;admin/admin1 登录,工作台可见 seed 图 |
| ⭐2 | seed 数据齐全 | §4.3 | 图 10 节点 8 边;融合实体 5 条;地理 6 要素;时间轴 9 事件;报告 1 份;策略 3 条 |
| ⭐3 | 新数据源创建+运行 | §5.1 | manual 源批次 success;融合实体新增且状态 pending |
| ⭐4 | 实体解析+人工审核 | §5.2 | 作业 completed;同名实体进 review;confirm 后合并写图 |
| ⭐5 | 全局搜索七域并发命中 | §5.4 | /search?q=玄武 命中图谱/实体/事件/地理等域(并发 7 域,空分类不返回) |
| ⭐6 | 模式规则评估命中 | §5.6+5.8 | 先补一条 9 月 incident,30 天窗内 3 条 incident 触发「高频事件预警」;告警 acknowledge/resolve 走通 |
| ⭐7 | 报告生成+导出 | §5.9 | /reports/generate 出稿;发布后 HTML 导出可打开 |
| ⭐8 | ABAC deny 生效 | §5.10 | analyst×secret×read = deny;trace 有记录;audit/verify 通过 |
| 9 | 图分析算法 | §5.4 | admin 调 /analysis/graph/centrality 返回分数列表 |
| 10 | 时空查询 | §5.5/5.6 | heatmap 返回聚合;timeline/aggregate 返回分桶统计 |
| 11 | 多视图联动 | §5.7 | filter 后 /views/sessions/:id/linked 返回联动结果 |
| ⭐12 | Copilot 跨产品联动 | §5.11 | AIP 对话经 call_gotham_api 查图/建节点成功;Gotham 侧可见 |
| 13 | 协作工作流 | §5.10 | 项目建任务→transition 推进;协同动态 WS 收到推送 |
| 14 | 运维备份 | §5.3 | POST /ops/backups 产生备份记录;/ops/health 正常 |
7 3 分钟演示小抄
- 开场 20s:翻到情报工作台,指玄武集团节点与关联边——“多源情报已经洗成一张关系网,机密节点带密级。”
- 40s:多源接入页新建 manual 源(含两条同名『张远’)→ 运行,SSE 进度条走完——“新情报 30 秒入图候选。”
- 70s:实体解析跑作业 → 人工审核页并排对比确认合并——“重复实体机器自动并,拿不准的人拍板。”
- 100s:模式识别「高频事件预警」评估 → 告警看板出现带分值的命中——“系统主动喊:这个团伙最近太频繁了。”
- 130s:报告页从数据生成专报 → 发布 → 导出 HTML——“结论每个数字可溯源,一键成稿。”
- 160s:切 AIP Copilot:“查一下玄武集团的关系”→ Gotham 数据回来;“新建一个可疑人员节点”→ Gotham 里真的多了节点——“AI 不只回答,还能行动。”收工。
8 常见坑与应对(实测经验)
| 症状 | 原因 / 应对 |
|---|---|
| 勾了 enable_ai 但匹配对里没有 ai_reviewed | 先确认后端已配 LLM key(llm.api_keys 的 deepseek/dashscope 都为空时网关保持 nil):未配 key 属预期降级,灰区自动按模糊层分数分流到人工审核,不报错;已配 key 仍无,则看该对是否落在灰区 [0.35,0.85) 之外(AI 只裁决灰区内匹配对)。 |
| 批次一直 running 且进度条不动 | SSE 流未建立:看 Network 中 /gotham-api/v1/ingestion/batches/:id/progress 是否 200 且有 data 帧;401 重新登录(EventSource 不能带 token,前端用 fetch 流解析)。 |
| 保存数据源报「JSON 不合法」 | JSON 模式下手写格式错误,或 manual 源 records 不是数组;切回「表单编辑」重填。 |
| database 源连不上 | 连接器 allow-list 默认仅 MYSQL/SQLSERVER/POSTGRESQL,SQLITE 需显式授权;演示最稳用 manual 源。 |
| 人工审核页为空 | 没有 review 态匹配对:先运行解析作业;或分数全落在自动合并/拒绝带——调高数据重叠度(同名/近音记录)再跑。 |
| 图分析接口 403 | /analysis/* 仅 admin 角色;用 admin 登录演示。 |
| 图数据改乱了 | 删 temp/gotham_graph.json 重启还原图谱 seed;数据库平台表(融合实体/解析作业/告警)不随删,必要时清库重启。 |
| 解析作业 60s 轮询超时 | 候选量大或灰区多:稍后手动刷新看终态,作业仍在后端执行,勿重复点运行。 |
| 「拆分已合并实体」页面找不到 | 后端有 POST /resolution/reviews/:id/split,前端未提供按钮,走 API。 |
| Copilot 提示 CLIENT_UNAVAILABLE / OAG_UNAVAILABLE | Gotham 未在线或 gotham_api.base_url 未指向 18083;先起 Gotham 再对话。LLM 环节跑偏属正常方差,补一句明确要求重试。 |
| 报告生成的内容太「干」 | 生成器只汇聚数据(entity/incident/analysis 分节);观点段落用 general 节手写,或发布前在编辑器润色。 |
| 端口/进程问题 | Gotham 固定 18083;8080/8000 勿用;停进程用 PowerShell Stop-Process;bash 命令带 cd 全路径 && 前缀。 |
9 API 速查手册
全部端点在 Gotham 后端 http://localhost:18083/api/v1(前端代理前缀 /gotham-api/v1;Vite 重写为 /api/v1),均 Bearer <token>(除 /auth/*)。自文档:GET /api/docs / /api/docs/ui。admin = 仅管理员(图分析域)。
| 域 | 端点 | 鉴权 | 用途 |
|---|---|---|---|
| 认证 | POST /auth/register · /auth/login · /auth/refresh · /auth/logout · GET /auth/me | 公开/prot | 注册/登录/刷新轮换/当前用户 |
| 图谱 | GET|POST /graph/nodes · GET|DELETE /graph/nodes/:id · POST /graph/edges · DELETE /graph/edges/:id · GET /graph/stats · GET /graph/nodes/:id/neighbors · POST /graph/nodes/merge · GET /graph/subgraph | prot | 节点/边 CRUD 与查询、实体合并 |
| 图分析 | GET /analysis/graph/expand|path|centrality|community|pagerank|closeness|label-propagation|scc|subgraph|stats · POST /graph/partition · GET /graph/partitions · POST /graph/temporal/subgraph|trend|path | admin | 路径/中心性/社区/分区/时序图分析 |
| 多源接入 | GET|POST /ingestion/sources · GET|PUT|DELETE /ingestion/sources/:id · POST /ingestion/sources/:id/run | prot | 数据源 CRUD 与运行(异步) |
| GET /ingestion/batches · /batches/:id · /batches/:id/progress(SSE) · POST /batches/:id/pause|resume · GET /ingestion/entities | prot | 批次进度/暂停恢复/融合实体 | |
| 实体解析 | POST /resolution/jobs · /jobs/:id/run · GET /resolution/jobs · /jobs/:id · /jobs/:id/stats|clusters|pairs | prot | 解析作业生命周期与结果 |
| GET /resolution/reviews · POST /resolution/reviews/:id/confirm|reject|split | prot | 人工审核合并/拒绝/拆分 | |
| 全局搜索 | GET /search?q=&limit=(limit≤10) | prot | 图谱/实体/事件/地理/报告/任务/项目七域并发 |
| 地理 | GET|POST /map/features · GET|PUT|DELETE /map/features/:id · GET /map/features/bbox|radius · GET /map/aggregate/regions · /map/heatmap · /map/trajectory/:entity_id · GET|POST /map/layers | prot | 要素/空间查询/热力/轨迹/图层 |
| 时间轴 | GET|POST /timeline/events · GET|PUT|DELETE /timeline/events/:id · GET /timeline/events/range · /timeline/aggregate|forecast|periods|compare | prot | 事件 CRUD 与时序分析 |
| 模式识别 | GET|POST /patterns/rules · GET|PUT|DELETE /patterns/rules/:id · POST /patterns/rules/:id/evaluate|test|transition|toggle · POST /patterns/evaluate-all | prot | 规则 CRUD/评估/测试/生命周期 |
| GET /patterns/hits · POST /patterns/hits/:id/acknowledge|resolve · GET /patterns/alerts · POST /patterns/alerts/:id/acknowledge|resolve | prot | 命中与告警闭环 | |
| 报告 | GET|POST /reports · GET|PUT|DELETE /reports/:id · POST /reports/:id/publish|archive · POST /reports/generate · GET /reports/:id/html|pdf|docx | prot | 报告 CRUD/生成/发布/导出 |
| GET /reports/templates · POST /reports/from-template · POST /reports/:id/duplicate · GET|POST /reports/:id/objects · GET /reports/:id/versions · POST /reports/:id/versions/:version/restore | prot | 模板/复制/嵌入对象/版本 | |
| 访问控制 | GET|POST /access-policies · GET|PUT|DELETE /access-policies/:id · POST /access-policies/evaluate · GET /access-policies/traces | prot | ABAC 策略/试算/留痕 |
| 多视图 | GET|POST /views/sessions · GET|PUT|DELETE /views/sessions/:id · POST|DELETE /views/sessions/:id/filter · GET /views/sessions/:id/linked · POST|GET /views/links · DELETE /views/links/:id | prot | 视图会话/过滤/联动 |
| 协作 | GET|POST /collab/projects · GET|PUT|DELETE /collab/projects/:id · POST /collab/projects/:id/archive · GET|POST /collab/projects/:id/members · PUT|DELETE /collab/projects/:id/members/:user_id · GET|POST /collab/projects/:id/tasks · GET|PUT|DELETE /collab/tasks/:id · POST /collab/tasks/:id/transition | prot | 项目/成员角色/任务状态机 |
| GET|POST /collab/projects/:id/comments · DELETE /collab/comments/:id · GET /collab/projects/:id/activities · GET /collab/notifications · POST /collab/notifications/:id/read · /read-all · GET|POST /collab/projects/:id/shared-views | prot | 评论/动态/通知/共享视图 | |
| 运维/审计 | GET /ops/health · GET|POST /ops/backups · GET /ops/backups/:id · GET /audit/verify · GET /event-log · GET /license/info · GET /ws | prot | 健康/备份/审计哈希链/事件总线/WS |
10 相关文档索引
- 产品与路线:
wiki/OVERVIEW.md、wiki/ROADMAP.md;Gotham PRD:wiki/gotham/PRD-v4.md;技术架构:wiki/gotham/TAD/01~14(01 平台总览、02 多源融合、03 实体解析、04 知识图谱、05 图分析、06 地理、07 时间轴、08 多视图、09 模式识别、10 报告、11 协作、12 访问控制、13 边缘离线、14 部署运维) - 模块开发文档:
wiki/docs/gotham/{multi_source_fusion, entity_resolution, knowledge_graph, graph_analysis, search, geospatial_analysis, timeline_analysis, multi_view_linkage, pattern_recognition, intelligence_reporting, collaboration_workflow, access_control_security, ops, edge_offline}.md;API 细则:wiki/docs/gotham/API/*-API.md - 前端页面操作手册(逐页详解,与本方案配套食用最佳):
wiki/frontend-intro-v5/markdown/gotham/(16 页:ingestion、resolution、patterns、reports、access、map、timeline、views、projects、tasks、collab、graph-mapping、graph-partition、temporal、ops、overview;另有 HTML 版) - 姊妹方案:
action/docs/ai-action-demo.html(AIP + Foundry 版最基础 AI 行动系统 Demo) - AIP 跨产品工具源码:
products/aip/automation/api_tools.go(call_gotham_api)、接口目录products/aip/automation/catalog/gotham.go;Gotham 服务装配:products/gotham/server/server.go;演示 seed:products/gotham/server/seed.go、预置规则库products/gotham/pattern/presets.go - 前端源码:
web/src/views/Gotham*.vue、web/src/views/gotham/、路由web/src/router/index.js、API 客户端web/src/api/gothamClient.js(aip_token + 401 自动 refresh)