[bot] OpenAI inline moderation (`moderation` param/field) not captured on Chat Completions or Responses API spans
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 64/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- ruby
- Bereich
- ai-infra-agents, observability
Rechercherichtung
Start by reading the four named instrumentation files: the Chat and Responses implementations for both openai and ruby-openai. Trace how each METADATA_FIELDS list and finalize_metadata method collects request and response data, then inspect the related tests to see how metadata is asserted. Done means inline moderation configuration and results are captured on both API spans across both integrations.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
<!-- provider-gap-audit: openai-inline-moderation-not-captured -->
Summary
OpenAI's Chat Completions and Responses APIs support an official moderation request parameter that runs moderation on the request input and generated output in the same call, returning the results in a moderation field on the response. This is distinct from the standalone moderations.create endpoint (which this SDK already instruments). Neither the request parameter nor the response field is captured anywhere in this repo's openai or ruby-openai instrumentation, for either Chat Completions or the Responses API.
What is missing
Request parameter
moderation: { model:, policy: { input: { mode: }, output: { mode: } } }— configures which moderation model to run and whether to just score or actively block input/output.
Response field
ChatCompletion#moderation—{ input: ModerationResult|Error, output: ModerationResult|Error }Response#moderation— same shape, on the Responses API'sResponseobject
Neither field appears in any METADATA_FIELDS list, and neither finalize_metadata method reads the response's moderation attribute, so a moderated call's safety signals are silently dropped from the trace in all four affected instrumentation files.
Braintrust docs status
not_found — https://docs.braintrust.dev/integrations/ai-providers/openai documents a dedicated "Moderation" span type tied to moderations.create (and openai.moderations.create for Ruby) as a standalone endpoint, but has no mention of inline moderation results being captured as part of chat completion or Responses spans, for any language SDK.
Upstream sources
- Official OpenAI Ruby SDK:
OpenAI::Chat::CompletionCreateParamsdefinesoptional :moderation, -> { OpenAI::Chat::CompletionCreateParams::Moderation }("Configuration for running moderation on the request input and generated output.") — https://github.com/openai/openai-ruby/blob/main/lib/openai/models/chat/completion_create_params.rb OpenAI::Chat::ChatCompletiondefinesoptional :moderation, -> { OpenAI::Chat::ChatCompletion::Moderation }("Moderation results for the request input and generated output, if moderated completions were requested.") — https://github.com/openai/openai-ruby/blob/main/lib/openai/models/chat/chat_completion.rbOpenAI::Responses::ResponseCreateParamsandOpenAI::Responses::Responsedefine the equivalentmoderationrequest/response fields — https://github.com/openai/openai-ruby/blob/main/lib/openai/models/responses/response_create_params.rb and.../responses/response.rb- OpenAI changelog / announcement: moderation scores added to the Responses API and Chat Completions API (June 2026) — https://developers.openai.com/api/docs/changelog and https://platform.openai.com/docs/api-reference/chat/create
Local repo files inspected
lib/braintrust/contrib/openai/instrumentation/chat.rb(METADATA_FIELDSat lines 27–32;finalize_metadataat lines 129–136) — nomoderationlib/braintrust/contrib/openai/instrumentation/responses.rb(METADATA_FIELDSat lines 26–31;finalize_metadataat lines 109–112) — nomoderationlib/braintrust/contrib/ruby_openai/instrumentation/chat.rb(METADATA_FIELDSat lines 32–37;finalize_metadataat lines 137–143) — nomoderationlib/braintrust/contrib/ruby_openai/instrumentation/responses.rb(METADATA_FIELDSat lines 32–37;finalize_metadataat lines 137–140) — nomoderationlib/braintrust/contrib/openai/instrumentation/moderations.rb— confirms this SDK already treats moderation as a first-class signal worth tracing, just not when it arrives inline on a generation call
- Vorherrschende Sprache
- Ruby
- Sterne
- 9
- Forks
- 11
- Ø Merge
- 1 T. 11 Std.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus braintrustdata/braintrust-sdk-ruby
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Alle Issues in braintrustdata/braintrust-sdk-ruby
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
Websockify heartbeat for vnc_containerEvtl. vergeben @robinkar hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
needs verification
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 7 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
Maintainer antworten meist innerhalb von 1 Tag