[BOT ISSUE] OpenAI Images API not instrumented (openai + ruby-openai gems)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- ruby
調査の方向性
lib/braintrust/contrib/openai/patcher.rb と lib/braintrust/contrib/ruby_openai/patcher.rb にある既存の patcher から始め、次にそれらの instrumentation ファイルを ModerationsPatcher パターンと比較します。不足している作業は、両方の gem で一覧にある generate、edit、variation メソッドに画像 instrumentation を追加することに限定されます。完了条件は、span が要求された prompt、metadata、画像 URL または metadata の出力、revised_prompt を取得し、バイナリ画像データを記録しないことです。
索引モデルが issue の本文から書いたものです。
説明
Summary
The OpenAI Images API (client.images.generate) is available in both the official openai gem and the ruby-openai gem, but is not instrumented by this SDK. Image generation (DALL-E, gpt-image-1) is a stable generative AI API that creates images from text prompts. This is the same class of gap as the already-filed audio API issue (#146), and is distinct from the RubyLLM paint() gap (#136) which covers a different library.
What is missing
Official openai gem
Three resource methods under OpenAI::Resources::Images:
client.images.generate(...)— Text-to-image generation using DALL-E 3 or gpt-image-1. Accepts prompt, model, size, quality, style, n, response_format, background, output_format, output_compression, and more. Returns typedOpenAI::Models::ImagesResponse.client.images.edit(...)— Image editing with text prompts. Accepts image file + prompt + mask.client.images.create_variation(...)— Image variations from an existing image.
The official SDK also has streaming variants (generate_stream_raw, edit_stream_raw).
ruby-openai gem
Equivalent methods with hash-based parameters:
client.images.generate(parameters: { prompt:, model:, size:, quality:, ... })client.images.edit(parameters: { ... })client.images.variations(parameters: { ... })
Documented in the README with DALL-E 2 and DALL-E 3 examples.
Expected instrumentation
A new ImagesPatcher (following the existing ModerationsPatcher pattern) for each gem:
Image generation spans should capture:
- Input: the text prompt
- Metadata: model (e.g.,
dall-e-3,gpt-image-1), size, quality, style, n, response_format, provider, endpoint - Output: image URL(s) or metadata (not the binary/base64 image data itself)
- Metrics: revised_prompt (when the model modifies the original prompt)
Braintrust docs status
not_found — Braintrust docs at https://www.braintrust.dev/docs/guides/tracing and the integrations pages do not mention image generation instrumentation. All examples focus on chat completions, embeddings, and audio.
Upstream sources
- Official OpenAI Ruby SDK: https://github.com/openai/openai-ruby —
OpenAI::Resources::Imagesclass withgenerate,edit,create_variationmethods - OpenAI Images API docs: https://platform.openai.com/docs/api-reference/images
- ruby-openai gem: https://github.com/alexrudall/ruby-openai —
client.images.generate(parameters: {})documented in README
Local repo files inspected
lib/braintrust/contrib/openai/patcher.rb— definesChatPatcher,ResponsesPatcher,ModerationsPatcherbut noImagesPatcherlib/braintrust/contrib/openai/instrumentation/— containschat.rb,responses.rb,moderations.rbbut noimages.rblib/braintrust/contrib/ruby_openai/patcher.rb— definesChatPatcher,ResponsesPatcher,ModerationsPatcherbut noImagesPatcherlib/braintrust/contrib/ruby_openai/instrumentation/— containschat.rb,responses.rb,moderations.rbbut noimages.rb- Grep for
images,dall,ImagesPatcheracrosslib/braintrust/returns zero relevant matches
- 主要言語
- Ruby
- スター
- 9
- フォーク
- 10
- 平均マージ
- 22時間 10分
- マージ済み PR(30日)
- 6
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
braintrustdata/braintrust-sdk-ruby のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
braintrustdata/braintrust-sdk-ruby の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
simp/pupmod-simp-ssh#246 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
simp/pupmod-simp-pupmod#261 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
documentation_basics detective marks OSPS-DO-01.01 Unmet for projects whose user guide is the READMEオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
ossf/best-practices-badge#3054 ·
メンテナーはふだん 1 日以内に返信