- Included a new JavaScript file for Mermaid configuration to ensure consistent diagram sizing across documentation. - Enhanced architecture documentation to reflect the updated pipeline engine structure, including VAD, ASR, TD, LLM, and TTS components. - Updated various sections to clarify the integration of external services and tools within the architecture. - Improved styling for Mermaid diagrams to enhance visual consistency and usability.
6.7 KiB
6.7 KiB
核心概念
本章节介绍 Realtime Agent Studio 中的核心概念,帮助你更好地理解和使用平台。
概念总览
flowchart TB
subgraph Platform["RAS 平台"]
Assistant[助手 Assistant]
subgraph Resources["资源库"]
LLM[LLM 模型]
ASR[ASR 模型]
TTS[TTS 声音]
KB[知识库]
end
subgraph Engine["交互引擎"]
Pipeline[管线式引擎]
Multimodal[多模态引擎]
end
Session[会话 Session]
end
Assistant --> LLM
Assistant --> ASR
Assistant --> TTS
Assistant --> KB
Assistant --> Engine
Engine --> Session
助手 (Assistant)
助手是 RAS 的核心实体,代表一个可对话的 AI 智能体。
助手配置
每个助手包含以下配置:
| 配置项 | 说明 |
|---|---|
| 名称 | 助手的显示名称 |
| 系统提示词 | 定义助手角色、行为、限制 |
| LLM 模型 | 选择用于生成回复的大语言模型 |
| ASR 模型 | 选择用于语音识别的模型 |
| TTS 声音 | 选择用于语音合成的音色 |
| 工具 | 配置助手可调用的外部工具 |
| 知识库 | 关联的知识库(用于 RAG) |
助手生命周期
stateDiagram-v2
[*] --> Draft: 创建
Draft --> Draft: 编辑配置
Draft --> Published: 发布
Published --> Draft: 取消发布
Published --> Published: 更新配置
Published --> [*]: 删除
会话 (Session)
会话代表一次完整的对话交互,从用户连接到断开。
会话状态
stateDiagram-v2
[*] --> Connecting: WebSocket 连接
Connecting --> Started: session.started
Started --> Active: 对话中
Active --> Active: 多轮对话
Active --> Stopped: session.stop
Stopped --> [*]: 连接关闭
会话数据
每个会话记录包含:
- 基本信息 - ID、时长、时间戳
- 音频数据 - 用户和助手的音频记录
- 转写文本 - ASR 识别结果
- LLM 交互 - 输入输出和工具调用
- 元数据 - 渠道、来源、自定义变量
管线式引擎 vs 多模态引擎
RAS 支持两种引擎架构,适用于不同场景。
管线式引擎 (Pipeline)
将语音交互拆分为多个环节,包含 VAD(声音活动检测)、ASR(语音识别)、TD(回合检测)、LLM(大语言模型)、TTS(语音合成)。外部服务可选 OpenAI、SiliconFlow、DashScope、本地模型。LLM 与实时交互引擎均可连接工具(Webhook、客户端工具、内建工具)。
用户语音 → [VAD] → [ASR] → [TD] → 文本 → [LLM] → 回复 → [TTS] → 助手语音
优点:
- 灵活选择各环节供应商(OpenAI、SiliconFlow、DashScope、本地模型)
- 可独立优化 VAD、ASR、TD、LLM、TTS 每个环节
- 成本可控
缺点:
- 延迟较高(累加延迟)
- 需要协调多个服务
实时交互引擎与多模态 (Realtime / Multimodal)
实时交互引擎可连接 OpenAI Realtime、Gemini Live、Doubao 实时交互引擎 等,同样可连接工具。使用端到端模型直接处理:
用户语音 → [Realtime Model] → 助手语音
优点:
- 更低延迟
- 更自然的语音
- 架构简单
缺点:
- 依赖特定供应商
- 成本较高
- 可定制性有限
选择建议
| 场景 | 推荐引擎 |
|---|---|
| 成本敏感 | 管线式 |
| 延迟敏感 | 多模态 |
| 需要特定 ASR/TTS | 管线式 |
| 追求最自然体验 | 多模态 |
智能打断 (Barge-in)
智能打断是指用户在助手说话时可以随时插话,系统能够:
- 检测用户开始说话
- 立即停止 TTS 播放
- 处理用户新的输入
打断检测方式
| 方式 | 说明 |
|---|---|
| VAD | Voice Activity Detection,检测到声音活动即打断 |
| 语义 | 基于语音内容判断是否有意义的打断 |
| 混合 | VAD + 语义结合,减少误触发 |
打断流程
sequenceDiagram
participant User as 用户
participant Engine as 引擎
participant TTS as TTS
Note over Engine,TTS: 助手正在播放回复
Engine->>User: 音频流...
User->>Engine: 开始说话 (VAD 触发)
Engine->>Engine: 打断判断
Engine->>TTS: 停止合成
Engine->>User: output.audio.interrupted
Note over Engine: 处理新输入
工具调用 (Tool Calling)
助手可以通过工具扩展能力,访问外部系统或执行特定操作。
工具类型
管线式引擎中的 LLM 与实时交互引擎均可连接工具,包括:
| 类型 | 说明 | 示例 |
|---|---|---|
| Webhook | 调用外部 HTTP API | 查询订单、预约日程 |
| 客户端工具 | 由客户端执行的操作 | 打开页面、显示表单 |
| 内建工具 | 平台提供的工具 | 代码执行、计算器 |
工具调用流程
sequenceDiagram
participant User as 用户
participant LLM as LLM
participant Tool as 工具
User->>LLM: "帮我查一下订单状态"
LLM->>LLM: 决定调用工具
LLM->>Tool: get_order_status(order_id)
Tool-->>LLM: {status: "已发货"}
LLM->>User: "您的订单已发货"
知识库 (Knowledge Base)
知识库让助手能够基于私有文档回答问题,实现 RAG(检索增强生成)。
工作原理
flowchart LR
subgraph Indexing["索引阶段"]
Doc[文档] --> Chunk[分块]
Chunk --> Embed[向量化]
Embed --> Store[(向量数据库)]
end
subgraph Query["查询阶段"]
Q[用户问题] --> QEmbed[问题向量化]
QEmbed --> Search[相似度搜索]
Store --> Search
Search --> Context[相关上下文]
Context --> LLM[LLM 生成回答]
end
支持的文档格式
- Word (.docx)
- Markdown
- 纯文本
- HTML
动态变量
动态变量允许在运行时向助手注入上下文信息。
使用方式
在系统提示词中使用 {{variable}} 占位符:
你是{{company_name}}的客服助手。
当前用户是{{customer_name}},会员等级为{{tier}}。
连接时通过 dynamicVariables 传入:
{
"type": "session.start",
"metadata": {
"dynamicVariables": {
"company_name": "ABC 公司",
"customer_name": "张三",
"tier": "VIP"
}
}
}
下一步
- 快速开始 - 创建第一个助手
- 助手配置 - 详细配置说明
- WebSocket 协议 - API 接口详情