Files
llm-wiki/docs/spark/2026-06-22-graph-community-node-visual-design.md
T
2026-07-12 21:26:08 +08:00

10 KiB

社区节点轻量关系地图设计

日期:2026-06-22 状态:待用户复核 当前分支:codex/graph-community-node-visual-design 视觉稿:designs/graph-community-node-map/Community Node Map Prototype.html

目的

这份设计用于优化 llm-wiki 图谱里“进入社区后”的节点呈现。

当前社区内节点更像一组大卡片,卡片体积偏大、节点挨得近,社区背景色块又强化了被框住的感觉。用户进入社区后,本来想看清“这个社区内部有哪些知识点、谁和谁有关”,却容易先看到一片拥挤的卡片。

本次目标不是重做整个图谱,也不是重新定义社区、边或右侧抽屉,而是把社区内部的视觉层级改成一张轻量关系地图:

社区里默认看地图,悬停临时看关系,点击固定看内容。

强范围边界

本次只聚焦于图谱里的社区节点设计,具体是:用户已经进入某个社区后,社区内部节点、线、标签、社区底色,以及节点悬停/点击后的关系聚焦表现。

本次不改:

  • 全局图谱的默认呈现、路由、性能策略和 Sigma 全局规则。
  • 对话、会话列表、知识库创建、消化、检索、导入导出等非图谱功能。
  • 社区入口规则,例如从全局如何选择社区、如何进入社区。
  • 右侧面板的信息结构和内容层级。
  • 现有关系类型、置信度、权重这些图例概念的含义。
  • 节点真实数据、知识库文件结构和图谱构建流程。

允许的联动只有两类:

  • 用户点击社区内节点时,沿用现有机制更新右侧面板里的节点内容。
  • 为了让社区内线条表现正确,可以读取并复用现有边字段:关系类型、置信度、权重、节点类型和节点连接关系。

任何超出以上范围的体验调整,都应另开设计,不混进本次实现。

已确认现状

代码和图例里已经存在三套边信息表达,本次必须继续沿用:

  • 关系类型:实现 / 依赖 / 衍生 / 对比 / 矛盾,用线的颜色表达。
  • 置信度:原文 / 推断 / 待确认,用线的虚实表达。
  • 联系强弱:用线的粗细和透明度表达。

当前实现已有“选中节点后相关边优先”的基础,但还没有把社区内节点明确分成一度、二度和无关三层,也没有把悬停和点击统一成同一套聚焦逻辑。

因此本次设计不推翻原来的边图例,而是在社区视图里补上更清楚的关系距离规则。

方案选择

对比过三种方向:

  1. 轻量关系地图:节点像地图坐标点,默认留白多、线很细;聚焦时一度关系清晰,二度关系很淡。
  2. 聚焦星图:点中节点后把它变成中心,周围关系强烈围绕它呈现。
  3. 社区知识岛:强化社区边界感,让节点像散落在一个岛上的知识点。

采用方案 1:轻量关系地图。

原因:

  • 它最能解决“卡片大、挤、不美观”的问题。
  • 它保留当前视觉稿里已经被认可的空间感。
  • 它不会把社区背景变成新的视觉负担。
  • 它能自然承接现有边图例,而不是发明一套新说明。

默认视觉状态

进入社区后,画面不再铺满节点卡片,而是一张轻量关系地图。

节点像散开的坐标点,有明显留白和空间感。普通节点保持小点形态,重点节点才默认显示名字。重点节点包括社区核心节点、结构上更重要的节点、搜索命中、已固定节点,以及当前选中节点。

社区底色保留,但只作为很淡的氛围提示。它说明“你正在这个社区里”,不作为硬边界,也不限制节点位置。节点可以在视觉上更自由地分布,避免被一整块背景色压住。

线在默认状态下很细、很安静,只提示社区内部存在关系,不抢节点层级。默认状态不强调所有边的完整解读,只有用户悬停或点击节点时,关系才进入可读状态。

节点颜色继续区分节点性质,例如主题、实体、来源、对比或综合类节点。颜色必须克制,不和边的颜色抢语义。

标签策略

默认只显示重点节点标签。

普通节点默认不显示名字,只保留可见点位。鼠标悬停或节点被聚焦时,才显示对应标签。这样社区第一眼是地图,而不是文字墙。

标签显示必须稳定:

  • 悬停时标签出现,但节点本身不能因为标签出现而移位。
  • 标签不应撑大节点的命中区域。
  • 标签应优先避开核心节点和高亮线,不让关键关系被遮住。
  • 标签过长时截断,不把画面横向撑开。

悬停与点击

悬停和点击使用同一套关系聚焦逻辑。

区别只在于:

  • 悬停是临时聚焦,鼠标移走后恢复。
  • 点击是固定聚焦,会保持住,并同步更新右侧面板。

当没有固定选中节点时,鼠标放到某个节点上,地图立即进入临时聚焦:

  • 当前节点最清楚。
  • 一度相关节点清楚显示。
  • 当前节点到一度节点之间的线清楚显示。
  • 二度相关节点保留很淡的背景感。
  • 无关节点和无关线退到几乎不可见。
  • 鼠标移走后恢复默认地图。

点击某个节点后:

  • 使用同样的聚焦视觉。
  • 该聚焦状态固定。
  • 右侧面板显示该节点内容。
  • 点击另一个节点时切换固定聚焦。
  • 点击社区画布空白处时,取消固定聚焦,回到默认地图。

