[bot] RubyLLM content moderation (`RubyLLM.moderate`) not instrumented
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/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 lib/braintrust/contrib/ruby_llm/patcher.rb y integration.rb; después compara los patrones existentes en los archivos de moderación de OpenAI y en la instrumentación de moderación de ruby-openai. Implementa la instrumentación de moderación de RubyLLM que falta para los campos de entrada, metadatos, salida y latencia documentados, regístrala junto a ChatPatcher y verifica que la integración cubra RubyLLM.moderate y RubyLLM::Moderation.moderate.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The ruby_llm gem provides RubyLLM.moderate(input, ...) for AI-powered content moderation. This API is not instrumented by this SDK. The current RubyLLM integration only instruments RubyLLM::Chat. Content moderation uses an AI classification model to screen text and images for harmful content, and is a distinct execution surface from chat completions.
This is a cross-library parity gap: the Braintrust Ruby SDK already instruments OpenAI's moderation API for both the openai gem (OpenAI::Resources::Moderations) and the ruby-openai gem (ModerationsPatcher). The equivalent ruby_llm surface has no instrumentation.
What is missing
RubyLLM.moderate(input, model:, with:, provider:, ...) / RubyLLM::Moderation.moderate(input, ...) — invokes a provider moderation model (e.g., OpenAI's omni-moderation-latest) and returns a RubyLLM::Moderation object containing:
id— provider-assigned identifiermodel— model ID used for moderationresults— array ofResultobjects with category flags and scores
What a span should capture
- Input: text string(s) and/or image attachments being moderated
- Metadata: model, provider, endpoint
- Output: flagged status (
flagged?), flagged categories, per-category scores - Metrics:
time_to_first_token(latency)
The implementation pattern is established: ModerationsPatcher for openai and ruby-openai gems both wrap a single create-style method. A new ModerationPatcher for ruby_llm would wrap Moderation.moderate.
Braintrust docs status
not_found — The Braintrust RubyLLM integration docs at https://www.braintrust.dev/docs/integrations/sdk-integrations/ruby-llm document only chat completions, tool calls, token usage, and streaming. Moderation is not mentioned. The OpenAI integration page does describe moderation support for the openai gem.
Upstream sources
- RubyLLM
Moderationclass: https://github.com/crmne/ruby_llm/blob/main/lib/ruby_llm/moderation.rb - RubyLLM module
moderatemethod: https://github.com/crmne/ruby_llm/blob/main/lib/ruby_llm.rb
Local repo files inspected
lib/braintrust/contrib/ruby_llm/patcher.rb— defines onlyChatPatcher; noModerationPatcherlib/braintrust/contrib/ruby_llm/integration.rb— registers[ChatPatcher]onlylib/braintrust/contrib/openai/instrumentation/moderations.rb— existing OpenAI moderation instrumentation (pattern to follow)lib/braintrust/contrib/openai/patcher.rb—ModerationsPatcherdemonstrates the patcher patternlib/braintrust/contrib/ruby_openai/instrumentation/moderations.rb— ruby-openai moderation instrumentation- Grep for
moderate,Moderation,ModerationPatcheracrosslib/braintrust/contrib/ruby_llm/returns zero 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
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
ruby
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
ruby
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Todos los issues de braintrustdata/braintrust-sdk-ruby
Issues similares
-
area: cli enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
mail processing verified
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 7 días
-
L: github:actions L: php:composer
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
dependabot/dependabot-core#16493 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
doorkeeper-gem/doorkeeper-openid_connect#409 · 1 comentario ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
puppetlabs/pdk-templates#676 ·
Los mantenedores suelen responder en 1 día