[BOT ISSUE] OpenAI Images API not instrumented (openai + ruby-openai gems)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- ruby
- Área
- observability
Línea de trabajo
Comienza con los patchers existentes en lib/braintrust/contrib/openai/patcher.rb y lib/braintrust/contrib/ruby_openai/patcher.rb, y después compara sus archivos de instrumentación con el patrón de ModerationsPatcher. El trabajo pendiente se limita a añadir instrumentación de imágenes para los métodos generate, edit y variation indicados en ambas gems. Se considera terminado cuando los spans capturan el prompt solicitado, los metadatos, la URL de la imagen o la salida de metadatos, y revised_prompt, sin registrar datos de imagen binarios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Ruby
- Estrellas
- 9
- Forks
- 10
- Merge medio
- 3 d 43 min
- PR fusionados (30 d)
- 9
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de braintrustdata/braintrust-sdk-ruby
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
braintrustdata/braintrust-sdk-ruby#155 ·
Los mantenedores suelen responder en 1 día
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
braintrustdata/braintrust-sdk-ruby#143 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
braintrustdata/braintrust-sdk-ruby#137 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
braintrustdata/braintrust-sdk-ruby#229 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
braintrustdata/braintrust-sdk-ruby#228 ·
Los mantenedores suelen responder en 1 día
Todos los issues de braintrustdata/braintrust-sdk-ruby
Issues similares
-
🐞 bug pending triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CircuitVerse/CircuitVerse#8031 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
riscv/riscv-unified-db#2740 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
iOS podspec depends on `React-Codegen`, which resolves to an unrelated pod on CocoaPods trunkAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
GantMan/jail-monkey#380 ·