[bot] RubyLLM content moderation (`RubyLLM.moderate`) not instrumented
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- ruby
- Ambito
- observability
Direzione di ricerca
Inizia da lib/braintrust/contrib/ruby_llm/patcher.rb e integration.rb, quindi confronta i pattern esistenti nei file di moderazione OpenAI e nella strumentazione di moderazione di ruby-openai. Implementa la strumentazione di moderazione RubyLLM mancante per i campi documentati di input, metadati, output e latenza, registrala insieme a ChatPatcher e verifica che l'integrazione copra RubyLLM.moderate e RubyLLM::Moderation.moderate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Ruby
- Stelle
- 9
- Fork
- 10
- Merge medio
- 3g 43m
- PR unite (30g)
- 9
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di braintrustdata/braintrust-sdk-ruby
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
ruby
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
ruby
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Tutte le issue di braintrustdata/braintrust-sdk-ruby
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
lugassawan/swe-workbench#799 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Homebrew/homebrew-core#317477 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Dumping db structure after migrations fails for projects with spaces in their pathForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hanami/hanami-cli#453 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 7 giorni