[bot] OpenAI Batch API (`client.batches.create`) 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
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- ruby
- Área
- api, observability
Línea de trabajo
Comienza con lib/braintrust/contrib/openai/patcher.rb y su directorio de instrumentación, y después compara los archivos correspondientes bajo lib/braintrust/contrib/ruby_openai/. Añade cobertura para la llamada batches.create en ambas integraciones, capturando las entradas y los metadatos indicados, mientras dejas fuera del alcance la recuperación asíncrona; la tarea estará completada cuando ambos gems expongan instrumentación para el envío de batches coherente con los patchers existentes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Both the official openai gem and the community ruby-openai gem expose OpenAI's Batch API (client.batches.create), which submits up to 50,000 queued generation requests (chat completions, responses, embeddings, moderations, images, or videos) for asynchronous processing at reduced cost. This is the OpenAI-gem counterpart to two gaps already tracked in this repo for other providers/gems — Anthropic's Message Batches API (#169) and RubyLLM's RubyLLM.batch (#193) — but the equivalent surface for the openai/ruby-openai gems themselves has no instrumentation at all.
What is missing
OpenAI::Resources::Batches#create(completion_window:, endpoint:, input_file_id:, ...) (official gem) and the equivalent client.batches.create(...) on ruby-openai submit a batch job referencing an uploaded JSONL file of requests targeting one of /v1/responses, /v1/chat/completions, /v1/embeddings, /v1/completions, /v1/moderations, /v1/images/generations, /v1/images/edits, or /v1/videos. This is the generative-execution-initiating call for the batch — no Patcher in this repo wraps it.
batch = client.batches.create(
completion_window: :"24h",
endpoint: :"/v1/chat/completions",
input_file_id: "input_file_id"
)
What a span should capture
- Input:
input_file_id,endpoint(which underlying generative API the batch targets),completion_window - Metadata: provider (
openai), batchid,statuson creation, any request-levelmetadataparam - Metrics:
request_countsonce available (total/completed/failed), latency of thecreatecall
Because results are retrieved asynchronously via file download (a CRUD/retrieval operation, out of scope per this audit), the actionable instrumentation point is the create call itself — matching the pattern already proposed for the Anthropic Messages Batches and RubyLLM.batch gaps in this repo.
Braintrust docs status
not_found — https://www.braintrust.dev/docs/integrations/ai-providers/openai documents chat completions, streaming, structured outputs, tool calling, audio transcription, and multimodal content, but does not mention the Batch API in any language.
Upstream sources
- Official OpenAI Ruby SDK
Batchesresource: https://developers.openai.com/api/reference/ruby/resources/batches/methods/create - OpenAI Batch API guide: https://developers.openai.com/api/docs/guides/batch
ruby-openaigem (alexrudall), which documents batches support: https://github.com/alexrudall/ruby-openai
Local repo files inspected
lib/braintrust/contrib/openai/patcher.rb— definesChatPatcher,ResponsesPatcher,ModerationsPatcher; noBatchesPatcherlib/braintrust/contrib/openai/instrumentation/— containschat.rb,responses.rb,moderations.rb,common.rb; nobatches.rblib/braintrust/contrib/ruby_openai/patcher.rb— same three patchers registered; no batches equivalentlib/braintrust/contrib/ruby_openai/instrumentation/— same file set as official gem integration; nobatches.rb- Grep for
batch,Batch,Batchesacrosslib/braintrust/contrib/openai/andlib/braintrust/contrib/ruby_openai/returns zero matches - Issue #169 (Anthropic Messages Batch API) and #193 (RubyLLM.batch) establish the precedent that batch-submission APIs are in-scope generative execution surfaces for this SDK
- Lenguaje dominante
- Ruby
- Estrellas
- 9
- Forks
- 11
- 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
-
ruby
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
braintrustdata/braintrust-sdk-ruby#229 ·
Los mantenedores suelen responder en 1 día
-
ruby
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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dialog: clicking the panel's inner padding closes it (backdropClick matches the <dialog> itself)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Homebrew/homebrew-cask#295450 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
TheOdinProject/curriculum#31479 ·
Los mantenedores suelen responder en 1 día
-
建议移除 dogfight360.com:当前解析到境外Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100