github.com-googleapis-python-genai
all · 16 devs · built 2026-06-08
Repository snapshot
Monthly reports
Highlights
- Comprehensive support for new *Agent and Environment APIs* was introduced, enabling CRUD operations and enhanced *AI management capabilities* [ef20d6ba · Wanlin Du].
- The *GenAI SDK* gained a new capability for *Reinforcement Tuning*, allowing advanced model optimization techniques [0ead8888 · Ayush Agrawal].
- Expanded *Interaction API* capabilities now support `text/csv` as an allowed MIME type and include a new `Metadata` class for richer event data [commit/543133b7].
- Support for new *Gemini models*, including `gemini-3.5-flash` [706fd021 · Annie Luc] and `gemini-3.1-flash-lite` [2d5e0fad · Annie Luc], was added, broadening the range of available generative AI models.
- New capabilities for *streaming function call results* were introduced with the `DeltaFunctionResult` type, enabling more granular and real-time feedback during model interactions [b0131f80 · Ivan Lopez Hernandez].
- The *Gemini Live API* now supports *speech-to-speech translation*, enhancing real-time interaction capabilities [6aa8da2b · Amy Wu].
- Enhanced *Vertex AI integration* was achieved through expanded data models and new specifications for *tuning and distillation features* [29103464 · Amy Wu].
- New data models were introduced to support *server-side tool interaction deltas*, providing detailed tracking for calls to *Google Maps*, *Google Search*, *URL Context*, and *Code Execution* tools [97d6fe57 · Ivan Lopez Hernandez].
- Error messages were significantly improved across the library to clarify which *Gemini API modes* support specific parameters or features, enhancing the *developer experience* [1beac802 · Jeff Scudder].
- Multiple version releases (2.0.0 through 2.7.0) were performed, indicating a rapid and continuous release cycle for the *google.genai* package.
Observations
- The *Maintenance score* increased by 43% this period (current: 2) compared to the 2-month average (1), driven by extensive documentation updates, internal cleanups, and refactoring efforts, such as refreshing generated documentation for version 2.2 [2ce02983 · Mark Daoust] and improving API timeout error messages [6ed30207 · Wanlin Du].
- The *Waste score* remained at 0, representing a 66% decrease from the 2-month average (which was also 0), indicating highly efficient development with no reported rework or discarded changes.
- Commit volume was stable at 61 commits, a slight decrease of 4% compared to the 2-month average of 64 commits.
- A consistent pattern of *documentation enhancements* and *internal refactoring* was observed across numerous commits, including updates to docstrings for *GenAI API types* [ce29c7bd · Jaycee Li], reordering class definitions [cd66b68e · Jaycee Li], and streamlining type aliases [d5a9527f · Ivan Lopez Hernandez].
- Several bug fixes were implemented, addressing issues such as incomplete *tool object* processing [7b1d4982 · Yvonne Yu], incorrect `output_text` extraction for model turns [2afdefff · Mark Daoust], `LineTooLong` errors in streaming responses [0e8f7bbe · Mark Daoust], and ensuring the `steps` field in `Interaction` is explicitly required [9ea96339 · Mark Daoust].
- A notable discrepancy was observed where many commits described as `feat` (feature) in their summaries were reported with individual `grow: 0` scores, while the overall `Total Grow Score` for the period was 3. This suggests that the individual commit scores provided might not fully reflect the contribution to the aggregated metrics.
Performance over time
ETV stacked by Growth, Maintenance and Fixes — 90-day moving average, normalized to ETV / month.
Average performance per developer
ETV per active developer per month — 30-day moving average.
Active developers over time
Unique developers committing each day — 90-day moving average.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
Mark Daoust owns 11.6 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 3.2ETVfeat: Support Batches create/get/list/cancel in Gemini Developer API PiperOrigin-RevId: 775800637Amy Wu · 5ab8a564 · 2025-06-25
- 2.0ETVchore: Remove unused converters when given method is not supported by Gemini API or Vertex AI PiperOrigin-RevId: 740117271Kaituo Huang · a176382f · 2025-03-24
- 1.8ETVfeat: Add FileSearch tool and associated FileSearchStore management APIs PiperOrigin-RevId: 828595270Kaituo Huang · 7370d248 · 2025-11-05
- 1.5ETVfeat: Update data types from discovery doc. PiperOrigin-RevId: 840874953Jeff Scudder · 443a9707 · 2025-12-05
- 1.2ETVfeat: Support ephemeral token creation in Python feat: Support using ephemeral token in Live session connection in Python PiperOrigin-RevId: 760726164Amy Wu · 141d540a · 2025-05-19
- 1.1ETVfeat: generate _live_converters.py PiperOrigin-RevId: 748758871Mark Daoust · d526a08c · 2025-04-17
- 1.0ETVfeat: Add support for MCP in Python SDK. PiperOrigin-RevId: 758532234Annie Luc · 3f531c3f · 2025-05-14
- 1.0ETVfeat: add webhook and webhookConfig for js and python sdk PiperOrigin-RevId: 897937493Wanlin Du · ccec3507 · 2026-04-10
- 0.9ETVchore: create lightweight set of tests designed for api-level SDK verification. PiperOrigin-RevId: 809105081Ayush Agrawal · dd67ade0 · 2025-09-19
- 0.9ETVfeat: python local tokenizer Usage: ``` tokenizer = LocalTokenizer("gemini-2.5-pro") print(tokenizer.count_tokens("hello world")) ``` PiperOrigin-RevId: 796985578Qiao Wang · dfc05454 · 2025-08-19
- 0.8ETVfeat: support new fields in FileData, GenerationConfig, GroundingChunkRetrievedContext, RetrievalConfig, Schema, TuningJob, VertexAISearch, PiperOrigin-RevId: 761989390Sara Robinson · b07c549f · 2025-05-22
- 0.8ETVfeat: Add generate_videos (Veo 2) support for Python PiperOrigin-RevId: 729613210Matthew Tang · e9e2be73 · 2025-02-21
- 0.8ETVfeat: add specialized `send` methods to the live api PiperOrigin-RevId: 742333239Mark Daoust · 9c4e4dcd · 2025-03-31
- 0.8ETVfeat: Update data types from discovery doc. PiperOrigin-RevId: 876562156Jeff Scudder · 15666c06 · 2026-02-28
- 0.8ETVfeat: allow non-content types in generate_content fix: allow user do batch generate content when passing a list of strings PiperOrigin-RevId: 733036720Yvonne Yu · cbaaf4ae · 2025-03-03
- 0.8ETVdoc: update custom base url instruction PiperOrigin-RevId: 819846811Amy Wu · a0dfe276 · 2025-10-15
- 0.8ETVfeat!: make Part, FunctionDeclaration, Image, and GenerateContentResponse classmethods argument keyword only PiperOrigin-RevId: 719351908Yvonne Yu · b58f4e03 · 2025-01-24
- 0.8ETVchore: initial fix of mypy strict typing errors PiperOrigin-RevId: 748703272Sara Robinson · 73d2bce8 · 2025-04-17
- 0.8ETVfeat: support Agent and Environment APIs. PiperOrigin-RevId: 916890699Wanlin Du · ef20d6ba · 2026-05-17
- 0.7ETVfeat: [Python] Implement async embedding batches for MLDev. feat: [Python] Add BatchJob.done property. - Vertex's interface is generic enough that it already works with embedding batches. - MLDev's interface uses a separate method for embedding batches. - The SDK uses needs different argument names to indicate which method to call. - The different argument/result field names are also important to avoid the use of Union Types with inlinedRequests and inlinedResponses. PiperOrigin-RevId: 804658916Mark Daoust · 468d5299 · 2025-09-09