Skip to content

Commit 50b919b

Browse files
committed
add tool config
1 parent 445075b commit 50b919b

File tree

2 files changed

+36
-14
lines changed

2 files changed

+36
-14
lines changed

firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/LiveGenerativeModel.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import com.google.firebase.auth.internal.InternalAuthProvider
2222
import com.google.firebase.vertexai.common.APIController
2323
import com.google.firebase.vertexai.common.AppCheckHeaderProvider
2424
import com.google.firebase.vertexai.type.BidiGenerateContentClientMessage
25-
import com.google.firebase.vertexai.type.BidiGenerateContentSetup
2625
import com.google.firebase.vertexai.type.Content
2726
import com.google.firebase.vertexai.type.LiveGenerationConfig
2827
import com.google.firebase.vertexai.type.LiveSession
@@ -91,14 +90,16 @@ internal constructor(
9190
val client = HttpClient(OkHttp) { install(WebSockets) }
9291

9392
val bidiEndPoint = this.controller.getBidiEndpoint(location)
94-
val setup =
95-
BidiGenerateContentSetup(
96-
this.modelName,
97-
this.config?.toInternal(),
98-
this.tools?.map { it.toInternal() },
99-
this.systemInstruction?.toInternal()
100-
)
101-
val data: String = Json.encodeToString(BidiGenerateContentClientMessage(setup))
93+
val clientMessage =
94+
BidiGenerateContentClientMessage(
95+
this.modelName,
96+
this.config?.toInternal(),
97+
this.tools?.map { it.toInternal() },
98+
this.toolConfig?.toInternal(),
99+
this.systemInstruction?.toInternal()
100+
)
101+
.toInternal()
102+
val data: String = Json.encodeToString(clientMessage)
102103
val webSession = client.webSocketSession(bidiEndPoint)
103104
webSession.send(Frame.Text(data))
104105
var shouldReturn = false

firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/BidiGenerateContentSetup.kt

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,34 @@ package com.google.firebase.vertexai.type
22

33
import kotlinx.serialization.Serializable
44

5-
@Serializable
6-
internal data class BidiGenerateContentSetup(
5+
internal class BidiGenerateContentClientMessage(
76
val model: String,
87
val generationConfig: LiveGenerationConfig.Internal?,
98
val tools: List<Tool.Internal>?,
9+
val toolConfig: ToolConfig.Internal?,
1010
val systemInstruction: Content.Internal?
11-
)
11+
) {
1212

13-
@Serializable
14-
internal data class BidiGenerateContentClientMessage(val setup: BidiGenerateContentSetup)
13+
@Serializable
14+
internal class Internal(val setup: BidiGenerateContentSetup) {
15+
@Serializable
16+
internal data class BidiGenerateContentSetup(
17+
val model: String,
18+
val generationConfig: LiveGenerationConfig.Internal?,
19+
val tools: List<Tool.Internal>?,
20+
val toolConfig: ToolConfig.Internal?,
21+
val systemInstruction: Content.Internal?
22+
)
23+
}
24+
25+
fun toInternal() =
26+
Internal(
27+
Internal.BidiGenerateContentSetup(
28+
model,
29+
generationConfig,
30+
tools,
31+
toolConfig,
32+
systemInstruction
33+
)
34+
)
35+
}

0 commit comments

Comments
 (0)