diff --git a/dotnet/src/Connectors/Connectors.Google.UnitTests/GeminiPromptExecutionSettingsTests.cs b/dotnet/src/Connectors/Connectors.Google.UnitTests/GeminiPromptExecutionSettingsTests.cs index 2eb2500b1a2e..ec5319176f53 100644 --- a/dotnet/src/Connectors/Connectors.Google.UnitTests/GeminiPromptExecutionSettingsTests.cs +++ b/dotnet/src/Connectors/Connectors.Google.UnitTests/GeminiPromptExecutionSettingsTests.cs @@ -194,6 +194,7 @@ public void PromptExecutionSettingsCloneWorksAsExpected(string thinkingConfigJso string json = $$""" { "model_id": "gemini-pro", + "service_id": "gemini-service", "temperature": 0.7, "top_p": 0.7, "top_k": 25, @@ -207,23 +208,30 @@ public void PromptExecutionSettingsCloneWorksAsExpected(string thinkingConfigJso "threshold": "{{threshold.Label}}" } ], + "labels": { "env": "test", "team": "sk" }, + "cached_content": "projects/p/locations/l/cachedContents/c", "thinking_config": {{thinkingConfigJson}} } """; var executionSettings = JsonSerializer.Deserialize(json); + executionSettings!.FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(); // Act - var clone = executionSettings!.Clone() as GeminiPromptExecutionSettings; + var clone = executionSettings.Clone() as GeminiPromptExecutionSettings; // Assert Assert.NotNull(clone); Assert.Equal(executionSettings.ModelId, clone.ModelId); + Assert.Equal(executionSettings.ServiceId, clone.ServiceId); Assert.Equal(executionSettings.Temperature, clone.Temperature); Assert.Equivalent(executionSettings.ExtensionData, clone.ExtensionData); Assert.Equivalent(executionSettings.StopSequences, clone.StopSequences); Assert.Equivalent(executionSettings.SafetySettings, clone.SafetySettings); Assert.Equal(executionSettings.AudioTimestamp, clone.AudioTimestamp); Assert.Equivalent(executionSettings.ThinkingConfig, clone.ThinkingConfig); + Assert.Equivalent(executionSettings.Labels, clone.Labels); + Assert.Equal(executionSettings.CachedContent, clone.CachedContent); + Assert.Same(executionSettings.FunctionChoiceBehavior, clone.FunctionChoiceBehavior); } [Fact] diff --git a/dotnet/src/Connectors/Connectors.Google/GeminiPromptExecutionSettings.cs b/dotnet/src/Connectors/Connectors.Google/GeminiPromptExecutionSettings.cs index a9729f518899..15f37ac90ead 100644 --- a/dotnet/src/Connectors/Connectors.Google/GeminiPromptExecutionSettings.cs +++ b/dotnet/src/Connectors/Connectors.Google/GeminiPromptExecutionSettings.cs @@ -326,6 +326,8 @@ public override PromptExecutionSettings Clone() return new GeminiPromptExecutionSettings() { ModelId = this.ModelId, + ServiceId = this.ServiceId, + FunctionChoiceBehavior = this.FunctionChoiceBehavior, ExtensionData = this.ExtensionData is not null ? new Dictionary(this.ExtensionData) : null, Temperature = this.Temperature, TopP = this.TopP, @@ -338,6 +340,8 @@ public override PromptExecutionSettings Clone() AudioTimestamp = this.AudioTimestamp, ResponseMimeType = this.ResponseMimeType, ResponseSchema = this.ResponseSchema, + Labels = this.Labels is not null ? new Dictionary(this.Labels) : null, + CachedContent = this.CachedContent, ThinkingConfig = this.ThinkingConfig?.Clone() }; }