From 32f2f8dfaa687f409a2e84b5ed72d85506d9ec0c Mon Sep 17 00:00:00 2001 From: Roger Barreto <19890735+RogerBarreto@users.noreply.github.com> Date: Wed, 28 May 2025 19:42:58 +0100 Subject: [PATCH 1/4] Fix bug for executing function calling --- extensions/AWSSDK.Extensions.sln | 6 +++++ .../BedrockChatClient.cs | 27 +++++++++++++------ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/extensions/AWSSDK.Extensions.sln b/extensions/AWSSDK.Extensions.sln index 3b45806eb294..f28531d55598 100644 --- a/extensions/AWSSDK.Extensions.sln +++ b/extensions/AWSSDK.Extensions.sln @@ -74,6 +74,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDK.CommonTest", "..\sdk EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDK.S3.NetFramework", "..\sdk\src\Services\S3\AWSSDK.S3.NetFramework.csproj", "{1A313326-988F-4FF2-992E-6D7E50DCF598}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDKExtensionsIntegrationTests", "C:\Users\rbarreto\source\repos\AWSSDKExtensionsIntegrationTests\AWSSDKExtensionsIntegrationTests.csproj", "{87312699-8C48-488B-80DC-0FF8FB4705E6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -204,6 +206,10 @@ Global {1A313326-988F-4FF2-992E-6D7E50DCF598}.Debug|Any CPU.Build.0 = Debug|Any CPU {1A313326-988F-4FF2-992E-6D7E50DCF598}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A313326-988F-4FF2-992E-6D7E50DCF598}.Release|Any CPU.Build.0 = Release|Any CPU + {87312699-8C48-488B-80DC-0FF8FB4705E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87312699-8C48-488B-80DC-0FF8FB4705E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87312699-8C48-488B-80DC-0FF8FB4705E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87312699-8C48-488B-80DC-0FF8FB4705E6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs index 86dfdac81149..0a4dd2ad3199 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs @@ -499,6 +499,7 @@ private static List CreateContents(ChatMessage message) { ToolUseId = frc.CallId, Content = [new() { Json = new Document(new Dictionary() { ["result"] = result }) }], + }, }); break; @@ -592,7 +593,7 @@ private static string GetMimeType(VideoFormat? format) => /// Converts a to a . private static Document DictionaryToDocument(IDictionary? arguments) { - Document inputs = default; + Document inputs = new Document(new Dictionary()); if (arguments is not null) { foreach (KeyValuePair argument in arguments) @@ -704,20 +705,30 @@ private static Document ToDocument(JsonElement json) } } + var schemaDictionary = new Dictionary() + { + ["type"] = new Document("object"), + }; + + if (inputs != default) + { + schemaDictionary["properties"] = inputs; + } + + if (required.Count > 0) + { + schemaDictionary["required"] = new Document(required); + } + return new Tool() { ToolSpec = new ToolSpecification() { Name = f.Name, Description = !string.IsNullOrEmpty(f.Description) ? f.Description : f.Name, - InputSchema = new() + InputSchema = new ToolInputSchema() { - Json = new(new Dictionary() - { - ["type"] = new Document("object"), - ["properties"] = inputs, - ["required"] = new Document(required), - }) + Json = new(schemaDictionary) }, }, }; From 3f094053439fd3d41a62fc5cb8c1510be2b28aef Mon Sep 17 00:00:00 2001 From: Roger Barreto <19890735+RogerBarreto@users.noreply.github.com> Date: Wed, 28 May 2025 19:44:36 +0100 Subject: [PATCH 2/4] Revert solution update --- extensions/AWSSDK.Extensions.sln | 6 ------ 1 file changed, 6 deletions(-) diff --git a/extensions/AWSSDK.Extensions.sln b/extensions/AWSSDK.Extensions.sln index f28531d55598..3b45806eb294 100644 --- a/extensions/AWSSDK.Extensions.sln +++ b/extensions/AWSSDK.Extensions.sln @@ -74,8 +74,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDK.CommonTest", "..\sdk EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDK.S3.NetFramework", "..\sdk\src\Services\S3\AWSSDK.S3.NetFramework.csproj", "{1A313326-988F-4FF2-992E-6D7E50DCF598}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AWSSDKExtensionsIntegrationTests", "C:\Users\rbarreto\source\repos\AWSSDKExtensionsIntegrationTests\AWSSDKExtensionsIntegrationTests.csproj", "{87312699-8C48-488B-80DC-0FF8FB4705E6}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -206,10 +204,6 @@ Global {1A313326-988F-4FF2-992E-6D7E50DCF598}.Debug|Any CPU.Build.0 = Debug|Any CPU {1A313326-988F-4FF2-992E-6D7E50DCF598}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A313326-988F-4FF2-992E-6D7E50DCF598}.Release|Any CPU.Build.0 = Release|Any CPU - {87312699-8C48-488B-80DC-0FF8FB4705E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87312699-8C48-488B-80DC-0FF8FB4705E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87312699-8C48-488B-80DC-0FF8FB4705E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87312699-8C48-488B-80DC-0FF8FB4705E6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 75fd1a4425bcd947da8ef725af14309c253db20b Mon Sep 17 00:00:00 2001 From: Roger Barreto <19890735+RogerBarreto@users.noreply.github.com> Date: Thu, 29 May 2025 21:21:52 +0100 Subject: [PATCH 3/4] Address PR Feedback --- .../src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs index 0a4dd2ad3199..a47b708ea9db 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/BedrockChatClient.cs @@ -499,7 +499,6 @@ private static List CreateContents(ChatMessage message) { ToolUseId = frc.CallId, Content = [new() { Json = new Document(new Dictionary() { ["result"] = result }) }], - }, }); break; @@ -726,7 +725,7 @@ private static Document ToDocument(JsonElement json) { Name = f.Name, Description = !string.IsNullOrEmpty(f.Description) ? f.Description : f.Name, - InputSchema = new ToolInputSchema() + InputSchema = new() { Json = new(schemaDictionary) }, From ce09421d71d6d0d10042b3f9cafd36b18da8d7b0 Mon Sep 17 00:00:00 2001 From: Daniel Pinheiro Date: Tue, 3 Jun 2025 11:16:33 -0400 Subject: [PATCH 4/4] chore: Update versioning for release --- .../AWSSDK.Extensions.Bedrock.MEAI.nuspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec index 66f6c9157c99..556bec0a8dd0 100644 --- a/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec +++ b/extensions/src/AWSSDK.Extensions.Bedrock.MEAI/AWSSDK.Extensions.Bedrock.MEAI.nuspec @@ -3,7 +3,7 @@ AWSSDK.Extensions.Bedrock.MEAI AWSSDK - Bedrock integration with Microsoft.Extensions.AI. - 4.0.1.0 + 4.0.1.1 Amazon Web Services Implementations of Microsoft.Extensions.AI's abstractions for Bedrock. en-US