Skip to content

Commit 7ce9727

Browse files
committed
minor tweaks
1 parent a2bd5e7 commit 7ce9727

File tree

3 files changed

+71
-18
lines changed

3 files changed

+71
-18
lines changed

firebase-ai/api.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,23 @@ package com.google.firebase.ai.type {
165165
public final class APINotConfiguredException extends com.google.firebase.ai.type.FirebaseAIException {
166166
}
167167

168+
public final class AspectRatio {
169+
field public static final com.google.firebase.ai.type.AspectRatio.Companion Companion;
170+
field public static final com.google.firebase.ai.type.AspectRatio LANDSCAPE_16x9;
171+
field public static final com.google.firebase.ai.type.AspectRatio LANDSCAPE_21x9;
172+
field public static final com.google.firebase.ai.type.AspectRatio LANDSCAPE_3x2;
173+
field public static final com.google.firebase.ai.type.AspectRatio LANDSCAPE_4x3;
174+
field public static final com.google.firebase.ai.type.AspectRatio LANDSCAPE_5x4;
175+
field public static final com.google.firebase.ai.type.AspectRatio PORTRAIT_2x3;
176+
field public static final com.google.firebase.ai.type.AspectRatio PORTRAIT_3x4;
177+
field public static final com.google.firebase.ai.type.AspectRatio PORTRAIT_4x5;
178+
field public static final com.google.firebase.ai.type.AspectRatio PORTRAIT_9x16;
179+
field public static final com.google.firebase.ai.type.AspectRatio SQUARE_1x1;
180+
}
181+
182+
public static final class AspectRatio.Companion {
183+
}
184+
168185
public final class AudioRecordInitializationFailedException extends com.google.firebase.ai.type.FirebaseAIException {
169186
ctor public AudioRecordInitializationFailedException(String message);
170187
}
@@ -323,8 +340,13 @@ package com.google.firebase.ai.type {
323340
property public final int ordinal;
324341
field public static final com.google.firebase.ai.type.FinishReason BLOCKLIST;
325342
field public static final com.google.firebase.ai.type.FinishReason.Companion Companion;
343+
field public static final com.google.firebase.ai.type.FinishReason IMAGE_OTHER;
344+
field public static final com.google.firebase.ai.type.FinishReason IMAGE_PROHIBITED_CONTENT;
345+
field public static final com.google.firebase.ai.type.FinishReason IMAGE_RECITATION;
346+
field public static final com.google.firebase.ai.type.FinishReason IMAGE_SAFETY;
326347
field public static final com.google.firebase.ai.type.FinishReason MALFORMED_FUNCTION_CALL;
327348
field public static final com.google.firebase.ai.type.FinishReason MAX_TOKENS;
349+
field public static final com.google.firebase.ai.type.FinishReason NO_IMAGE;
328350
field public static final com.google.firebase.ai.type.FinishReason OTHER;
329351
field public static final com.google.firebase.ai.type.FinishReason PROHIBITED_CONTENT;
330352
field public static final com.google.firebase.ai.type.FinishReason RECITATION;
@@ -412,6 +434,7 @@ package com.google.firebase.ai.type {
412434
method public com.google.firebase.ai.type.GenerationConfig build();
413435
method public com.google.firebase.ai.type.GenerationConfig.Builder setCandidateCount(Integer? candidateCount);
414436
method public com.google.firebase.ai.type.GenerationConfig.Builder setFrequencyPenalty(Float? frequencyPenalty);
437+
method public com.google.firebase.ai.type.GenerationConfig.Builder setImageConfig(com.google.firebase.ai.type.ImageConfig? imageConfig);
415438
method public com.google.firebase.ai.type.GenerationConfig.Builder setMaxOutputTokens(Integer? maxOutputTokens);
416439
method public com.google.firebase.ai.type.GenerationConfig.Builder setPresencePenalty(Float? presencePenalty);
417440
method public com.google.firebase.ai.type.GenerationConfig.Builder setResponseMimeType(String? responseMimeType);
@@ -424,6 +447,7 @@ package com.google.firebase.ai.type {
424447
method public com.google.firebase.ai.type.GenerationConfig.Builder setTopP(Float? topP);
425448
field public Integer? candidateCount;
426449
field public Float? frequencyPenalty;
450+
field public com.google.firebase.ai.type.ImageConfig? imageConfig;
427451
field public Integer? maxOutputTokens;
428452
field public Float? presencePenalty;
429453
field public String? responseMimeType;
@@ -571,6 +595,19 @@ package com.google.firebase.ai.type {
571595
public static final class HarmSeverity.Companion {
572596
}
573597

598+
public final class ImageConfig {
599+
}
600+
601+
public static final class ImageConfig.Builder {
602+
ctor public ImageConfig.Builder();
603+
method public com.google.firebase.ai.type.ImageConfig build();
604+
method public com.google.firebase.ai.type.ImageConfig.Builder setAspectRatio(com.google.firebase.ai.type.AspectRatio? aspectRatio);
605+
}
606+
607+
public final class ImageConfigKt {
608+
method public static com.google.firebase.ai.type.ImageConfig imageConfig(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.ImageConfig.Builder,kotlin.Unit> init);
609+
}
610+
574611
public final class ImagePart implements com.google.firebase.ai.type.Part {
575612
ctor public ImagePart(android.graphics.Bitmap image);
576613
method public android.graphics.Bitmap getImage();

firebase-ai/src/main/kotlin/com/google/firebase/ai/type/Candidate.kt

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,11 @@ public class FinishReason private constructor(public val name: String, public va
238238
PROHIBITED_CONTENT,
239239
SPII,
240240
MALFORMED_FUNCTION_CALL,
241-
@SerialName("NO_IMAGE") NO_IMAGE;
241+
IMAGE_SAFETY,
242+
IMAGE_PROHIBITED_CONTENT,
243+
IMAGE_RECITATION,
244+
IMAGE_OTHER,
245+
NO_IMAGE;
242246

243247
internal object Serializer : KSerializer<Internal> by FirstOrdinalSerializer(Internal::class)
244248

@@ -253,6 +257,10 @@ public class FinishReason private constructor(public val name: String, public va
253257
PROHIBITED_CONTENT -> FinishReason.PROHIBITED_CONTENT
254258
SPII -> FinishReason.SPII
255259
MALFORMED_FUNCTION_CALL -> FinishReason.MALFORMED_FUNCTION_CALL
260+
IMAGE_SAFETY -> FinishReason.IMAGE_SAFETY
261+
IMAGE_PROHIBITED_CONTENT -> FinishReason.IMAGE_PROHIBITED_CONTENT
262+
IMAGE_RECITATION -> FinishReason.IMAGE_RECITATION
263+
IMAGE_OTHER -> FinishReason.IMAGE_OTHER
256264
NO_IMAGE -> FinishReason.NO_IMAGE
257265
else -> FinishReason.UNKNOWN
258266
}
@@ -294,8 +302,21 @@ public class FinishReason private constructor(public val name: String, public va
294302
@JvmField
295303
public val MALFORMED_FUNCTION_CALL: FinishReason = FinishReason("MALFORMED_FUNCTION_CALL", 9)
296304

297-
/** No image was generated. */
298-
@JvmField public val NO_IMAGE: FinishReason = FinishReason("NO_IMAGE", 10)
305+
/** Token generation stopped because generated images has safety violations. */
306+
@JvmField public val IMAGE_SAFETY: FinishReason = FinishReason("IMAGE_SAFETY", 10)
307+
308+
/** Image generation stopped because generated images has other prohibited content. */
309+
@JvmField
310+
public val IMAGE_PROHIBITED_CONTENT: FinishReason = FinishReason("IMAGE_PROHIBITED_CONTENT", 11)
311+
312+
/** Image generation stopped due to recitation. */
313+
@JvmField public val IMAGE_RECITATION: FinishReason = FinishReason("IMAGE_RECITATION", 12)
314+
315+
/** Image generation stopped because of other miscellaneous issue. */
316+
@JvmField public val IMAGE_OTHER: FinishReason = FinishReason("IMAGE_OTHER", 13)
317+
318+
/** The model was expected to generate an image, but none was generated. */
319+
@JvmField public val NO_IMAGE: FinishReason = FinishReason("NO_IMAGE", 14)
299320
}
300321
}
301322

firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImageConfig.kt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.firebase.ai.type
1818

19+
import kotlinx.serialization.Serializable
20+
1921
/**
2022
* Configuration parameters to use for image generation.
2123
*
@@ -33,28 +35,21 @@ public class ImageConfig internal constructor(internal val aspectRatio: AspectRa
3335
* @see [imageConfig]
3436
*/
3537
public class Builder {
36-
@JvmField public var aspectRatio: AspectRatio? = null
38+
@JvmField
39+
@set:JvmSynthetic // hide void setter from Java
40+
public var aspectRatio: AspectRatio? = null
3741

38-
public fun setAspectRatio(aspectRatio: AspectRatio?): Builder = apply { this.aspectRatio = aspectRatio }
42+
public fun setAspectRatio(aspectRatio: AspectRatio?): Builder = apply {
43+
this.aspectRatio = aspectRatio
44+
}
3945

4046
/** Create a new [ImageConfig] with the attached arguments. */
4147
public fun build(): ImageConfig = ImageConfig(aspectRatio = aspectRatio)
4248
}
4349

4450
internal fun toInternal() = Internal(aspectRatio = aspectRatio?.internalVal)
4551

46-
internal data class Internal(val aspectRatio: String?)
47-
48-
public companion object {
49-
50-
/**
51-
* Alternative casing for [ImageConfig.Builder]:
52-
* ```
53-
* val config = ImageConfig.builder()
54-
* ```
55-
*/
56-
public fun builder(): Builder = Builder()
57-
}
52+
@Serializable internal data class Internal(val aspectRatio: String?)
5853
}
5954

6055
/**
@@ -68,7 +63,7 @@ public class ImageConfig internal constructor(internal val aspectRatio: AspectRa
6863
* ```
6964
*/
7065
public fun imageConfig(init: ImageConfig.Builder.() -> Unit): ImageConfig {
71-
val builder = ImageConfig.builder()
66+
val builder = ImageConfig.Builder()
7267
builder.init()
7368
return builder.build()
7469
}

0 commit comments

Comments
 (0)