From 87469b67a935a5815deaeaa915bc2b0796f0cf3c Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Date: Thu, 14 Mar 2024 14:44:40 -0400 Subject: [PATCH] Encode default value for content (#82) By default, kotlin serialization does not encode default values. In the case of content, we do want to serialize it. --- .../ai/client/generativeai/internal/api/shared/Types.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt index 8f7e2242..6202a619 100644 --- a/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt +++ b/generativeai/src/main/java/com/google/ai/client/generativeai/internal/api/shared/Types.kt @@ -18,6 +18,8 @@ package com.google.ai.client.generativeai.internal.api.shared import com.google.ai.client.generativeai.internal.util.FirstOrdinalSerializer import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.EncodeDefault +import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -40,7 +42,9 @@ internal enum class HarmCategory { typealias Base64 = String -@Serializable internal data class Content(val role: String? = "user", val parts: List) +@ExperimentalSerializationApi +@Serializable +internal data class Content(@EncodeDefault val role: String? = "user", val parts: List) @Serializable(PartSerializer::class) internal sealed interface Part