[BOT ISSUE] RubyLLM embed, paint, and transcribe APIs not instrumented
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 72/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- ruby
- Domain
- observability
Research direction
Start with lib/braintrust/contrib/ruby_llm/patcher.rb and lib/braintrust/contrib/ruby_llm/instrumentation/chat.rb to understand the existing ChatPatcher and Chat#complete instrumentation. Then inspect lib/braintrust/contrib/ruby_llm/integration.rb, which currently registers only ChatPatcher. Done means RubyLLM.embed, RubyLLM.paint, and RubyLLM.transcribe are instrumented alongside the existing chat APIs.
Written by the indexing model from the issue text.
Description
Summary
RubyLLM provides three AI inference APIs beyond chat completions — RubyLLM.embed, RubyLLM.paint, and RubyLLM.transcribe — none of which are instrumented by this SDK. The current RubyLLM integration only instruments Chat#complete and Chat#execute_tool.
What is missing
1. Embeddings — RubyLLM::Embedding.embed / RubyLLM.embed
Creates vector embeddings from text. Returns an Embedding object with vectors, model, and input_tokens. Supports provider/model selection and dimensions parameter. This is a core inference API used for RAG and semantic search.
2. Image generation — RubyLLM::Image.paint / RubyLLM.paint
Generates images from text prompts. Returns an Image object with url, data, mime_type, revised_prompt, model_id. Supports model/provider/size selection.
3. Audio transcription — RubyLLM::Transcription.transcribe / RubyLLM.transcribe
Converts audio files to text. Returns a Transcription object with text, model, language, duration, segments, input_tokens, output_tokens. Has built-in token tracking useful for cost attribution.
All three are stable public APIs available since RubyLLM 1.8+ (the minimum version this SDK targets). Each is a single-method call with a simple request/response pattern (no streaming), making instrumentation straightforward.
Braintrust docs status
not_found — The Braintrust RubyLLM integration docs at https://www.braintrust.dev/docs/integrations/ai-sdks/ruby-llm describe support for chat completions across multiple providers and tool/function call tracing but do not mention embeddings, image generation, or transcription.
Upstream sources
- RubyLLM GitHub: https://github.com/crmne/ruby_llm
- RubyLLM docs for embeddings: https://rubyllm.com/guides/embeddings
- RubyLLM docs for image generation: https://rubyllm.com/guides/image-generation
- RubyLLM docs for audio transcription: https://rubyllm.com/guides/audio-transcription
- RubyLLM changelog: https://github.com/crmne/ruby_llm/releases — all three features predate the 1.8 minimum version
Local repo files inspected
lib/braintrust/contrib/ruby_llm/patcher.rb— defines onlyChatPatcher, noEmbeddingPatcher,ImagePatcher, orTranscriptionPatcherlib/braintrust/contrib/ruby_llm/instrumentation/chat.rb— only wrapsChat#completeandChat#execute_toollib/braintrust/contrib/ruby_llm/integration.rb— registers only theChatPatcher
- Dominant language
- Ruby
- Stars
- 9
- Forks
- 10
- Avg merge
- 22h 10m
- Merged PRs (30d)
- 6
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from braintrustdata/braintrust-sdk-ruby
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
ruby
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
ruby
Difficulty 4/5 3-5 days Newbie friendliness 48/100
All issues in braintrustdata/braintrust-sdk-ruby
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
slovensko-digital/autogram-portal#392 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
voxpupuli/puppet-quadlets#122 · 5 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
TheOdinProject/curriculum#31452 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100