跳转至

前端

前端是 frontend/ 下的 React + Vite 应用。它不是一个很薄的聊天框,而是管理和交互 UI。用户可以在同一个应用中创建世界、管理模拟、配置供应商、编辑 prompt、检查媒体,并与运行中的模拟聊天。

路由

React router 定义了这些主要路由:

Route Page Purpose
/ SimulationPage 模拟列表和入口。
/simulations/:simulationId SimulationChatPage 主要模拟交互视图、详情、配置 tabs、媒体生成、prompt overrides 和聊天。
/worlds WorldPage 世界列表和世界创建/编辑工作流。
/authors AuthorsPage 作者记录。
/media MediaPage 上传/生成媒体管理。
/prompts PromptsPage Prompt media 创建和编辑。
/connections/configurations ConfigurationsPage 供应商连接和可复用模型配置。
/worlds/import/sillytavern SillyTavernImportPage SillyTavern 角色卡导入:解析、审阅/编辑、流式提取,并提交为一个新世界。渲染时不使用共享的 AppLayout 外壳。

API 形状

前端 API modules 与后端资源保持镜像关系。它们通过 JSON 请求和媒体端点调用 FastAPI 后端。配置页面使用和模拟编辑器相同的 API surface,因此可复用配置以及 per-world/per-simulation 分配能保持一致。

模拟视图

SimulationChatPage 组合了多项职责:

  • 显示 turn presentation blocks,而不是原始模型输出;
  • 向 generation API 发送用户输入;
  • 跟踪生成状态和运行输出;
  • 暴露模拟 tabs,用于配置分配、图像生成、TTS 生成、prompt overrides、可观测性和实体详情;
  • 提供重新生成某个 turn(「swipe」)的入口,以及浏览、回退到其归档备份版本;
  • 在配置为手动模式时触发媒体生成;
  • 在可用时显示生成的场景、角色、地点、物品和语音媒体。

重要的前端边界是:它显示已提交回合和呈现记录。它不决定拟议动作是否真实、有效或已提交。这些决定留在后端生成 graph 中。

配置编辑器

前端有两个层级的配置 UI:

  • Configurations 下的全局可复用配置;
  • 创建、编辑、详情工作流里的 world 或 simulation assignment matrices。

这与后端模型一致:供应商连接和模型配置是可复用节点;world 和 simulation 记录按组件链接到这些配置。