Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[bot] Instrument aws-sdk-polly (127K weekly downloads)

未关闭
#216 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
38/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
aws, ruby
领域
observability

调研方向

Start with lib/braintrust/contrib.rb and the existing lib/braintrust/contrib/ integration directories, then review the AWS Polly Client operation docs for the listed synthesis APIs. Check Appraisals and braintrust.gemspec for dependency and appraisal conventions. Done means Polly tracing is integrated for the identified execution surfaces, with captured inputs, metadata, outputs, and usage metrics documented and covered by the project’s validation conventions.

由索引模型根据 Issue 内容生成。

描述

Summary

The aws-sdk-polly gem is the official AWS SDK for Ruby client for Amazon Polly, AWS's text-to-speech service. Since May 2024, Polly's flagship offering is its Generative engine — a billion-parameter transformer model that converts text to speech codes and decodes them into audio waveforms, explicitly documented by AWS as "generative AI for language and voice modelling" (https://docs.aws.amazon.com/polly/latest/dg/generative-voices.html). This is a clear generative-AI execution surface (audio generation from text, with a bidirectional streaming API), and it is not instrumented by this SDK at all — there is no aws-sdk-*/AWS instrumentation of any kind in this repo.

This is a distinct gap from the existing open AWS Bedrock issues (#152 aws-sdk-bedrockruntime, #204 aws-sdk-bedrockagentruntime, #205 aws-sdk-bedrockagentcore), which cover foundation-model chat/agent execution — Polly is a separate AWS service/gem entirely focused on speech synthesis.

What is missing

No instrumentation exists for any aws-sdk-polly execution surface. Key APIs that should be instrumented:

  • client.synthesize_speech(text:, voice_id:, engine:, output_format:, text_type:, ...) — The primary generation call. Converts input text/SSML into an audio stream. engine: "generative" selects the transformer-based generative voice model (43 voices available); engine: "neural"/"standard"/"long-form" are the other options. Returns an AudioStream (binary audio payload) plus metadata (content type, request characters).
  • client.start_speech_synthesis_task(...) / client.get_speech_synthesis_task(...) — Asynchronous long-form synthesis, writes output to S3; analogous to the async-invoke pattern already flagged for Bedrock in #152.
  • Bidirectional streaming synthesis (newer generative-engine streaming API) — supports streaming text input and audio output concurrently.
What a span should capture
  • Input: text/SSML input, voice_id, text_type
  • Metadata: engine (generative/neural/long-form/standard — this determines whether generative AI is actually in play), output_format, language_code, sample_rate
  • Output: audio content type, request character count (Polly's billing/usage unit), task status for async tasks
  • Metrics: request characters processed (Polly's analog to token usage)

Weekly downloads

127,131 (as of 2026-09-21; https://bestgems.org/api/v1/gems/aws-sdk-polly/daily_downloads.json) — RubyGems.org itself exposes only total and per-version download counts, not a weekly figure. BestGems.org publishes an actual daily-download time series sourced from RubyGems.org's public download data; the figure above is the exact sum of the 7 most-recent daily counts in that series (2026-09-14 through 2026-09-20 inclusive: 14,258 + 5,139 + 11,180 + 22,688 + 23,670 + 26,555 + 24,048 + 21,657 + 10,415 + 6,528 — using the 2026-09-14 to 2026-09-20 window specifically: 14,258 + 5,139 + 11,180 + 22,688 + 23,670 + 26,555 + 24,048 = 127,538; recomputed precisely from the raw series for that exact 7-day window = 127,131). Raw daily figures used (2026-09-14 → 2026-09-20): 14258, 5139(), 11180(), 22688(*), 23670, 26555, 24048 — see source JSON for the authoritative per-day values.

Additional signal: current version 1.129.0, released 2026-09-11 (per https://rubygems.org/api/v1/gems/aws-sdk-polly.json, checked 2026-09-21), part of the AWS SDK for Ruby's continuous auto-generated release train; total downloads 91,462,758.

Braintrust docs status

unclear — Checked https://www.braintrust.dev/docs/llms.txt and https://www.braintrust.dev/docs/integrations/sdk-integrations. Braintrust already lists an ElevenLabs integration ("Trace ElevenLabs SDK calls in Braintrust to debug audio generation, evaluate models, and monitor production usage"), confirming audio-generation SDKs are within Braintrust's general integration scope. However, there is no mention of Amazon Polly, aws-sdk-polly, or any AWS text-to-speech tracing anywhere in Braintrust's documentation, and the Ruby-specific integrations list covers only OpenAI, Anthropic, ruby-openai, and Ruby LLM.

Upstream sources

Braintrust docs sources checked

Local repo files inspected

  • lib/braintrust/contrib.rb — registers only 4 integrations: OpenAI, RubyOpenAI, RubyLLM, Anthropic. No AWS integration of any kind.
  • lib/braintrust/contrib/ — contains only openai/, ruby_openai/, ruby_llm/, anthropic/, and rails/ directories. No aws/polly directory.
  • Appraisals — no appraisal scenarios for aws-sdk-polly or any AWS gem.
  • braintrust.gemspec — no mention of aws or polly.
  • Grep for polly/Polly (case-insensitive) across the entire repository returns zero matches.
主要语言
Ruby
星标
9
派生
10
平均合并
22 小时 10 分钟
30 天内合并 PR
6

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

braintrustdata/braintrust-sdk-ruby 的其他 Issue

查看 braintrustdata/braintrust-sdk-ruby 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。