Skip to content

Commit 7645acf

Browse files
author
David Motsonashvili
committed
fix serialization
1 parent 1c89819 commit 7645acf

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

firebase-ai/src/main/kotlin/com/google/firebase/ai/TemplateGenerativeModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ import com.google.firebase.auth.internal.InternalAuthProvider
3333
import kotlinx.coroutines.flow.Flow
3434
import kotlinx.coroutines.flow.catch
3535
import kotlinx.coroutines.flow.map
36+
import kotlinx.serialization.json.Json
37+
import kotlinx.serialization.json.jsonObject
38+
import org.json.JSONObject
3639

3740
/**
3841
* Represents a multimodal model (like Gemini), capable of generating content based on various
@@ -111,7 +114,9 @@ internal constructor(
111114
.map { it.toPublic().validate() }
112115

113116
internal fun constructRequest(inputs: Map<String, Any>): TemplateGenerateContentRequest {
114-
return TemplateGenerateContentRequest(inputs)
117+
return TemplateGenerateContentRequest(
118+
Json.parseToJsonElement(JSONObject(inputs).toString()).jsonObject
119+
)
115120
}
116121

117122
private fun GenerateContentResponse.validate() = apply {

firebase-ai/src/main/kotlin/com/google/firebase/ai/TemplateImagenModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ import com.google.firebase.ai.type.PublicPreviewAPI
2727
import com.google.firebase.ai.type.RequestOptions
2828
import com.google.firebase.appcheck.interop.InteropAppCheckTokenProvider
2929
import com.google.firebase.auth.internal.InternalAuthProvider
30+
import kotlinx.serialization.json.Json
31+
import kotlinx.serialization.json.jsonObject
32+
import org.json.JSONObject
3033

3134
/**
3235
* Represents a generative model (like Imagen), capable of generating images based a template.
@@ -92,7 +95,9 @@ internal constructor(
9295
private fun constructTemplateGenerateImageRequest(
9396
inputs: Map<String, Any>
9497
): TemplateGenerateImageRequest {
95-
return TemplateGenerateImageRequest(inputs)
98+
return TemplateGenerateImageRequest(
99+
Json.parseToJsonElement(JSONObject(inputs).toString()).jsonObject
100+
)
96101
}
97102

98103
internal companion object {

firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ import com.google.firebase.ai.type.PublicPreviewAPI
2828
import com.google.firebase.ai.type.SafetySetting
2929
import com.google.firebase.ai.type.Tool
3030
import com.google.firebase.ai.type.ToolConfig
31-
import kotlinx.serialization.Contextual
3231
import kotlinx.serialization.ExperimentalSerializationApi
3332
import kotlinx.serialization.SerialName
3433
import kotlinx.serialization.Serializable
34+
import kotlinx.serialization.json.JsonObject
3535

3636
internal interface Request
3737

@@ -46,13 +46,9 @@ internal data class GenerateContentRequest(
4646
@SerialName("system_instruction") val systemInstruction: Content.Internal? = null,
4747
) : Request
4848

49-
@Serializable
50-
internal data class TemplateGenerateContentRequest(val inputs: Map<String, @Contextual Any>) :
51-
Request
49+
@Serializable internal data class TemplateGenerateContentRequest(val inputs: JsonObject) : Request
5250

53-
@Serializable
54-
internal data class TemplateGenerateImageRequest(val inputs: Map<String, @Contextual Any>) :
55-
Request
51+
@Serializable internal data class TemplateGenerateImageRequest(val inputs: JsonObject) : Request
5652

5753
@Serializable
5854
internal data class CountTokensRequest(

0 commit comments

Comments
 (0)