Files
AI-VideoAssistant/docs/content/overview/architecture.md
Xin Wang b300b469dc Update documentation for Realtime Agent Studio with enhanced content and structure
- Revised site name and description for clarity and detail.
- Updated navigation structure to better reflect the organization of content.
- Improved changelog entries for better readability and consistency.
- Migrated assistant configuration and prompt guidelines to new documentation paths.
- Enhanced core concepts section to clarify the roles and capabilities of assistants and engines.
- Streamlined workflow documentation to provide clearer guidance on configuration and usage.
2026-03-09 05:38:43 +08:00

7.6 KiB

系统架构

本文档只解释 Realtime Agent Studio (RAS) 的服务边界、数据流、部署形态和关键技术选型,不重复产品定位或上手流程。


整体架构

RAS 采用前后端分离的微服务架构,主要由三个核心服务组成:

flowchart TB
    subgraph Client["客户端"]
        Browser[Web 浏览器]
        Mobile[移动应用]
        ThirdParty[第三方系统]
    end

    subgraph Frontend["前端服务"]
        WebApp[React 管理控制台]
    end

    subgraph Backend["后端服务"]
        API[API 服务<br/>FastAPI]
        Engine[实时交互引擎<br/>WebSocket]
    end

    subgraph Storage["数据存储"]
        DB[(SQLite/PostgreSQL)]
        FileStore[文件存储]
    end

    subgraph External["外部服务"]
        OpenAI[OpenAI]
        SiliconFlow[SiliconFlow]
        DashScope[DashScope]
        LocalModel[本地模型]
    end

    subgraph Tools["工具"]
        Webhook[Webhook]
        ClientTool[客户端工具]
        Builtin[内建工具]
    end

    Browser --> WebApp
    Mobile -->|WebSocket| Engine
    ThirdParty -->|REST API| API
    WebApp -->|REST API| API
    WebApp -->|WebSocket| Engine
    API <--> DB
    API <--> FileStore
    Engine <--> API
    Engine --> External
    Engine --> Tools

核心组件

1. Web 前端 (React)

管理控制台,提供可视化的配置、测试和监控界面。

功能模块 说明
助手管理 创建、配置、测试智能助手
资源库 LLM / ASR / TTS 等模型管理
知识库 RAG 文档上传与管理
历史记录 会话日志查询与回放
仪表盘 实时数据统计
调试控制台 WebSocket 实时测试

2. API 服务 (FastAPI)

REST API 后端,处理资源管理、持久化配置和历史数据等控制面能力。

flowchart LR
    subgraph API["API 服务"]
        Router[路由层]
        Service[业务逻辑层]
        Model[数据模型层]
    end

    Client[客户端] --> Router
    Router --> Service
    Service --> Model
    Model --> DB[(数据库)]

主要职责:

  • 助手 CRUD 操作
  • 模型资源管理
  • 知识库管理
  • 会话记录存储
  • 认证与授权

3. 实时交互引擎 (Engine)

处理实时音视频对话、事件流转、模型调用与工具执行。

flowchart TB
    subgraph Engine["实时交互引擎"]
        WS[WebSocket Handler]
        SM[会话管理器]
        
        subgraph Pipeline["管线式引擎"]
            VAD[声音活动检测 VAD]
            ASR[语音识别 ASR]
            TD[回合检测 TD]
            LLM[大语言模型 LLM]
            TTS[语音合成 TTS]
        end
        
        subgraph Realtime["实时引擎连接"]
            RTOpenAI[OpenAI Realtime]
            RTGemini[Gemini Live]
            RTDoubao[Doubao 实时交互]
        end
        
        subgraph Tools["工具"]
            Webhook[Webhook]
            ClientTool[客户端工具]
            Builtin[内建工具]
        end
    end

    Client[客户端] -->|音频流| WS
    WS --> SM
    SM --> Pipeline
    SM --> Realtime
    Pipeline --> LLM
    LLM --> Tools
    Realtime --> Tools
    Pipeline -->|文本/音频| WS
    Realtime -->|文本/音频| WS

外部服务与工具

