[bot] RubyLLM speech synthesis (`RubyLLM.speak`) not instrumented
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 70/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- ruby
- Ambito
- observability-sre
Direzione di ricerca
Inizia da lib/braintrust/contrib/ruby_llm/patcher.rb, instrumentation/chat.rb e integration.rb, quindi confronta i pattern esistenti di Embed, Paint e Transcription. Controlla le sorgenti di RubyLLM Speech e le versioni supportate in Appraisals. Il lavoro è completato quando RubyLLM.speak e RubyLLM::Speech.speak creano span che acquisiscono l'input indicato, i metadati, i dettagli dell'output audio e la latenza senza registrare byte audio grezzi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The ruby_llm gem provides RubyLLM.speak(input, ...) for text-to-speech synthesis using AI TTS models. This API is not instrumented by this SDK. The current RubyLLM integration only instruments RubyLLM::Chat — covering chat completions, tool execution, and streaming. speak is a distinct generative AI execution surface (it drives a TTS model to produce audio from text) and produces usage data (token counts via some providers), yet no span is created for it.
This is a direct parity gap with the OpenAI Audio integration gap (#146), which notes that TTS execution via client.audio.speech.create is also uninstrumented. Both use AI models to generate audio from text input.
What is missing
RubyLLM.speak(input, model:, voice:, ...) / RubyLLM::Speech.speak(input, ...) — invokes a TTS provider (OpenAI tts-1, tts-1-hd, or equivalent) and returns a RubyLLM::Speech object containing:
data— raw audio bytesmodel— model ID used for synthesisvoice— voice selectedformat— audio format (mp3, wav, flac, etc.)
What a span should capture
- Input: the text string passed to
speak - Metadata: model, voice, format, provider
- Output: audio format and size (not the raw binary bytes)
- Metrics:
time_to_first_token(latency)
The implementation pattern already exists: RubyLLM::Embed, RubyLLM::Paint, and RubyLLM::Transcription are single-method execution surfaces (see issue #136). RubyLLM::Speech follows the same shape and would be instrumented with the same approach: a new SpeechPatcher wrapping the speak class method.
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. Speech synthesis is not mentioned.
Upstream sources
- RubyLLM
Speechclass: https://github.com/crmne/ruby_llm/blob/main/lib/ruby_llm/speech.rb - RubyLLM module
speakmethod: https://github.com/crmne/ruby_llm/blob/main/lib/ruby_llm.rb - RubyGems (ruby_llm): https://rubygems.org/gems/ruby_llm — "Features chat (text, images, audio, PDFs), image generation, embeddings, tools (function calling)…" (audio includes TTS)
Local repo files inspected
lib/braintrust/contrib/ruby_llm/patcher.rb— defines onlyChatPatcher; noSpeechPatcherlib/braintrust/contrib/ruby_llm/instrumentation/chat.rb— wrapsChat#completeandChat#execute_toolonlylib/braintrust/contrib/ruby_llm/integration.rb— registers[ChatPatcher]onlyAppraisals— tests ruby_llm at versions 1.8, 1.9, and latest;speech.rbis present in all supported versions- Grep for
speak,Speech,tts,SpeechPatcheracrosslib/braintrust/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
braintrustdata/braintrust-sdk-ruby#155 ·
I maintainer di solito rispondono entro 1 giorno
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
braintrustdata/braintrust-sdk-ruby#143 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
braintrustdata/braintrust-sdk-ruby#137 ·
I maintainer di solito rispondono entro 1 giorno
-
ruby
Difficoltà 3/5 Mezza giornata Idoneità per principianti 62/100
braintrustdata/braintrust-sdk-ruby#229 ·
I maintainer di solito rispondono entro 1 giorno
-
ruby
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
braintrustdata/braintrust-sdk-ruby#228 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di braintrustdata/braintrust-sdk-ruby
Issue simili
-
message-patterns
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
sisimai/rb-sisimai#468 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 7 giorni
-
NoMethodError in auth#createApertabugsnag
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
JoeMcB/improvcoaches#827 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
TheOdinProject/curriculum#31465 ·
I maintainer di solito rispondono entro 1 giorno