Skip to content

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

@braintrust-bot

Description

@braintrust-bot

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions