267 lines
10 KiB
Markdown
267 lines
10 KiB
Markdown
# 社区节点轻量关系地图设计
|
|
|
|
日期: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 提问入口。
|