diff --git a/src/GenerativeAI.Microsoft/Extensions/MicrosoftExtensions.cs b/src/GenerativeAI.Microsoft/Extensions/MicrosoftExtensions.cs index 9088f73e..75468d47 100644 --- a/src/GenerativeAI.Microsoft/Extensions/MicrosoftExtensions.cs +++ b/src/GenerativeAI.Microsoft/Extensions/MicrosoftExtensions.cs @@ -44,18 +44,25 @@ where p is not null where p is not null select p).ToArray(), m.Role == ChatRole.Assistant ? Roles.Model : Roles.User)).ToList(); - request.Tools = options?.Tools?.OfType().Select(f => new Tool() + var functionDeclarations = options?.Tools?.OfType().Select(f => + new FunctionDeclaration() + { + Name = f.Name, + Description = f.Description, + Parameters = ParseFunctionParameters(f.JsonSchema), + } + ).ToList(); + + if (functionDeclarations != null && functionDeclarations.Count > 0) { - FunctionDeclarations = new() + request.Tools = new List() { - new FunctionDeclaration() + new Tool { - Name = f.Name, - Description = f.Description, - Parameters = ParseFunctionParameters(f.JsonSchema), + FunctionDeclarations = functionDeclarations.ToList() } - } - }).ToList()!; + }; + } return request; }