Skip to content

Commit

Permalink
Add missing optIn declarations to reduce compilation noise
Browse files Browse the repository at this point in the history
Part of the serialization API we use requires optIn, and without the
correct declarations we get warnings printed when compiling the code.
  • Loading branch information
rlazo committed Feb 22, 2025
1 parent e37be5a commit 335a8c6
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import com.google.firebase.vertexai.type.content
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.map
import kotlinx.serialization.ExperimentalSerializationApi

/**
* Represents a multimodal model (like Gemini), capable of generating content based on various input
Expand Down Expand Up @@ -199,6 +200,7 @@ internal constructor(
return countTokens(content { image(prompt) })
}

@OptIn(ExperimentalSerializationApi::class)
private fun constructRequest(vararg prompt: Content) =
GenerateContentRequest(
modelName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/

@file:OptIn(ExperimentalSerializationApi::class)
package com.google.firebase.vertexai.common

import com.google.firebase.vertexai.common.util.fullModelName
Expand All @@ -24,6 +24,7 @@ import com.google.firebase.vertexai.type.PublicPreviewAPI
import com.google.firebase.vertexai.type.SafetySetting
import com.google.firebase.vertexai.type.Tool
import com.google.firebase.vertexai.type.ToolConfig
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand All @@ -49,14 +50,6 @@ internal data class CountTokensRequest(
@SerialName("system_instruction") val systemInstruction: Content.Internal? = null,
) : Request {
companion object {
fun forGenAI(generateContentRequest: GenerateContentRequest) =
CountTokensRequest(
generateContentRequest =
generateContentRequest.model?.let {
generateContentRequest.copy(model = fullModelName(it))
}
?: generateContentRequest
)

fun forVertexAI(generateContentRequest: GenerateContentRequest) =
CountTokensRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* limitations under the License.
*/

@file:OptIn(ExperimentalSerializationApi::class)

package com.google.firebase.vertexai.type

import com.google.firebase.vertexai.common.util.FirstOrdinalSerializer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ constructor(public val role: String? = "user", public val parts: List<Part>) {
public fun build(): Content = Content(role, parts)
}

@OptIn(ExperimentalSerializationApi::class)
internal fun toInternal() = Internal(this.role ?: "user", this.parts.map { it.toInternal() })

@ExperimentalSerializationApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import io.ktor.http.content.TextContent
import io.ktor.http.headersOf
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.withTimeout
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.encodeToString
import org.junit.Test

Expand Down Expand Up @@ -127,6 +128,7 @@ internal class GenerativeModelTesting {
exception.message shouldContain "location"
}

@OptIn(ExperimentalSerializationApi::class)
private fun generateContentResponseAsJsonString(text: String): String {
return JSON.encodeToString(
GenerateContentResponse.Internal(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.delay
import kotlinx.coroutines.withTimeout
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.JsonObject
import org.junit.Test
Expand Down Expand Up @@ -84,6 +85,7 @@ internal class APIControllerTests {
}
}

@OptIn(ExperimentalSerializationApi::class)
internal class RequestFormatTests {
@Test
fun `using default endpoint`() = doBlocking {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.withTimeout
import kotlinx.serialization.ExperimentalSerializationApi
import org.junit.Test

@OptIn(ExperimentalSerializationApi::class)
internal class StreamingSnapshotTests {
private val testTimeout = 5.seconds

Expand Down

0 comments on commit 335a8c6

Please sign in to comment.