当已经有固定选中节点时,再悬停其他节点:

  • 临时展示悬停节点的关系。
  • 鼠标移走后回到已固定节点的聚焦状态。
  • 不因为悬停改写右侧面板内容。

关系距离规则

以当前被悬停或点击的节点作为焦点节点。

一度相关节点:

  • 与焦点节点直接相连。
  • 直接连线清晰可见。
  • 节点标签优先显示。
  • 节点透明度和点尺寸略高于默认。

二度相关节点:

  • 与一度节点相连,但不直接连接焦点节点。
  • 只保留很淡的背景存在感。
  • 默认不显示标签。
  • 二度连线通常不完整呈现,只作为极淡的延伸提示。

无关节点:

  • 与焦点节点没有一度或二度关系。
  • 退到几乎不可见,但不制造画面跳变。
  • 默认不显示标签。
  • 无关节点之间的线隐藏或接近不可见。

这里的“一度 / 二度”按现有图谱边关系计算,不引入新的语义数据。

线条表达

线条继续遵守现有图例:

  • 颜色表示关系类型。
  • 虚实表示置信度。
  • 粗细表示联系强弱。

聚焦状态下,一度直接连线应最清楚。它既要保留颜色和虚实语义,也要通过粗细让强关系更容易被看见。

二度关系可以保留轻微线索,但不能抢一度关系。无关线默认隐藏或极淡。

默认状态下,社区内部所有线都应更克制,避免整张社区图变成线团。只有悬停或点击后,用户才需要读具体关系。

右侧面板

地图只负责表达关系,右侧面板负责承接内容。

社区地图里的节点不再展开大卡片,也不显示正文摘要。节点旁边最多显示名字。正文、摘要、路径、相关页面、节点详情继续放在右侧面板里。

点击节点会更新右侧面板,这是允许的现有联动。悬停节点只做地图内临时关系预览,不更新右侧面板。

社区底色

社区底色应变得更轻。

它的作用是提示当前社区,而不是圈住节点。视觉上更像一层淡淡的纸面水洗背景,而不是一块实心区域。

当节点进入聚焦状态时,社区底色应进一步退后,让当前节点和一度关系成为主视觉。

状态优先级

同一时间最多有一个固定焦点节点。

视觉优先级从高到低:

  1. 当前悬停节点。
  2. 当前固定选中节点。
  3. 一度相关节点和直接连线。
  4. 二度相关节点。
  5. 默认重点节点。
  6. 普通节点。
  7. 无关节点和无关线。

如果存在固定选中节点,悬停其他节点时可以临时盖过固定焦点;悬停结束后恢复固定焦点。

空状态和边界情况

社区没有边:

  • 节点仍按轻量地图显示。
  • 默认只显示重点标签。
  • 悬停节点时只强调该节点本身,并提示暂无直接关系。

节点只有一度、没有二度:

  • 一度关系正常高亮。
  • 不强行制造二度背景。

节点连接过多:

  • 一度节点可以全部参与高亮,但标签仍按重要性控制。
  • 线条可按权重区分强弱,避免全部同等抢眼。

关系类型或置信度缺失:

  • 关系类型缺失时走默认关系色。
  • 置信度缺失时走默认实线。
  • 不因为缺字段破坏社区地图整体可读性。

体验验收

实现完成后,进入社区的第一眼必须更像关系地图,不像卡片墙。

必须满足:

  • 默认状态有留白,有空间感,节点不挤。
  • 普通节点是轻量点位,不是大卡片。
  • 只有重点节点默认显示标签。
  • 社区底色很淡,不压住节点。
  • 默认线条细、轻,不形成线团。
  • 悬停节点时,关系立刻变清楚。
  • 点击节点时,关系固定,并更新右侧面板。
  • 鼠标移走后,悬停关系自动收回。
  • 点击空白处后,固定关系取消。
  • 一度关系清楚,二度关系很淡,无关内容退后。
  • 线的颜色、虚实、粗细与图例一致。
  • 标签出现和消失时,节点不移位。
  • 不改变全局图谱、对话、知识库流程或其他非社区图谱功能。

验证建议

实现时至少验证以下场景:

  1. 进入一个有 10 个以上节点、关系较密的社区,确认默认状态不是卡片墙。
  2. 悬停一个核心节点,确认一度关系清晰、二度很淡、无关线隐藏或极淡。
  3. 鼠标移走,确认画面恢复默认状态。
  4. 点击节点,确认聚焦固定并更新右侧面板。
  5. 固定节点后悬停另一个节点,确认只是临时预览,移走后回到固定节点。
  6. 点击空白处,确认取消固定聚焦。
  7. 检查图例里的关系类型和置信度,与画布线条颜色和虚实一致。
  8. 检查长标签、密集节点、无边节点,确认节点不会因为标签出现而移位。
  9. 回到全局图谱,确认本次改动没有改变全局图谱行为。

后续不在本次做

以下内容不进入本次社区节点视觉优化:

  • 全局图谱重新设计。
  • 移动端专项布局。
  • 新增关系类型或置信度体系。
  • 新的右侧面板结构。
  • 自动社区总结。
  • 图谱数据构建流程调整。
  • 新增完整键盘漫游。
  • 新增 Agent 提问入口。