[bot] OpenAI Videos API (`videos.create()` / Sora) not instrumented
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 58/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- node.js, typescript
調査の方向性
まず、js/src/wrappers/oai.ts、js/src/auto-instrumentations/configs/openai.ts、js/src/instrumentation/plugins/openai-channels.ts、js/src/instrumentation/plugins/openai-plugin.ts、js/src/vendor-sdk-types/openai.ts を既存の provider instrumentation と比較します。create、polling、download のライフサイクルをどのように表現するかを決定し、その後 e2e/scenarios/openai-instrumentation/ にカバレッジを追加します。videos.create が合意したライフサイクルで instrumented になり、e2e シナリオが結果として生成される spans を検証すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
The OpenAI Node SDK (openai npm package, >=6.2.0) exposes a GA client.videos.create() API for text-to-video and image-to-video generation using the Sora 2 / Sora 2 Pro models. This is a distinct generative execution surface — separate from chat completions, the Responses API, and images.generate() — and is completely uninstrumented in this repo. Users generating video with Sora through the JS SDK get no Braintrust spans.
This repo already treats the analogous gaps for other providers/modalities as in-scope and trackable:
- OpenAI
images.generate()/images.edit()— open gap braintrustdata/braintrust-sdk-javascript#1628 - Google GenAI
models.generateVideos()(Veo) — open gaps braintrustdata/braintrust-sdk-javascript#2030 / braintrustdata/braintrust-sdk-javascript#2176
The OpenAI videos.* resource is the same category of gap (a dedicated generative media API, distinct from the text/chat path) but for OpenAI specifically, and it is not covered by any of those issues or any other open issue in this repo.
What instrumentation is missing
- Wrapper (
js/src/wrappers/oai.ts): No proxy for thevideosresource. Onlychat.completions,embeddings,moderations, andresponsesare wrapped (confirmed by reading the file — novideoreferences at all). - Auto-instrumentation config (
js/src/auto-instrumentations/configs/openai.ts): No config entry forvideos.create(orvideos.remix/videos.retrieve). The file only instrumentschat.completions.create,embeddings.create,chat.completions.parse,moderations.create,chat.completions.stream, and theresponses.*family. - Channels (
js/src/instrumentation/plugins/openai-channels.ts): No channel definitions for video generation (confirmed — novideoreferences). - Plugin (
js/src/instrumentation/plugins/openai-plugin.ts): No handler for video generation calls. - Vendor types (
js/src/vendor-sdk-types/openai.ts): NoVideos/VideoCreateParamstypes. - e2e: No test scenario under
e2e/scenarios/openai-instrumentation/exercises video generation.
Upstream reference
- OpenAI Videos API reference: https://developers.openai.com/api/reference/resources/videos/methods/create
- Video generation guide: https://developers.openai.com/api/docs/guides/video-generation
client.videos.create({ model, prompt, size, seconds, input_reference })—modelacceptssora-2/sora-2-pro; returns a video job object (object: "video", withid,status,created_at,model) that is polled viavideos.retrieve(id)until the render completes, then downloaded viavideos.downloadContent(id).- This is a stable, GA, production API available in
openaiNode SDK>=6.2.0— well within this repo's already-supportedopenaiversion range (>=4.0.0, and the repo's own dev-pin is[email protected], which already includes this resource). - Similar to
models.generateVideos()in Google GenAI, this uses a long-running-operation/polling pattern rather than a single synchronous response — instrumentation will likely need to decide whether to span just the initialcreate()call or track the full poll-to-completion lifecycle (the existing google-genai-generate-videos issues note the same design question).
Braintrust docs status
not_found — Fetched https://www.braintrust.dev/docs/integrations/ai-providers/openai directly: it documents chat completions, embeddings (via gateway), audio transcriptions, images, structured outputs, and function calling as traced via wrapOpenAI, but does not mention videos.create, Sora, or any video generation capability anywhere.
Local repo files inspected
js/src/wrappers/oai.ts— novideoreferencesjs/src/auto-instrumentations/configs/openai.ts— full method list confirmed (chat completions, embeddings, parse, moderations, stream, responses create/stream/parse/compact); no videos entryjs/src/instrumentation/plugins/openai-channels.ts— novideoreferencesjs/src/vendor-sdk-types/openai.ts— novideo/Videoreferencese2e/scenarios/openai-instrumentation/— no video generation scenario- Full repo grep for
video/Videounderjs/src/— only unrelated matches inattachment-utils.ts,google-genai.tsvendor types, andstrands-agent-sdkfiles; none reference OpenAI's videos resource
- 主要言語
- TypeScript
- スター
- 29
- フォーク
- 16
- 平均マージ
- 1日 20時間
- マージ済み PR(30日)
- 70
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
braintrustdata/braintrust-sdk-javascript のほかの issue
-
typescript
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
braintrustdata/braintrust-sdk-javascript#2578 ·
メンテナーはふだん 1 日以内に返信
-
typescript
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
braintrustdata/braintrust-sdk-javascript#2577 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
braintrustdata/braintrust-sdk-javascript#2527 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 65/100
braintrustdata/braintrust-sdk-javascript#2526 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 56/100
braintrustdata/braintrust-sdk-javascript#2482 ·
メンテナーはふだん 1 日以内に返信
braintrustdata/braintrust-sdk-javascript の issue をすべて見る
似ている issue
-
submodule-pointer-regression
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
smith-horn/skillsmith#3061 ·
メンテナーはふだん 1 日以内に返信
-
area: ops type: test
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
accensa/x402-facilitator-stellar#559 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
cosimochellini/one-piece-zero-spoiler#551 ·
メンテナーはふだん 1 日以内に返信
-
getWatched() omits __proto__ directories when cwd is set対応中かも @maxazure が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
-
area:web enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信