- Revised mkdocs.yml to reflect the new site name and description, enhancing clarity for users. - Added a changelog.md to document important changes and updates for the project. - Introduced a roadmap.md to outline development plans and progress for future releases. - Expanded index.md with a comprehensive overview of the platform, including core features and installation instructions. - Enhanced concepts documentation with detailed explanations of assistants, engines, and their configurations. - Updated configuration documentation to provide clear guidance on environment setup and service configurations. - Added extra JavaScript for improved user experience in the documentation site.
4.7 KiB
4.7 KiB
Realtime Agent Studio
构建实时交互音视频智能体的开源工作平台
什么是 Realtime Agent Studio?
Realtime Agent Studio (RAS) 是一款以大语言模型为核心,构建实时交互音视频智能体的工作平台。支持管线式的全双工交互引擎和原生多模态模型两种架构,覆盖实时交互智能体的配置、测试、发布、监控全流程。
可以将 RAS 看作 Vapi、Retell、ElevenLabs Agents 的开源替代方案。
核心特性
-
⚡ 低延迟实时引擎
管线式全双工架构,ASR/LLM/TTS 流水线处理,支持智能打断,端到端延迟 < 500ms
-
🧠 多模态模型支持
支持 GPT-4o Realtime、Gemini Live、Step Audio 等原生多模态模型直连
-
🔧 可视化配置
无代码配置助手、提示词、工具调用、知识库关联,所见即所得
-
🔌 开放 API
标准 WebSocket 协议,RESTful 管理接口,支持 Webhook 回调
-
🛡️ 私有化部署
Docker 一键部署,数据完全自主可控,支持本地模型
-
📈 全链路监控
完整会话回放,实时仪表盘,自动化测试与效果评估
系统架构
flowchart LR
subgraph Client["客户端"]
Web[Web 浏览器]
App[移动应用]
SDK[SDK]
end
subgraph RAS["Realtime Agent Studio"]
Engine[实时交互引擎]
API[API 服务]
DB[(数据库)]
end
subgraph Pipeline["管线式引擎"]
ASR[语音识别]
LLM[大语言模型]
TTS[语音合成]
end
subgraph External["外部服务"]
OpenAI[OpenAI]
Azure[Azure]
Local[本地模型]
end
Client -->|WebSocket| Engine
Client -->|REST| API
Engine --> Pipeline
Engine <--> API
API <--> DB
Pipeline --> External
技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 18, TypeScript, Tailwind CSS, Zustand |
| 后端 | FastAPI (Python 3.10+) |
| 引擎 | Python, WebSocket, asyncio |
| 数据库 | SQLite / PostgreSQL |
| 部署 | Docker, Nginx |
快速导航
快速体验
使用 Docker 启动
git clone https://github.com/your-org/AI-VideoAssistant.git
cd AI-VideoAssistant
docker-compose up -d
访问 http://localhost:3000 即可使用控制台。
WebSocket 连接示例
const ws = new WebSocket('ws://localhost:8000/ws?assistant_id=YOUR_ID');
ws.onopen = () => {
ws.send(JSON.stringify({
type: 'session.start',
audio: { encoding: 'pcm_s16le', sample_rate_hz: 16000, channels: 1 }
}));
};
参与贡献
我们欢迎社区贡献!查看 贡献指南 了解如何参与。
- ⭐ Star 项目支持我们
- 🐛 提交 Issue 报告问题
- 🔨 提交 PR 贡献代码
许可证
本项目基于 MIT 许可证 开源。
