工作区(Workspace)
用多工作区把不同项目、客户或研究主题隔离——文件树 + 文档标签页 + 共享 AI 上下文。
Workspace 是什么
Workspace 是 VizChat 里最外层的组织单位。一个 Workspace 包含:
- 一棵文件树(FileTree),存 PDF、图片、书签、画布文档
- 一组画布 / 文档,每一个都是独立的二维工作空间
- 一份共享 AI 上下文——Agent 在同一 Workspace 内可读取其他文档做跨文件推理
你可以按"项目 / 客户 / 研究主题 / 季度"维度建多个 Workspace,彼此隔离——一个 Workspace 的文件和对话不会出现在另一个的 AI 上下文里。
界面布局
登录后进入的默认视图是一个三栏结构:
| 面板 | 内容 |
|---|---|
| 左侧栏 | WorkspaceSwitcher(切工作区)+ FileTree(文件树) |
| 中央区域 | DocumentTabBar + 当前打开的文档(画布 / PDF / 富文本) |
| 右侧栏 | AI 对话面板 |
文件树支持:
- 拖拽上传文件 → 自动用
document_parser解析 - 粘贴 URL → 创建书签预览
- 新建文件夹 → 组织大量文件
- 重命名、移动、删除
DocumentTabBar
中央区域顶部是一排标签页,每个打开的文档对应一个 tab——类似 VS Code / 浏览器的多标签。点击 FileTree 里的文档会在 tab 里打开,openDocumentIds 和 activeDocumentId 由 workspace-slice 的 zustand store 管理。
Tab 支持:
- 右键菜单:关闭、关闭其他、关闭全部
- 拖拽排序(规划中)
- 关闭时状态持久化——下次打开工作区会恢复上次的 tab 列表
各文档类型的渲染器
根据文档的 kind 字段,不同渲染器会被挂载:
dashboard → HostDashboardCanvasFrame(host 内嵌 cross-origin canvas-iframe)
storyboard → HostStoryboardCanvasFrame(host 内嵌 cross-origin canvas-iframe)
rich-text → TextEditor(Tiptap 富文本)
image → ImageViewer
media → MediaPlayer(音视频)
bookmark → BookmarkRenderer(URL 嵌入)
pdf / docx → RichDocumentPreview
多 Workspace 的典型用法
场景 1:咨询公司,按客户分
📁 Workspace: Acme Corp
📁 季度汇报
📄 Q1-dashboard.canvas
📄 Q2-storyboard.canvas
📄 竞品分析.pdf
📁 Workspace: Beta Inc
📄 用户调研访谈纪要.docx
📄 留存模型.canvas
两个客户的 AI 对话互不污染——问 "我们上季度销售" 时 Agent 只看当前 Workspace。
场景 2:研究生,按课程分
📁 Workspace: 机器学习课
📄 论文笔记/
📄 作业画布
📁 Workspace: 毕设
📄 文献综述.canvas
📄 实验数据/
场景 3:个人知识库
一个默认 Workspace 存所有内容——适合轻量用户,不想管理多工作区。
Workspace 共享(规划中)
当前 VizChat 以单人使用为主,Workspace 共享与多人协作在 roadmap 中。单文档的只读链接分享已部分可用,详见 features/workspace/sharing。