Skip to content

[bot] voyageai gem not instrumented #171

@braintrust-bot

Description

@braintrust-bot

Summary

The voyageai gem (~58K downloads, v1.9.0, May 2025) is the primary Ruby client for Voyage AI's embeddings and reranking API and is not instrumented by this SDK. Voyage AI is a specialized embeddings provider offering high-quality text embedding models (voyage-4, voyage-4-large, voyage-code-3, voyage-finance-2, etc.) widely used in RAG pipelines. The Ruby gem provides a clear execution API surface with no current instrumentation coverage.

What is missing

No instrumentation exists for any voyageai execution surface. Key APIs that should be instrumented:

Embeddings

  • client.embed(input, model:, input_type:, output_dimension:, output_dtype:, truncation:) — Core embeddings method. Accepts a single string or array of strings (up to 1,000 items). Returns an object with .embedding (single) or .embeddings (batch), plus model and usage statistics (token counts).

Reranking

  • client.rerank(query, documents, model:, top_k:, truncation:) — Ranks a list of documents by relevance to a query. Returns ranked results with relevance scores. Used to improve retrieval quality in RAG pipelines.

Expected instrumentation

Embedding spans should capture:

  • Input: text(s) being embedded (or a count/truncated form for large batches)
  • Metadata: model, input_type, output_dimension, output_dtype, truncation
  • Metrics: usage (total_tokens from the response)

Reranking spans should capture:

  • Input: query string and document count
  • Metadata: model, top_k, truncation
  • Output: relevance scores and ranking

Braintrust docs status

not_found — Voyage AI is not listed in Braintrust's integrations at https://www.braintrust.dev/docs/integrations. Braintrust documents support for embedding providers like Cohere (which also offers embeddings) and OpenAI embeddings, but does not currently list Voyage AI as a supported integration. Instrumenting this gem would enable Ruby users to trace embedding calls to Braintrust via the OpenTelemetry integration path.

Upstream sources

Local repo files inspected

  • lib/braintrust/contrib.rb (lines 195–205) — registers only 4 integrations: OpenAI, RubyOpenAI, RubyLLM, Anthropic. No VoyageAI integration.
  • lib/braintrust/contrib/ — contains only openai/, ruby_openai/, ruby_llm/, anthropic/, and rails/ directories. No voyageai/ directory.
  • Appraisals — no appraisal scenarios for voyageai
  • braintrust.gemspec — no mention of voyageai
  • Grep for voyage across entire codebase returns zero matches

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions