Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[bot] OpenAI Live API (`client.live`) not instrumented

未关闭
#224 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
ruby

调研方向

Start with lib/braintrust/contrib/openai/patcher.rb and the existing files under lib/braintrust/contrib/openai/instrumentation/, especially the Chat and Responses implementations. Compare their instrumentation approach with the Live API create and sessions.fork entry points described here, then check lib/braintrust/contrib.rb for registration. Done means the actionable Live session calls are instrumented with the listed input, metadata, and safe output fields, with session-stream handling scoped as appropriate.

由索引模型根据 Issue 内容生成。

描述

ruby

Summary

The official openai Ruby gem added a top-level Live API (client.live) in v0.89.0 (2026-09-10, "api: Add Live API"). This is OpenAI's GPT-Live real-time, full-duplex voice-conversation execution surface (spoken input/output, with server-side or client-delegated backend reasoning) — a distinct generative execution path from Chat Completions, Responses, and the already-tracked Realtime API (#206). No Patcher in this repo wraps any part of it.

What is missing

Per the official Ruby API reference (developers.openai.com/api/reference/ruby/resources/live):

  • client.live.create(session:, transport:, **kwargs) → POST /live/sessions — creates a Live session (returns session, transport, e.g. an SDP answer for WebRTC). This is the generation-session-initiating call.
  • client.live.sessions.fork(session_id, **kwargs) → POST /live/sessions/{session_id}/fork — forks a live session into a new one, returning a new session/transport pair.
  • client.live.sessions.accept/hangup/refer/reject(session_id, **kwargs) → SIP-style session lifecycle control.
  • client.live.sessions.download_recording(session_id) → retrieves the session's recorded audio.
  • Session interaction itself happens over ClientEvent/ServerEvent streams (Primary/Sideband/Fork WebSocket connections) once a session is created — analogous to the streaming event model already instrumented for Chat Completions/Responses in this repo, but for a new resource family.
What a span should capture
  • Input: session config (model, audio, client delegation settings) passed to live.create/sessions.fork
  • Metadata: provider (openai), session id, model, expires_at, transport type
  • Output: resolved session/transport response (excluding any secret/credential values)
  • Given the live/bidirectional nature of the session, live.create (and sessions.fork) are the actionable, well-defined instrumentation points — matching the pattern already proposed for other session-initiating calls in this repo (e.g. #206 for the Realtime API, #223 for the Agents API)

Braintrust docs status

not_found — Neither https://www.braintrust.dev/docs/integrations/ai-providers/openai nor https://www.braintrust.dev/docs/integrations/sdk-integrations mention "Live API," "GPT-Live," or client.live for any language, including Ruby.

Upstream sources

Braintrust docs sources checked

Local repo files inspected

  • lib/braintrust/contrib/openai/patcher.rb — defines ChatPatcher, ResponsesPatcher, ModerationsPatcher; no live/session patcher
  • lib/braintrust/contrib/openai/instrumentation/ — contains chat.rb, responses.rb, moderations.rb, common.rb; no live.rb
  • lib/braintrust/contrib.rb — registers only the three existing OpenAI patchers
  • Grep for live, client.live, GPT-Live across lib/braintrust/ returns zero relevant matches
主要语言
Ruby
星标
9
派生
11
平均合并
2 天 3 小时
30 天内合并 PR
5

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

braintrustdata/braintrust-sdk-ruby 的其他 Issue

查看 braintrustdata/braintrust-sdk-ruby 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。