From faea6a2764ba43c44b08afe0acac19e277e02ce0 Mon Sep 17 00:00:00 2001 From: Rodrigo Lazo Paz Date: Tue, 16 Jul 2024 09:12:11 -0400 Subject: [PATCH] Formatting changes and changelog --- .../club-bite-carpenter-country.json | 1 + .../samples/controlled_generation.kt | 42 +++++++++---------- .../samples/java/controlled_generation.java | 1 - 3 files changed, 20 insertions(+), 24 deletions(-) create mode 100644 .changes/generativeai/club-bite-carpenter-country.json diff --git a/.changes/generativeai/club-bite-carpenter-country.json b/.changes/generativeai/club-bite-carpenter-country.json new file mode 100644 index 00000000..3edc63e3 --- /dev/null +++ b/.changes/generativeai/club-bite-carpenter-country.json @@ -0,0 +1 @@ +{"type":"MAJOR","changes":["Improve usability of the Schema type in Java"]} diff --git a/samples/src/main/java/com/google/ai/client/generative/samples/controlled_generation.kt b/samples/src/main/java/com/google/ai/client/generative/samples/controlled_generation.kt index 38df2a8f..cc5ac021 100644 --- a/samples/src/main/java/com/google/ai/client/generative/samples/controlled_generation.kt +++ b/samples/src/main/java/com/google/ai/client/generative/samples/controlled_generation.kt @@ -30,26 +30,6 @@ import com.google.ai.client.generativeai.type.generationConfig suspend fun json_controlled_generation() { // [START json_controlled_generation] - val jsonSchema = Schema( - name = "recipes", - description = "List of recipes", - type = FunctionType.ARRAY, - items = Schema( - name = "recipe", - description = "A recipe", - type = FunctionType.OBJECT, - properties = mapOf( - "recipeName" to Schema( - name = "recipeName", - description = "Name of the recipe", - type = FunctionType.STRING, - nullable = false - ), - ), - required = listOf("recipeName") - ), - ) - val generativeModel = GenerativeModel( // Specify a Gemini model appropriate for your use case @@ -58,13 +38,30 @@ suspend fun json_controlled_generation() { apiKey = BuildConfig.apiKey, generationConfig = generationConfig { responseMimeType = "application/json" - responseSchema = jsonSchema + responseSchema = Schema( + name = "recipes", + description = "List of recipes", + type = FunctionType.ARRAY, + items = Schema( + name = "recipe", + description = "A recipe", + type = FunctionType.OBJECT, + properties = mapOf( + "recipeName" to Schema( + name = "recipeName", + description = "Name of the recipe", + type = FunctionType.STRING, + nullable = false + ), + ), + required = listOf("recipeName") + ), + ) }) val prompt = "List a few popular cookie recipes." val response = generativeModel.generateContent(prompt) print(response.text) - // [END json_controlled_generation] } @@ -87,6 +84,5 @@ suspend fun json_no_schema() { """.trimIndent() val response = generativeModel.generateContent(prompt) print(response.text) - // [END json_no_schema] } diff --git a/samples/src/main/java/com/google/ai/client/generative/samples/java/controlled_generation.java b/samples/src/main/java/com/google/ai/client/generative/samples/java/controlled_generation.java index f3015553..17fb2889 100644 --- a/samples/src/main/java/com/google/ai/client/generative/samples/java/controlled_generation.java +++ b/samples/src/main/java/com/google/ai/client/generative/samples/java/controlled_generation.java @@ -39,7 +39,6 @@ class ControlledGeneration { void jsonControlledGeneration() { // [START json_controlled_generation] - Schema> schema = new Schema( /* name */ "recipes",