基于 OpenAI Realtime API 与 AutoGen 的语音优先 AI 调试助手,将橡皮鸭调试法升级为双向实时语音对话系统。
DUCK-E(Digitally Unified Conversational Knowledge Engine)是一个 AI 驱动的语音助手,核心定位是将经典的"橡皮鸭调试法"升级为可交互的双向对话系统。项目基于 FastAPI 构建 Web 后端,通过 WebSocket 承载实时音频流,前端采用 Jinja2 模板与原生 JavaScript 实现,支持 Docker 一键部署。当前版本为 0.2.89,采用 MIT 许可证。
核心能力#
语音交互:基于 WebRTC 与 WebSocket 实现低延迟实时语音对话,支持自然打断,浏览器端点击麦克风即可开始。
多模型协同:底层调用 OpenAI Realtime API 的 gpt-realtime 模型处理语音流,同时支持 gpt-5-mini(快速通用)与 gpt-5(深度推理)按需切换。多 Agent 编排基于微软 AutoGen 框架的 RealtimeAgent 实现。
工具调用:内置实时天气查询(WeatherAPI)、3 天天气预报和联网搜索,并可通过 @realtime_agent.register_realtime_function(...) 装饰器扩展自定义工具。整个调试会话内维持对话上下文,仅需提供 OpenAI API Key 即可自动生成模型配置。
安全与运维#
v0.2.0 起内置速率限制(WebSocket 默认 5 次/分钟)、成本保护(单会话 $5 上限、$100 熔断器)、针对 SQL 注入/XSS/SSRF 等 10+ 攻击向量的输入校验、OWASP 安全头、CORS 保护及可选 JWT 认证。测试覆盖率达 92%,包含 180+ 安全测试用例,并通过 Prometheus 暴露运行指标(/metrics 端点)。
架构概览#
Web Browser (麦克风) → WebSocket (音频流) → FastAPI Backend
└─ RealtimeAgent (AutoGen Framework)
└─ Registered Functions (weather / web_search)
└─ OpenAI Realtime API (gpt-realtime)
部署方式#
Docker(推荐):
docker pull ghcr.io/jedarden/duck-e:latest
docker run -d -p 8000:8000 \
-e OPENAI_API_KEY=your_key \
-e WEATHER_API_KEY=your_key \
ghcr.io/jedarden/duck-e:latest
本地安装:Python 3.9+ 环境,pip install -r requirements.txt 后运行 uvicorn app.main:app --reload --host 0.0.0.0 --port 8000。
典型场景#
- 开发者口述 bug 现象并获得反问引导
- 代码概念与架构设计讨论
- 实时文档与 API 语法检索
- 团队协作中的即时补充及新人 onboarding
- 独立开发者的头脑风暴伙伴
待确认事项#
README 中提及的 gpt-5、gpt-5-mini、gpt-realtime 模型名称截至调研时间尚未被 OpenAI 官方公开发布确认,可能为占位符或未来规划,直接影响项目的实际可运行性。作者 jedarden 的背景信息未在仓库中提供,未见公开在线演示地址。