Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[BOT ISSUE] RubyLLM embed, paint, and transcribe APIs not instrumented

Open
#136 0 comments 0 reactions 0 assignees View on GitHub

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

Local repo files inspected

  • lib/braintrust/contrib/ruby_llm/patcher.rb — defines only ChatPatcher, no EmbeddingPatcher, ImagePatcher, or TranscriptionPatcher
  • lib/braintrust/contrib/ruby_llm/instrumentation/chat.rb — only wraps Chat#complete and Chat#execute_tool
  • lib/braintrust/contrib/ruby_llm/integration.rb — registers only the ChatPatcher
Dominant language
Ruby
Stars
9
Forks
10
Avg merge
22h 10m
Merged PRs (30d)
6

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from braintrustdata/braintrust-sdk-ruby

All issues in braintrustdata/braintrust-sdk-ruby

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.