openai/openai-realtime-meeting-assistant
GitHub: openai/openai-realtime-meeting-assistant
OpenAI 官方的实时会议助手示例,演示如何通过语音自然语言驱动 WebRTC 多人房间中的共享看板。
Stars: 247 | Forks: 39
# 实时会议助手演示
[](LICENSE)



本演示展示了如何使用 [OpenAI Realtime API](https://platform.openai.com/docs/guides/realtime) 在站会期间通过语音与看板进行交互。多个用户可以加入同一个 WebRTC 房间,并使用自然语音更新共享看板。
它作为一个 Go 应用程序实现,使用了 Pion WebRTC、Gorilla WebSocket、Opus 音频编码/解码以及 [Realtime + WebRTC 集成](https://developers.openai.com/api/docs/guides/realtime-webrtc/)。服务器混合参与者的音频,将其发送到 OpenAI Realtime peer,并使用 [function calling](https://developers.openai.com/api/docs/guides/realtime-conversations/) 来触发看板更新。

## 如何使用
### 运行应用程序
1. **设置 OpenAI API:**
- 如果您是 OpenAI API 的新手,请[注册一个帐户](https://platform.openai.com/signup)。
- 按照[快速入门](https://platform.openai.com/docs/quickstart)获取您的 API 密钥。
2. **克隆存储库:**
git clone https://github.com/openai/openai-realtime-meeting-assistant.git
3. **设置您的 API 密钥:**
在您启动服务器的 shell 中导出 `OPENAI_API_KEY`:
export OPENAI_API_KEY=
服务器直接读取环境变量。不会自动加载 `.env` 文件。
4. **安装依赖项:**
您需要 Go 1.24 或更高版本,以及可通过 `pkg-config` 使用的 Opus 库。
brew install opus pkg-config
5. **运行应用程序:**
go run .
应用程序将在 [http://localhost:3000](http://localhost:3000) 上可用。
要使用其他端口:
go run . -addr :8080
### 开始会话
当服务器启动时,如果配置了 `OPENAI_API_KEY`,它将创建 OpenAI Realtime peer。如果缺少密钥或 Realtime 连接失败,浏览器房间仍会加载,但看板助手将不会监听或更新卡片。
1. 打开 [http://localhost:3000](http://localhost:3000)。
2. 点击 **Join room**。
3. 允许摄像头和麦克风访问。
4. 自然地谈论看板上的工作。混合后的房间音频将发送给 Realtime 助手,看板的更改将广播给房间中的每个人。
5. 在另一个浏览器选项卡或其他设备上打开相同的 URL,作为另一个参与者加入。
6. 点击 **Leave** 将该浏览器从房间断开连接,并停止其本地媒体轨道。
## 演示流程
**请使用耳机或将扬声器音量调低以避免回声。背景音频可能会被会议混音器拾取,并被视为看板更新。**
演示以 Backlog 列中的一些与 WebRTC 相关的看板卡片开始。尝试说:
1. "我开始处理 ICE 重启相关的工单了。"
2. "DTLS 清理工作被一个传输关闭问题阻塞了。"
3. "我们发布了 RTP HEVC 打包器。"
4. "创建一个工单,为 simulcast 转发添加订阅控制。"
5. "给 simulcast 卡片添加带宽标签。"
6. "删除数据包重传缓冲区工单。"
看板应该会就地更新。卡片移动会有动画效果,完成的工作会触发五彩纸屑效果,备注更新可能会显示简短的评论预览。
### 配置的交互
助手被配置为语音控制的看板操作员。它可以:
- 根据明确的请求或具体的站会更新创建工单。
- 在 **Backlog**、**In Progress**、**Blocked** 和 **Done** 之间移动现有工单。
- 添加标签而不替换现有标签。
- 当后续有更多上下文时,更新工单标题或备注。
- 根据请求删除工单。
- 当不需要看板操作时,忽略无意义的词、交接或总结语。
有关模型使用的指令和工具的更多详细信息,请参阅 `kanban.go`。
## 自定义
您可以更新:
- `kanban.go` 中 `initialKanbanBoardCards` 里的初始卡片。
- `kanban.go` 中 `sessionInstructions` 里的 Realtime 指令。
- `kanban.go` 中 `kanbanTools` 里暴露给模型的工具。
- 通过设置 `OPENAI_REALTIME_MODEL` 来更改默认的 Realtime 模型;否则应用程序将使用 `gpt-realtime-2`。
- `index.html` 中的浏览器 UI。
- 通过 `main.go` 中的 `-addr` 标志指定 HTTP 绑定地址。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 LICENSE 文件。
标签:AI助手, EVTX分析, Go, OpenAI, Ruby工具, WebRTC, 会议管理, 内存规避, 实时音频, 日志审计, 看板