类别 说明 可选项
外部模型服务 Pipeline 引擎各环节依赖的云端或本地服务 OpenAI、SiliconFlow、DashScope、本地模型
实时模型连接 Realtime 引擎可直接连接的后端 OpenAI Realtime、Gemini Live、Doubao 实时交互
工具系统 由助手或引擎调用的外部执行能力 Webhook、客户端工具、内建工具

引擎架构

管线式全双工引擎

管线式引擎由 VAD → ASR → TD → LLM → TTS 组成。每个环节可替换,适合需要精细控制、工具扩展和较高可解释性的场景。

sequenceDiagram
    participant C as 客户端
    participant E as 引擎
    participant VAD as VAD
    participant ASR as 语音识别
    participant TD as 回合检测
    participant LLM as 大语言模型
    participant TTS as 语音合成
    participant Tools as 工具

    C->>E: 音频流 (PCM)
    E->>VAD: 检测语音活动
    VAD-->>E: 有效语音段
    E->>ASR: 语音转写
    ASR-->>E: 转写文本
    E->>TD: 判断回合边界
    TD-->>E: 可送入 LLM 的输入
    E->>LLM: 生成回复
    LLM->>Tools: 可选:调用工具
    Tools-->>LLM: 工具结果
    LLM-->>E: 回复文本 (流式)
    E->>TTS: 文本转语音
    TTS-->>E: 音频流
    E->>C: 播放音频

特点:

  • 各环节可单独替换和优化
  • 便于接入知识库、工具、工作流等能力
  • 延迟通常高于端到端实时模型,但可控性更强

Realtime 引擎

Realtime 引擎直接连接端到端实时模型,适合追求更低延迟和更自然多模态交互的场景。

sequenceDiagram
    participant C as 客户端
    participant E as 引擎
    participant RT as Realtime Model

    C->>E: 音频/视频/文本输入
    E->>RT: 实时流输入
    RT-->>E: 流式文本/音频输出
    E->>C: 播放或渲染结果

特点:

  • 交互链路更短,延迟更低
  • 更依赖具体模型供应商的能力边界
  • 适合强调自然对话和多模态体验的入口

数据流

WebSocket 会话流程

sequenceDiagram
    participant C as 客户端
    participant E as 引擎
    participant API as API 服务
    participant DB as 数据库

    C->>E: 连接 ws://.../ws?assistant_id=xxx
    E->>API: 获取助手配置
    API->>DB: 查询助手
    DB-->>API: 助手数据
    API-->>E: 配置信息

    C->>E: session.start
    E-->>C: session.started
    E-->>C: config.resolved

    loop 对话循环
        C->>E: 音频帧 (binary)
        E-->>C: input.speech_started
        E-->>C: transcript.delta
        E-->>C: transcript.final
        E-->>C: assistant.response.delta
        E-->>C: output.audio.start
        E-->>C: 音频帧 (binary)
        E-->>C: output.audio.end
    end

    C->>E: session.stop
    E->>API: 保存会话记录
    API->>DB: 存储
    E-->>C: session.stopped

智能打断流程

sequenceDiagram
    participant C as 客户端
    participant E as 引擎
    participant TTS as TTS 服务

    Note over E: 正在播放 TTS 音频
    E->>C: 音频帧...

    C->>E: 用户说话 (VAD 检测)
    E->>E: 触发打断
    E->>TTS: 停止合成
    E-->>C: output.audio.interrupted

    Note over E: 处理新的用户输入
    E-->>C: input.speech_started

部署形态

开发环境

flowchart LR
    subgraph Local["本地开发"]
        Web[npm run dev<br/>:3000]
        API[uvicorn<br/>:8080]
        Engine[python main.py<br/>:8000]
        DB[(SQLite)]
    end

    Web --> API
    Web --> Engine
    API --> DB
    Engine --> API

技术选型

组件 技术 说明
前端框架 React 18 管理控制台与调试界面
状态管理 Zustand 前端轻量状态管理
UI 样式 Tailwind CSS 快速构建控制台界面
后端框架 FastAPI 管理接口与配置持久化
WebSocket websockets 实时事件与音频流通信
数据库 SQLite / PostgreSQL 配置与历史数据存储

相关文档