From ed7efcffdfc27fa00c4525848c675b097c415967 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 2 Jun 2026 12:24:00 -0700 Subject: [PATCH] feat: Add TranslationConfig for live translation. PiperOrigin-RevId: 925512170 --- .../java/com/google/genai/LiveConverters.java | 11 +++---- .../com/google/genai/TokensConverters.java | 6 ++-- .../google/genai/types/LiveConnectConfig.java | 33 +++++++++---------- ...tionConfig.java => TranslationConfig.java} | 22 ++++++------- 4 files changed, 34 insertions(+), 38 deletions(-) rename src/main/java/com/google/genai/types/{StreamTranslationConfig.java => TranslationConfig.java} (81%) diff --git a/src/main/java/com/google/genai/LiveConverters.java b/src/main/java/com/google/genai/LiveConverters.java index 4c07f09c3e0..aad73fd53a4 100644 --- a/src/main/java/com/google/genai/LiveConverters.java +++ b/src/main/java/com/google/genai/LiveConverters.java @@ -1183,11 +1183,11 @@ ObjectNode liveConnectConfigToMldev(JsonNode fromObject, ObjectNode parentObject Common.setValueByPath(parentObject, new String[] {"setup", "safetySettings"}, result); } - if (Common.getValueByPath(fromObject, new String[] {"streamTranslationConfig"}) != null) { + if (Common.getValueByPath(fromObject, new String[] {"translationConfig"}) != null) { Common.setValueByPath( parentObject, - new String[] {"setup", "generationConfig", "streamTranslationConfig"}, - Common.getValueByPath(fromObject, new String[] {"streamTranslationConfig"})); + new String[] {"setup", "generationConfig", "translationConfig"}, + Common.getValueByPath(fromObject, new String[] {"translationConfig"})); } return toObject; @@ -1355,10 +1355,9 @@ ObjectNode liveConnectConfigToVertex(JsonNode fromObject, ObjectNode parentObjec Common.getValueByPath(fromObject, new String[] {"safetySettings"})); } - if (!Common.isZero( - Common.getValueByPath(fromObject, new String[] {"streamTranslationConfig"}))) { + if (!Common.isZero(Common.getValueByPath(fromObject, new String[] {"translationConfig"}))) { throw new IllegalArgumentException( - "streamTranslationConfig parameter is only supported in Gemini Developer API mode, not in" + "translationConfig parameter is only supported in Gemini Developer API mode, not in" + " Gemini Enterprise Agent Platform mode."); } diff --git a/src/main/java/com/google/genai/TokensConverters.java b/src/main/java/com/google/genai/TokensConverters.java index f7e021f1e52..666090cc359 100644 --- a/src/main/java/com/google/genai/TokensConverters.java +++ b/src/main/java/com/google/genai/TokensConverters.java @@ -513,11 +513,11 @@ ObjectNode liveConnectConfigToMldev(JsonNode fromObject, ObjectNode parentObject Common.setValueByPath(parentObject, new String[] {"setup", "safetySettings"}, result); } - if (Common.getValueByPath(fromObject, new String[] {"streamTranslationConfig"}) != null) { + if (Common.getValueByPath(fromObject, new String[] {"translationConfig"}) != null) { Common.setValueByPath( parentObject, - new String[] {"setup", "generationConfig", "streamTranslationConfig"}, - Common.getValueByPath(fromObject, new String[] {"streamTranslationConfig"})); + new String[] {"setup", "generationConfig", "translationConfig"}, + Common.getValueByPath(fromObject, new String[] {"translationConfig"})); } return toObject; diff --git a/src/main/java/com/google/genai/types/LiveConnectConfig.java b/src/main/java/com/google/genai/types/LiveConnectConfig.java index c7dc5dc681f..f10d8d03275 100644 --- a/src/main/java/com/google/genai/types/LiveConnectConfig.java +++ b/src/main/java/com/google/genai/types/LiveConnectConfig.java @@ -169,9 +169,9 @@ public abstract class LiveConnectConfig extends JsonSerializable { @JsonProperty("safetySettings") public abstract Optional> safetySettings(); - /** Config for stream translation. */ - @JsonProperty("streamTranslationConfig") - public abstract Optional streamTranslationConfig(); + /** Config for translation. */ + @JsonProperty("translationConfig") + public abstract Optional translationConfig(); /** Instantiates a builder for LiveConnectConfig. */ @ExcludeFromGeneratedCoverageReport @@ -871,34 +871,31 @@ public Builder clearSafetySettings() { } /** - * Setter for streamTranslationConfig. + * Setter for translationConfig. * - *

streamTranslationConfig: Config for stream translation. + *

translationConfig: Config for translation. */ - @JsonProperty("streamTranslationConfig") - public abstract Builder streamTranslationConfig( - StreamTranslationConfig streamTranslationConfig); + @JsonProperty("translationConfig") + public abstract Builder translationConfig(TranslationConfig translationConfig); /** - * Setter for streamTranslationConfig builder. + * Setter for translationConfig builder. * - *

streamTranslationConfig: Config for stream translation. + *

translationConfig: Config for translation. */ @CanIgnoreReturnValue - public Builder streamTranslationConfig( - StreamTranslationConfig.Builder streamTranslationConfigBuilder) { - return streamTranslationConfig(streamTranslationConfigBuilder.build()); + public Builder translationConfig(TranslationConfig.Builder translationConfigBuilder) { + return translationConfig(translationConfigBuilder.build()); } @ExcludeFromGeneratedCoverageReport - abstract Builder streamTranslationConfig( - Optional streamTranslationConfig); + abstract Builder translationConfig(Optional translationConfig); - /** Clears the value of streamTranslationConfig field. */ + /** Clears the value of translationConfig field. */ @ExcludeFromGeneratedCoverageReport @CanIgnoreReturnValue - public Builder clearStreamTranslationConfig() { - return streamTranslationConfig(Optional.empty()); + public Builder clearTranslationConfig() { + return translationConfig(Optional.empty()); } public abstract LiveConnectConfig build(); diff --git a/src/main/java/com/google/genai/types/StreamTranslationConfig.java b/src/main/java/com/google/genai/types/TranslationConfig.java similarity index 81% rename from src/main/java/com/google/genai/types/StreamTranslationConfig.java rename to src/main/java/com/google/genai/types/TranslationConfig.java index 7bcad387e3b..61ae7c4fcc7 100644 --- a/src/main/java/com/google/genai/types/StreamTranslationConfig.java +++ b/src/main/java/com/google/genai/types/TranslationConfig.java @@ -28,8 +28,8 @@ /** Config for stream translation. */ @AutoValue -@JsonDeserialize(builder = StreamTranslationConfig.Builder.class) -public abstract class StreamTranslationConfig extends JsonSerializable { +@JsonDeserialize(builder = TranslationConfig.Builder.class) +public abstract class TranslationConfig extends JsonSerializable { /** * If true, the model will generate audio when the target language is spoken, essentially it will * parrot the input. If false, we will not produce audio for the target language. @@ -44,22 +44,22 @@ public abstract class StreamTranslationConfig extends JsonSerializable { @JsonProperty("targetLanguageCode") public abstract Optional targetLanguageCode(); - /** Instantiates a builder for StreamTranslationConfig. */ + /** Instantiates a builder for TranslationConfig. */ @ExcludeFromGeneratedCoverageReport public static Builder builder() { - return new AutoValue_StreamTranslationConfig.Builder(); + return new AutoValue_TranslationConfig.Builder(); } /** Creates a builder with the same values as this instance. */ public abstract Builder toBuilder(); - /** Builder for StreamTranslationConfig. */ + /** Builder for TranslationConfig. */ @AutoValue.Builder public abstract static class Builder { - /** For internal usage. Please use `StreamTranslationConfig.builder()` for instantiation. */ + /** For internal usage. Please use `TranslationConfig.builder()` for instantiation. */ @JsonCreator private static Builder create() { - return new AutoValue_StreamTranslationConfig.Builder(); + return new AutoValue_TranslationConfig.Builder(); } /** @@ -101,12 +101,12 @@ public Builder clearTargetLanguageCode() { return targetLanguageCode(Optional.empty()); } - public abstract StreamTranslationConfig build(); + public abstract TranslationConfig build(); } - /** Deserializes a JSON string to a StreamTranslationConfig object. */ + /** Deserializes a JSON string to a TranslationConfig object. */ @ExcludeFromGeneratedCoverageReport - public static StreamTranslationConfig fromJson(String jsonString) { - return JsonSerializable.fromJsonString(jsonString, StreamTranslationConfig.class); + public static TranslationConfig fromJson(String jsonString) { + return JsonSerializable.fromJsonString(jsonString, TranslationConfig.class); } }