Skip to content

m165 release #6998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: releases/m165
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion firebase-ai/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# Unreleased

* [fixed] Fixed `FirebaseAI.getInstance` StackOverflowException (#6971)
* [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions to the API.
* [fixed] Fixed an issue that was causing the SDK to send empty `FunctionDeclaration` descriptions to the API.
* [changed] Introduced the `Voice` class, which accepts a voice name, and deprecated the `Voices` class.
* [changed] **Breaking Change**: Updated `SpeechConfig` to take in `Voice` class instead of `Voices` class.
* **Action Required:** Update all references of `SpeechConfig` initialization to use `Voice` class.


# 16.0.0
* [feature] Initial release of the Firebase AI SDK (`firebase-ai`). This SDK *replaces* the previous
Vertex AI in Firebase SDK (`firebase-vertexai`) to accommodate the evolving set of supported
Expand Down
34 changes: 20 additions & 14 deletions firebase-ai/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -863,9 +863,9 @@ package com.google.firebase.ai.type {
}

@com.google.firebase.ai.type.PublicPreviewAPI public final class SpeechConfig {
ctor public SpeechConfig(com.google.firebase.ai.type.Voices voice);
method public com.google.firebase.ai.type.Voices getVoice();
property public final com.google.firebase.ai.type.Voices voice;
ctor public SpeechConfig(com.google.firebase.ai.type.Voice voice);
method public com.google.firebase.ai.type.Voice getVoice();
property public final com.google.firebase.ai.type.Voice voice;
}

public abstract class StringFormat {
Expand Down Expand Up @@ -914,19 +914,25 @@ package com.google.firebase.ai.type {
property public final int totalTokenCount;
}

@com.google.firebase.ai.type.PublicPreviewAPI public final class Voices {
method public int getOrdinal();
property public final int ordinal;
field public static final com.google.firebase.ai.type.Voices AOEDE;
field public static final com.google.firebase.ai.type.Voices CHARON;
field public static final com.google.firebase.ai.type.Voices.Companion Companion;
field public static final com.google.firebase.ai.type.Voices FENRIR;
field public static final com.google.firebase.ai.type.Voices KORE;
field public static final com.google.firebase.ai.type.Voices PUCK;
field public static final com.google.firebase.ai.type.Voices UNSPECIFIED;
@com.google.firebase.ai.type.PublicPreviewAPI public final class Voice {
ctor public Voice(String voiceName);
method public String getVoiceName();
property public final String voiceName;
}

@Deprecated @com.google.firebase.ai.type.PublicPreviewAPI public final class Voices {
method @Deprecated public int getOrdinal();
property @Deprecated public final int ordinal;
field @Deprecated public static final com.google.firebase.ai.type.Voices AOEDE;
field @Deprecated public static final com.google.firebase.ai.type.Voices CHARON;
field @Deprecated public static final com.google.firebase.ai.type.Voices.Companion Companion;
field @Deprecated public static final com.google.firebase.ai.type.Voices FENRIR;
field @Deprecated public static final com.google.firebase.ai.type.Voices KORE;
field @Deprecated public static final com.google.firebase.ai.type.Voices PUCK;
field @Deprecated public static final com.google.firebase.ai.type.Voices UNSPECIFIED;
}

public static final class Voices.Companion {
@Deprecated public static final class Voices.Companion {
}

}
Expand Down
2 changes: 1 addition & 1 deletion firebase-ai/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.

version=16.0.1
version=16.1.0
latestReleasedVersion=16.0.0
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ import kotlinx.serialization.Serializable
@PublicPreviewAPI
public class SpeechConfig(
/** The voice to be used for the server's speech response. */
public val voice: Voices
public val voice: Voice
) {

@Serializable
internal data class Internal(@SerialName("voice_config") val voiceConfig: VoiceConfigInternal) {
@Serializable
internal data class VoiceConfigInternal(
@SerialName("prebuilt_voice_config") val prebuiltVoiceConfig: Voices.Internal,
@SerialName("prebuilt_voice_config") val prebuiltVoiceConfig: Voice.Internal,
)
}

Expand Down
34 changes: 34 additions & 0 deletions firebase-ai/src/main/kotlin/com/google/firebase/ai/type/Voice.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.firebase.ai.type

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
* Various voices supported by the server. The list of all voices can be found
* [here](https://cloud.google.com/text-to-speech/docs/chirp3-hd)
*/
@PublicPreviewAPI
public class Voice public constructor(public val voiceName: String) {

@Serializable internal data class Internal(@SerialName("voice_name") val voiceName: String)

internal fun toInternal(): Internal {
return Internal(this.voiceName)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/** Various voices supported by the server */
@Deprecated("Please use the Voice class instead.", ReplaceWith("Voice"))
@PublicPreviewAPI
public class Voices private constructor(public val ordinal: Int) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
import com.google.firebase.ai.type.SpeechConfig;
import com.google.firebase.ai.type.TextPart;
import com.google.firebase.ai.type.UsageMetadata;
import com.google.firebase.ai.type.Voices;
import com.google.firebase.ai.type.Voice;
import com.google.firebase.concurrent.FirebaseExecutors;
import java.util.ArrayList;
import java.util.Calendar;
Expand Down Expand Up @@ -137,7 +137,7 @@ private LiveGenerationConfig getLiveConfig() {
.setFrequencyPenalty(1.0F)
.setPresencePenalty(2.0F)
.setResponseModality(ResponseModality.AUDIO)
.setSpeechConfig(new SpeechConfig(Voices.AOEDE))
.setSpeechConfig(new SpeechConfig(new Voice("AOEDE")))
.build();
}

Expand Down
10 changes: 10 additions & 0 deletions release.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "m165",
"libraries": [
":firebase-ai",
":firebase-crashlytics",
":firebase-crashlytics-ndk",
":firebase-sessions",
":firebase-crashlytics:ktx"
]
}
84 changes: 84 additions & 0 deletions release_report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"changesByLibraryName": {
"firebase-ai": [
{
"commitId": "4e027a9f2751584cf5f8d411c9a031e72ef208a2",
"prId": "6995",
"author": "Rosário P. Fernandes",
"message": "Update ImagenPersonFilterLevel refdocs to match the iOS SDK (#6995)\n\nThis PR updates the ImagenPersonFilter refdocs to match the [iOS\nSDK](https://github.com/firebase/firebase-ios-sdk/blob/4f6c342424df416d78dfc12d08c97769fd4e1152/FirebaseAI/Sources/Types/Public/Imagen/ImagenPersonFilterLevel.swift#L33-L45),\nincluding the information about the [Person and face generation\nallowlist](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#person-face-gen).",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/4e027a9f2751584cf5f8d411c9a031e72ef208a2",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6995"
},
{
"commitId": "82ad185491d1134f66ce5bfa6020b1d1ab8b8270",
"prId": "6972",
"author": "emilypgoogle",
"message": "Fix Firebase AI StackOverflow (#6972)\n\nSee #6971",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/82ad185491d1134f66ce5bfa6020b1d1ab8b8270",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6972"
},
{
"commitId": "9c004772e550ac5f83eb95afb4c27b05ff8f1f0d",
"prId": "6957",
"author": "Rosário P. Fernandes",
"message": "fix(ai): pass FunctionDeclaration#description arg to internal class (#6957)\n\nIt seems like the value set in `FunctionDeclaration#description` was\nnever making it to the API.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/9c004772e550ac5f83eb95afb4c27b05ff8f1f0d",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6957"
},
{
"commitId": "129cb89fb28d3d76519e85471e6fcaad90db3b90",
"prId": "6970",
"author": "Daymon",
"message": "Update changelog and Vertex version from M164 (#6970)\n\nPer [b/419000235](https://b.corp.google.com/issues/419000235),\n\nThis updates the changelogs and vai version changes we made on the\nrelease branch for M164. This should be merged before we create the\nmerge-back branch, such that the merge-back works as expected.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/129cb89fb28d3d76519e85471e6fcaad90db3b90",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6970"
},
{
"commitId": "2a1776413caaa70182c1c782fe7efcc5d73b2303",
"prId": "6948",
"author": "Vinay Guthal",
"message": "update headers in the correct location (#6948)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/2a1776413caaa70182c1c782fe7efcc5d73b2303",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6948"
}
],
"firebase-crashlytics": [
{
"commitId": "a9960190582812b7298196828509fbb5e49e4b33",
"prId": "6945",
"author": "Matthew Robertson",
"message": "Update Crashlytics changelog (#6945)\n\n",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/a9960190582812b7298196828509fbb5e49e4b33",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6945"
}
],
"firebase-crashlytics-ndk": [
{
"commitId": "78360ad0ccd55589d37206729916ac57b61b7907",
"prId": "6946",
"author": "Daymon",
"message": "Add crashlytics-ndk changelog entry (#6946)\n\n#6945 was missing a changelog entry for the dependent library. This PR\nadds that changelog.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/78360ad0ccd55589d37206729916ac57b61b7907",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6946"
}
],
"firebase-sessions": [
{
"commitId": "9f5839fd4e823703629e60e876034b791f589c6e",
"prId": "6982",
"author": "Matthew Robertson",
"message": "Add macrobenchmark module for sessions test app (#6982)\n\nAdd macrobenchmark module for sessions test app. This is just the setup\nand the example startup benchmark. I will add more in the PerfAQS\nproject, and write instructions in the readme then.",
"commitLink": "https://github.com/firebase/firebase-android-sdk/commit/9f5839fd4e823703629e60e876034b791f589c6e",
"prLink": "https://github.com/firebase/firebase-android-sdk/pull/6982"
}
],
"firebase-crashlytics/ktx": [
]
},
"changedLibrariesWithNoChangelog": [
":firebase-inappmessaging",
":firebase-inappmessaging-display",
":firebase-inappmessaging:ktx",
":firebase-inappmessaging-display:ktx"
]
}
37 changes: 37 additions & 0 deletions release_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Release Report
## firebase-ai

* Update ImagenPersonFilterLevel refdocs to match the iOS SDK (#6995)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6995) [commit](https://github.com/firebase/firebase-android-sdk/commit/4e027a9f2751584cf5f8d411c9a031e72ef208a2) [Rosário P. Fernandes]

* Fix Firebase AI StackOverflow (#6972)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6972) [commit](https://github.com/firebase/firebase-android-sdk/commit/82ad185491d1134f66ce5bfa6020b1d1ab8b8270) [emilypgoogle]

* fix(ai): pass FunctionDeclaration#description arg to internal class (#6957)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6957) [commit](https://github.com/firebase/firebase-android-sdk/commit/9c004772e550ac5f83eb95afb4c27b05ff8f1f0d) [Rosário P. Fernandes]

* Update changelog and Vertex version from M164 (#6970)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6970) [commit](https://github.com/firebase/firebase-android-sdk/commit/129cb89fb28d3d76519e85471e6fcaad90db3b90) [Daymon]

* update headers in the correct location (#6948)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6948) [commit](https://github.com/firebase/firebase-android-sdk/commit/2a1776413caaa70182c1c782fe7efcc5d73b2303) [Vinay Guthal]

## firebase-crashlytics

* Update Crashlytics changelog (#6945)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6945) [commit](https://github.com/firebase/firebase-android-sdk/commit/a9960190582812b7298196828509fbb5e49e4b33) [Matthew Robertson]

## firebase-crashlytics-ndk

* Add crashlytics-ndk changelog entry (#6946)
[pr](https://github.com/firebase/firebase-android-sdk/pull/6946) [commit](https://github.com/firebase/firebase-android-sdk/commit/78360ad0ccd55589d37206729916ac57b61b7907) [Daymon]


## firebase-crashlytics/ktx


## SDKs with changes, but no changelogs
:firebase-inappmessaging
:firebase-inappmessaging-display
:firebase-inappmessaging:ktx
:firebase-inappmessaging-display:ktx
Loading