From fd5cd5d7647dcfe725835e11e4dc67a6178bbff0 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 10:30:18 -0400 Subject: [PATCH 1/6] Add `totalBillableCharacters` to `CountTokensResponse` Also, make the fields optional. --- .../com/google/ai/client/generativeai/common/Response.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt index 6f0016ad..511f04bb 100644 --- a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt +++ b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt @@ -30,7 +30,8 @@ data class GenerateContentResponse( val usageMetadata: UsageMetadata? = null ) : Response -@Serializable data class CountTokensResponse(val totalTokens: Int) : Response +@Serializable +data class CountTokensResponse(val totalTokens: Int?, val totalBillableCharacters: Int?) : Response @Serializable data class GRpcErrorResponse(val error: GRpcError) : Response From 4ce36fb0dd650b19f8b27557bdca9732ce0a3eb6 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 10:38:25 -0400 Subject: [PATCH 2/6] Fix tests --- .../com/google/ai/client/generativeai/common/Response.kt | 5 ++++- .../ai/client/generativeai/common/APIControllerTests.kt | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt index 511f04bb..b6142c05 100644 --- a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt +++ b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt @@ -31,7 +31,10 @@ data class GenerateContentResponse( ) : Response @Serializable -data class CountTokensResponse(val totalTokens: Int?, val totalBillableCharacters: Int?) : Response +data class CountTokensResponse( + val totalTokens: Int? = null, + val totalBillableCharacters: Int? = null +) : Response @Serializable data class GRpcErrorResponse(val error: GRpcError) : Response diff --git a/common/src/test/java/com/google/ai/client/generativeai/common/APIControllerTests.kt b/common/src/test/java/com/google/ai/client/generativeai/common/APIControllerTests.kt index 7674a553..dfe806b4 100644 --- a/common/src/test/java/com/google/ai/client/generativeai/common/APIControllerTests.kt +++ b/common/src/test/java/com/google/ai/client/generativeai/common/APIControllerTests.kt @@ -143,7 +143,8 @@ internal class RequestFormatTests { @Test fun `countTokenRequest doesn't include the model name`() = doBlocking { - val response = JSON.encodeToString(CountTokensResponse(totalTokens = 10)) + val response = + JSON.encodeToString(CountTokensResponse(totalTokens = 10, totalBillableCharacters = 10)) val mockEngine = MockEngine { respond(response, HttpStatusCode.OK, headersOf(HttpHeaders.ContentType, "application/json")) } From 593d17739f36d99202635313e5cd75112e38c862 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 10:47:41 -0400 Subject: [PATCH 3/6] Update CountTokensResponse in generativeai --- .../google/ai/client/generativeai/type/CountTokensResponse.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt index a2d9255e..59a94c24 100644 --- a/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt +++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt @@ -21,6 +21,6 @@ package com.google.ai.client.generativeai.type * * @property totalTokens A count of the number of tokens in the input */ -class CountTokensResponse(val totalTokens: Int) { +class CountTokensResponse(val totalTokens: Int?) { operator fun component1() = totalTokens } From 831428b8f77ed676d0e05f74ac41c5eac6983cd8 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 10:52:14 -0400 Subject: [PATCH 4/6] Add changelog entry --- .changes/baseball-comfort-dock-appliance.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 .changes/baseball-comfort-dock-appliance.json diff --git a/.changes/baseball-comfort-dock-appliance.json b/.changes/baseball-comfort-dock-appliance.json new file mode 100644 index 00000000..697a0e89 --- /dev/null +++ b/.changes/baseball-comfort-dock-appliance.json @@ -0,0 +1 @@ +{"type":"MAJOR","changes":["Make totalTokens in CountTokensResponse nullable"]} From df5b9f3d998447005d754e982467243d4e6edd92 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 14:14:26 -0400 Subject: [PATCH 5/6] Revert totalTokens to non nullable As suggested in the review --- .../kotlin/com/google/ai/client/generativeai/common/Response.kt | 2 +- .../google/ai/client/generativeai/type/CountTokensResponse.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt index b8321bf7..eb017b1f 100644 --- a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt +++ b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt @@ -32,7 +32,7 @@ data class GenerateContentResponse( @Serializable data class CountTokensResponse( - val totalTokens: Int? = null, + val totalTokens: Int, val totalBillableCharacters: Int? = null ) : Response diff --git a/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt index 59a94c24..a2d9255e 100644 --- a/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt +++ b/generativeai/src/main/java/com/google/ai/client/generativeai/type/CountTokensResponse.kt @@ -21,6 +21,6 @@ package com.google.ai.client.generativeai.type * * @property totalTokens A count of the number of tokens in the input */ -class CountTokensResponse(val totalTokens: Int?) { +class CountTokensResponse(val totalTokens: Int) { operator fun component1() = totalTokens } From d1351605dd28d022c9cc18b27fc1a20ab4473222 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Wed, 3 Apr 2024 14:18:00 -0400 Subject: [PATCH 6/6] Fix format --- .../com/google/ai/client/generativeai/common/Response.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt index eb017b1f..ac7cec57 100644 --- a/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt +++ b/common/src/main/kotlin/com/google/ai/client/generativeai/common/Response.kt @@ -31,10 +31,8 @@ data class GenerateContentResponse( ) : Response @Serializable -data class CountTokensResponse( - val totalTokens: Int, - val totalBillableCharacters: Int? = null -) : Response +data class CountTokensResponse(val totalTokens: Int, val totalBillableCharacters: Int? = null) : + Response @Serializable data class GRpcErrorResponse(val error: GRpcError) : Response