diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Contents/CitationAnnotation.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Contents/CitationAnnotation.cs index 5d1d2f88b30..0f1925f057f 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Contents/CitationAnnotation.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Contents/CitationAnnotation.cs @@ -22,7 +22,7 @@ public CitationAnnotation() /// Gets or sets the title or name of the source. /// /// - /// This could be the title of a document, a title from a web page, a name of a file, or similarly descriptive text. + /// This value could be the title of a document, the title from a web page, the name of a file, or similarly descriptive text. /// public string? Title { get; set; } @@ -34,7 +34,7 @@ public CitationAnnotation() /// Gets or sets a source identifier associated with the annotation. /// /// This is a provider-specific identifier that can be used to reference the source material by - /// an ID. This may be a document ID, or a file ID, or some other identifier for the source material + /// an ID. This might be a document ID, a file ID, or some other identifier for the source material /// that can be used to uniquely identify it with the provider. /// public string? FileId { get; set; } diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionDeclaration.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionDeclaration.cs index 74e1242023a..911f165f97b 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionDeclaration.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionDeclaration.cs @@ -11,9 +11,9 @@ namespace Microsoft.Extensions.AI; /// Represents a function that can be described to an AI service. /// /// is the base class for , which -/// adds the ability to invoke the function. Components may type test instances +/// adds the ability to invoke the function. Components can type test instances /// for to determine whether they can be described as functions, -/// and may type test for to determine whether they can be invoked. +/// and can type test for to determine whether they can be invoked. /// public abstract class AIFunctionDeclaration : AITool { @@ -36,7 +36,7 @@ protected AIFunctionDeclaration() /// "properties": { /// "a" : { "type": "number" }, /// "b" : { "type": "number", "default": 1 } - /// }, + /// }, /// "required" : ["a"] /// } /// diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs index a613f6b693d..aab33ec19c4 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs @@ -55,7 +55,7 @@ public static partial class AIFunctionFactory /// /// parameters are automatically bound to the passed into /// the invocation via 's parameter. The parameter is - /// not included in the generated JSON schema. The behavior of parameters may not be overridden. + /// not included in the generated JSON schema. The behavior of parameters can't be overridden. /// /// /// @@ -64,7 +64,7 @@ public static partial class AIFunctionFactory /// and are not included in the JSON schema. If the parameter is optional, such that a default value is provided, /// is allowed to be ; otherwise, /// must be non-, or else the invocation will fail with an exception due to the required nature of the parameter. - /// The handling of parameters may be overridden via . + /// The handling of parameters can be overridden via . /// /// /// @@ -72,19 +72,19 @@ public static partial class AIFunctionFactory /// By default, parameters are bound directly to instance /// passed into and are not included in the JSON schema. If the /// instance passed to is , the implementation - /// manufactures an empty instance, such that parameters of type may always be satisfied, whether - /// optional or not. The handling of parameters may be overridden via + /// manufactures an empty instance, such that parameters of type can always be satisfied, whether + /// optional or not. The handling of parameters can be overridden via /// . /// /// /// /// All other parameter types are, by default, bound from the dictionary passed into - /// and are included in the generated JSON schema. This may be overridden by the provided + /// and are included in the generated JSON schema. This can be overridden by the provided /// via the parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the /// generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the - /// dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed + /// dictionary will result in an exception being thrown). Loosely-typed additional context information can be passed /// into via the 's dictionary; the default - /// binding ignores this collection, but a custom binding supplied via may choose to + /// binding ignores this collection, but a custom binding supplied via can choose to /// source arguments from this data. /// /// @@ -97,13 +97,13 @@ public static partial class AIFunctionFactory /// /// In general, the data supplied via an 's dictionary is supplied from an AI service and should be considered /// unvalidated and untrusted. To provide validated and trusted data to the invocation of , consider having - /// point to an instance method on an instance configured to hold the appropriate state. An parameter may also be + /// point to an instance method on an instance configured to hold the appropriate state. An parameter can also be /// used to resolve services from a dependency injection container. /// /// /// By default, return values are serialized to using 's /// if provided, or else using . - /// Handling of return values may be overridden via . + /// Handling of return values can be overridden via . /// /// /// is . @@ -153,7 +153,7 @@ public static AIFunction Create(Delegate method, AIFunctionFactoryOptions? optio /// By default, parameters are bound directly to instance /// passed into and are not included in the JSON schema. If the /// instance passed to is , the implementation - /// manufactures an empty instance, such that parameters of type may always be satisfied, whether + /// manufactures an empty instance, such that parameters of type can always be satisfied, whether /// optional or not. /// /// @@ -171,7 +171,7 @@ public static AIFunction Create(Delegate method, AIFunctionFactoryOptions? optio /// /// In general, the data supplied via an 's dictionary is supplied from an AI service and should be considered /// unvalidated and untrusted. To provide validated and trusted data to the invocation of , consider having - /// point to an instance method on an instance configured to hold the appropriate state. An parameter may also be + /// point to an instance method on an instance configured to hold the appropriate state. An parameter can also be /// used to resolve services from a dependency injection container. /// /// @@ -218,7 +218,7 @@ public static AIFunction Create(Delegate method, string? name = null, string? de /// /// parameters are automatically bound to the passed into /// the invocation via 's parameter. The parameter is - /// not included in the generated JSON schema. The behavior of parameters may not be overridden. + /// not included in the generated JSON schema. The behavior of parameters can't be overridden. /// /// /// @@ -227,7 +227,7 @@ public static AIFunction Create(Delegate method, string? name = null, string? de /// and are not included in the JSON schema. If the parameter is optional, such that a default value is provided, /// is allowed to be ; otherwise, /// must be non-, or else the invocation will fail with an exception due to the required nature of the parameter. - /// The handling of parameters may be overridden via . + /// The handling of parameters can be overridden via . /// /// /// @@ -235,19 +235,19 @@ public static AIFunction Create(Delegate method, string? name = null, string? de /// By default, parameters are bound directly to instance /// passed into and are not included in the JSON schema. If the /// instance passed to is , the implementation - /// manufactures an empty instance, such that parameters of type may always be satisfied, whether - /// optional or not. The handling of parameters may be overridden via + /// manufactures an empty instance, such that parameters of type can always be satisfied, whether + /// optional or not. The handling of parameters can be overridden via /// . /// /// /// /// All other parameter types are, by default, bound from the dictionary passed into - /// and are included in the generated JSON schema. This may be overridden by the provided + /// and are included in the generated JSON schema. This can be overridden by the provided /// via the parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the /// generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the - /// dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed + /// dictionary will result in an exception being thrown). Loosely typed additional context information can be passed /// into via the 's dictionary; the default - /// binding ignores this collection, but a custom binding supplied via may choose to + /// binding ignores this collection, but a custom binding supplied via can choose to /// source arguments from this data. /// /// @@ -260,13 +260,13 @@ public static AIFunction Create(Delegate method, string? name = null, string? de /// /// In general, the data supplied via an 's dictionary is supplied from an AI service and should be considered /// unvalidated and untrusted. To provide validated and trusted data to the invocation of , consider having - /// point to an instance method on an instance configured to hold the appropriate state. An parameter may also be + /// point to an instance method on an instance configured to hold the appropriate state. An parameter can also be /// used to resolve services from a dependency injection container. /// /// /// By default, return values are serialized to using 's /// if provided, or else using . - /// Handling of return values may be overridden via . + /// Handling of return values can be overridden via . /// /// /// is . @@ -326,7 +326,7 @@ public static AIFunction Create(MethodInfo method, object? target, AIFunctionFac /// By default, parameters are bound directly to instance /// passed into and are not included in the JSON schema. If the /// instance passed to is , the implementation - /// manufactures an empty instance, such that parameters of type may always be satisfied, whether + /// manufactures an empty instance, such that parameters of type can always be satisfied, whether /// optional or not. /// /// @@ -344,7 +344,7 @@ public static AIFunction Create(MethodInfo method, object? target, AIFunctionFac /// /// In general, the data supplied via an 's dictionary is supplied from an AI service and should be considered /// unvalidated and untrusted. To provide validated and trusted data to the invocation of , consider having - /// point to an instance method on an instance configured to hold the appropriate state. An parameter may also be + /// point to an instance method on an instance configured to hold the appropriate state. An parameter can also be /// used to resolve services from a dependency injection container. /// /// @@ -404,7 +404,7 @@ public static AIFunction Create(MethodInfo method, object? target, string? name /// /// parameters are automatically bound to the passed into /// the invocation via 's parameter. The parameter is - /// not included in the generated JSON schema. The behavior of parameters may not be overridden. + /// not included in the generated JSON schema. The behavior of parameters can't be overridden. /// /// /// @@ -413,7 +413,7 @@ public static AIFunction Create(MethodInfo method, object? target, string? name /// and are not included in the JSON schema. If the parameter is optional, such that a default value is provided, /// is allowed to be ; otherwise, /// must be non-, or else the invocation will fail with an exception due to the required nature of the parameter. - /// The handling of parameters may be overridden via . + /// The handling of parameters can be overridden via . /// /// /// @@ -421,19 +421,19 @@ public static AIFunction Create(MethodInfo method, object? target, string? name /// By default, parameters are bound directly to instance /// passed into and are not included in the JSON schema. If the /// instance passed to is , the implementation - /// manufactures an empty instance, such that parameters of type may always be satisfied, whether - /// optional or not. The handling of parameters may be overridden via + /// manufactures an empty instance, such that parameters of type can always be satisfied, whether + /// optional or not. The handling of parameters can be overridden via /// . /// /// /// /// All other parameter types are, by default, bound from the dictionary passed into - /// and are included in the generated JSON schema. This may be overridden by the provided + /// and are included in the generated JSON schema. This can be overridden by the provided /// via the parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the /// generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the - /// dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed + /// dictionary will result in an exception being thrown). Loosely-typed additional context information can be passed /// into via the 's dictionary; the default - /// binding ignores this collection, but a custom binding supplied via may choose to + /// binding ignores this collection, but a custom binding supplied via can choose to /// source arguments from this data. /// /// @@ -446,13 +446,13 @@ public static AIFunction Create(MethodInfo method, object? target, string? name /// /// In general, the data supplied via an 's dictionary is supplied from an AI service and should be considered /// unvalidated and untrusted. To provide validated and trusted data to the invocation of , the instance constructed - /// for each invocation may contain that data in it, such that it's then available to as instance data. - /// An parameter may also be used to resolve services from a dependency injection container. + /// for each invocation can contain that data in it, such that it's then available to as instance data. + /// An parameter can also be used to resolve services from a dependency injection container. /// /// /// By default, return values are serialized to using 's /// if provided, or else using . - /// Handling of return values may be overridden via . + /// Handling of return values can be overridden via . /// /// /// is . @@ -477,7 +477,7 @@ public static AIFunction Create( /// /// creates an that can be used to describe a function /// but not invoke it. To create an invocable , use Create. A non-invocable - /// may also be created from an invocable using that function's method. + /// can also be created from an invocable using that function's method. /// public static AIFunctionDeclaration CreateDeclaration( string name, diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/HostedMcpServerToolApprovalMode.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/HostedMcpServerToolApprovalMode.cs index 47c3e3e48db..9bc1a7e6423 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/HostedMcpServerToolApprovalMode.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/HostedMcpServerToolApprovalMode.cs @@ -40,8 +40,8 @@ private protected HostedMcpServerToolApprovalMode() /// /// Instantiates a that specifies approval behavior for individual tool names. /// - /// The list of tools names that always require approval. - /// The list of tools names that never require approval. + /// The list of tool names that always require approval. + /// The list of tool names that never require approval. /// An instance of for the specified tool names. public static HostedMcpServerToolRequireSpecificApprovalMode RequireSpecific(IList? alwaysRequireApprovalToolNames, IList? neverRequireApprovalToolNames) => new(alwaysRequireApprovalToolNames, neverRequireApprovalToolNames); diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationOptions.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationOptions.cs index f68aebd5b06..3931173acfc 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationOptions.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationOptions.cs @@ -21,7 +21,7 @@ public class ImageGenerationOptions /// Gets or sets the size of the generated image. /// /// - /// If a provider only supports fixed sizes the closest supported size will be used. + /// If a provider only supports fixed sizes, the closest supported size is used. /// public Size? ImageSize { get; set; } @@ -39,16 +39,16 @@ public class ImageGenerationOptions /// Gets or sets a callback responsible for creating the raw representation of the image generation options from an underlying implementation. /// /// - /// The underlying implementation may have its own representation of options. + /// The underlying implementation can have its own representation of options. /// When is invoked with an , - /// that implementation may convert the provided options into its own representation in order to use it while performing + /// that implementation can convert the provided options into its own representation in order to use it while performing /// the operation. For situations where a consumer knows which concrete is being used - /// and how it represents options, a new instance of that implementation-specific options type may be returned by this - /// callback, for the implementation to use instead of creating a new instance. - /// Such implementations may mutate the supplied options instance further based on other settings supplied on this + /// and how it represents options, a new instance of that implementation-specific options type can be returned by this + /// callback for the implementation to use instead of creating a new instance. + /// Such implementations might mutate the supplied options instance further based on other settings supplied on this /// instance or from other inputs, therefore, it is strongly recommended to not /// return shared instances and instead make the callback return a new instance on each call. - /// This is typically used to set an implementation-specific setting that isn't otherwise exposed from the strongly-typed + /// This is typically used to set an implementation-specific setting that isn't otherwise exposed from the strongly typed /// properties on . /// [JsonIgnore] @@ -81,7 +81,7 @@ public virtual ImageGenerationOptions Clone() /// Represents the requested response format of the generated image. /// /// -/// Not all implementations support all response formats and this value may be ignored by the implementation if not supported. +/// Not all implementations support all response formats and this value might be ignored by the implementation if not supported. /// [Experimental("MEAI001")] public enum ImageGenerationResponseFormat diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationResponse.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationResponse.cs index 22a6a7f0e12..40011821293 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationResponse.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGenerationResponse.cs @@ -39,10 +39,12 @@ public ImageGenerationResponse(IList? contents) public object? RawRepresentation { get; set; } /// - /// Gets or sets the generated content items. Content will typically be DataContent for - /// images streamed from the generator or UriContent for remotely hosted images, but may also - /// be provider specific content types that represent the generated images. + /// Gets or sets the generated content items. /// + /// + /// Content is typically for images streamed from the generator, or for remotely hosted images, but + /// can also be provider-specific content types that represent the generated images. + /// [AllowNull] public IList Contents { diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGeneratorExtensions.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGeneratorExtensions.cs index 93de115c0ec..fe976231635 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGeneratorExtensions.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Image/ImageGeneratorExtensions.cs @@ -11,7 +11,7 @@ namespace Microsoft.Extensions.AI; -/// Extensions for . +/// Provides extension methods for . [Experimental("MEAI001")] public static class ImageGeneratorExtensions { @@ -102,7 +102,7 @@ public static TService GetRequiredService(this IImageGenerator generat /// The prompt to guide the image generation. /// The image generation options to configure the request. /// The to monitor for cancellation requests. The default is . - /// or are . + /// or is . /// The images generated by the generator. public static Task GenerateImagesAsync( this IImageGenerator generator, @@ -124,7 +124,7 @@ public static Task GenerateImagesAsync( /// The prompt to guide the image editing. /// The image generation options to configure the request. /// The to monitor for cancellation requests. The default is . - /// , , or are . + /// , , or is . /// The images generated by the generator. public static Task EditImagesAsync( this IImageGenerator generator, @@ -148,7 +148,7 @@ public static Task EditImagesAsync( /// The prompt to guide the image generation. /// The image generation options to configure the request. /// The to monitor for cancellation requests. The default is . - /// , , or are . + /// , , or is . /// The images generated by the generator. public static Task EditImageAsync( this IImageGenerator generator, @@ -174,7 +174,7 @@ public static Task EditImageAsync( /// The image generation options to configure the request. /// The to monitor for cancellation requests. The default is . /// - /// , , or are . + /// , , or is . /// /// The images generated by the generator. public static Task EditImageAsync( diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedFileSearchTool.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedFileSearchTool.cs index 9400efc000f..b524ca5676c 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedFileSearchTool.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedFileSearchTool.cs @@ -19,9 +19,9 @@ public HostedFileSearchTool() /// Gets or sets a collection of to be used as input to the file search tool. /// - /// If no explicit inputs are provided, the service will determine what inputs should be searched. Different services - /// support different kinds of inputs, e.g. some may respect using provider-specific file IDs, - /// others may support binary data uploaded as part of the request in , while others may support + /// If no explicit inputs are provided, the service determines what inputs should be searched. Different services + /// support different kinds of inputs, for example, some might respect using provider-specific file IDs, + /// others might support binary data uploaded as part of the request in , and others might support /// content in a hosted vector store and represented by a . /// public IList? Inputs { get; set; } diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedMcpServerTool.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedMcpServerTool.cs index 54e760c78dd..b5ed4938a45 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedMcpServerTool.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Tools/HostedMcpServerTool.cs @@ -67,11 +67,11 @@ public HostedMcpServerTool(string serverName, Uri url) /// /// /// - /// You can set this property to to require approval for all tool calls, + /// You can set this property to to require approval for all tool calls, /// or to to never require approval. /// /// - /// The default value is , which some providers may treat the same as . + /// The default value is , which some providers might treat the same as . /// /// /// The underlying provider is not guaranteed to support or honor the approval mode. diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Utilities/AIJsonSchemaTransformCache.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Utilities/AIJsonSchemaTransformCache.cs index 198fd33a9d4..2e3ac758c2f 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Utilities/AIJsonSchemaTransformCache.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Utilities/AIJsonSchemaTransformCache.cs @@ -19,7 +19,7 @@ namespace Microsoft.Extensions.AI; /// implementations that enforce vendor-specific restrictions on what constitutes a valid JSON schema for a given function or response format. /// /// -/// It is recommended implementations with schema transformation requirements should create a single static instance of this cache. +/// It is recommended implementations with schema transformation requirements create a single static instance of this cache. /// /// public sealed class AIJsonSchemaTransformCache @@ -56,7 +56,7 @@ public AIJsonSchemaTransformCache(AIJsonSchemaTransformOptions transformOptions) /// /// Gets or creates a transformed JSON schema for the specified instance. /// - /// The function whose JSON schema we want to transform. + /// The function whose JSON schema is to be transformed. /// The transformed JSON schema corresponding to . [EditorBrowsable(EditorBrowsableState.Never)] // maintained for binary compat; functionality for AIFunction is satisfied by AIFunctionDeclaration overload public JsonElement GetOrCreateTransformedSchema(AIFunction function) => @@ -65,7 +65,7 @@ public JsonElement GetOrCreateTransformedSchema(AIFunction function) => /// /// Gets or creates a transformed JSON schema for the specified instance. /// - /// The function whose JSON schema we want to transform. + /// The function whose JSON schema is to be transformed. /// The transformed JSON schema corresponding to . public JsonElement GetOrCreateTransformedSchema(AIFunctionDeclaration function) { @@ -76,7 +76,7 @@ public JsonElement GetOrCreateTransformedSchema(AIFunctionDeclaration function) /// /// Gets or creates a transformed JSON schema for the specified instance. /// - /// The response format whose JSON schema we want to transform. + /// The response format whose JSON schema is to be transformed. /// The transformed JSON schema corresponding to . public JsonElement? GetOrCreateTransformedSchema(ChatResponseFormatJson responseFormat) { diff --git a/src/Libraries/Microsoft.Extensions.AI.Evaluation.Safety/ContentSafetyServiceConfiguration.cs b/src/Libraries/Microsoft.Extensions.AI.Evaluation.Safety/ContentSafetyServiceConfiguration.cs index 06d4a045ced..56c6f3cc0f0 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Evaluation.Safety/ContentSafetyServiceConfiguration.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Evaluation.Safety/ContentSafetyServiceConfiguration.cs @@ -15,18 +15,18 @@ namespace Microsoft.Extensions.AI.Evaluation.Safety; /// -/// Specifies configuration parameters such as the Azure AI Foundry project that should be used, and the credentials +/// Specifies configuration parameters, such as the Azure AI Foundry project and the credentials /// that should be used, when a communicates with the Azure AI Foundry Evaluation /// service to perform evaluations. /// /// /// -/// Note that Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also -/// known simply as Foundry projects). See https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/create-projects. +/// Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also +/// known simply as Foundry projects). See Create a project for Azure AI Foundry. /// /// -/// Hub-based projects are configured by specifying the , the -/// , and the for the project. Non-Hub-based projects, on the +/// Hub-based projects are configured by specifying the , +/// , and for the project. Non-Hub-based projects, on the /// other hand, are configured by specifying only the for the project. Use the appropriate /// constructor overload to initialize based on the kind of project you /// are working with. @@ -116,9 +116,8 @@ public sealed class ContentSafetyServiceConfiguration /// /// /// - /// Note that Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also - /// known simply as Foundry projects). See - /// https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/create-projects. + /// Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also + /// known simply as Foundry projects). See Create a project for Azure AI Foundry. /// /// /// Use this constructor overload if you are working with a Hub-based project. @@ -161,9 +160,8 @@ public ContentSafetyServiceConfiguration( /// /// /// - /// Note that Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also - /// known simply as Foundry projects). See - /// https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/create-projects. + /// Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also + /// known simply as Foundry projects). See Create a project for Azure AI Foundry. /// /// /// Use this constructor overload if you are working with a non-Hub-based project. @@ -202,9 +200,8 @@ public ContentSafetyServiceConfiguration( /// /// /// - /// Note that Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also - /// known simply as Foundry projects). See - /// https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/create-projects. + /// Azure AI Foundry supports two kinds of projects - Hub-based projects and non-Hub-based projects (also + /// known simply as Foundry projects). See Create a project for Azure AI Foundry. /// /// /// Use this constructor overload if you are working with a non-Hub-based project. diff --git a/src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs b/src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs index e907078d535..a9e931af111 100644 --- a/src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs +++ b/src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs @@ -208,7 +208,7 @@ public int MaximumIterationsPerRequest /// When function invocations fail with an exception, the /// continues to make requests to the inner client, optionally supplying exception information (as /// controlled by ). This allows the to - /// recover from errors by trying other function parameters that may succeed. + /// recover from errors by trying other function parameters that might succeed. /// /// /// However, in case function invocations continue to produce exceptions, this property can be used to @@ -235,32 +235,34 @@ public int MaximumConsecutiveErrorsPerRequest /// These will not impact the requests sent by the , which will pass through the /// unmodified. However, if the inner client requests the invocation of a tool /// that was not in , this collection will also be consulted - /// to look for a corresponding tool to invoke. This is useful when the service may have been pre-configured to be aware + /// to look for a corresponding tool to invoke. This is useful when the service might have been preconfigured to be aware /// of certain tools that aren't also sent on each individual request. /// public IList? AdditionalTools { get; set; } /// Gets or sets a value indicating whether a request to call an unknown function should terminate the function calling loop. + /// + /// to terminate the function calling loop and return the response if a request to call a tool + /// that isn't available to the is received; to create and send a + /// function result message to the inner client stating that the tool couldn't be found. The default is . + /// /// /// /// When , call requests to any tools that aren't available to the /// will result in a response message automatically being created and returned to the inner client stating that the tool couldn't be - /// found; this can help in cases where a model hallucinates a function, but it's problematic if the model has been made aware + /// found. This behavior can help in cases where a model hallucinates a function, but it's problematic if the model has been made aware /// of the existence of tools outside of the normal mechanisms, and requests one of those. can be used - /// to help with that, but if instead the consumer wants to know about all function call requests that the client can't handle, - /// can be set to , and upon receiving a request to call a function + /// to help with that. But if instead the consumer wants to know about all function call requests that the client can't handle, + /// can be set to . Upon receiving a request to call a function /// that the doesn't know about, it will terminate the function calling loop and return /// the response, leaving the handling of the function call requests to the consumer of the client. /// /// - /// Note that s that the is aware of (e.g. because they're in - /// or ) but that aren't are not considered + /// s that the is aware of (for example, because they're in + /// or ) but that aren't s aren't considered /// unknown, just not invocable. Any requests to a non-invocable tool will also result in the function calling loop terminating, /// regardless of . /// - /// - /// This defaults to . - /// /// public bool TerminateOnUnknownCalls { get; set; } diff --git a/src/Libraries/Microsoft.Extensions.AI/Image/ImageGeneratorBuilderServiceCollectionExtensions.cs b/src/Libraries/Microsoft.Extensions.AI/Image/ImageGeneratorBuilderServiceCollectionExtensions.cs index cec943da309..ec19252a319 100644 --- a/src/Libraries/Microsoft.Extensions.AI/Image/ImageGeneratorBuilderServiceCollectionExtensions.cs +++ b/src/Libraries/Microsoft.Extensions.AI/Image/ImageGeneratorBuilderServiceCollectionExtensions.cs @@ -16,7 +16,7 @@ public static class ImageGeneratorBuilderServiceCollectionExtensions /// The to which the generator should be added. /// The inner that represents the underlying backend. /// The service lifetime for the generator. Defaults to . - /// A that can be used to build a pipeline around the inner generator. + /// An that can be used to build a pipeline around the inner generator. /// or is . /// The generator is registered as a singleton service. public static ImageGeneratorBuilder AddImageGenerator( @@ -29,7 +29,7 @@ public static ImageGeneratorBuilder AddImageGenerator( /// The to which the generator should be added. /// A callback that produces the inner that represents the underlying backend. /// The service lifetime for the generator. Defaults to . - /// A that can be used to build a pipeline around the inner generator. + /// An that can be used to build a pipeline around the inner generator. /// or is . /// The generator is registered as a singleton service. public static ImageGeneratorBuilder AddImageGenerator( @@ -50,7 +50,7 @@ public static ImageGeneratorBuilder AddImageGenerator( /// The key with which to associate the generator. /// The inner that represents the underlying backend. /// The service lifetime for the generator. Defaults to . - /// A that can be used to build a pipeline around the inner generator. + /// An that can be used to build a pipeline around the inner generator. /// , , or is . /// The generator is registered as a scoped service. public static ImageGeneratorBuilder AddKeyedImageGenerator( @@ -65,7 +65,7 @@ public static ImageGeneratorBuilder AddKeyedImageGenerator( /// The key with which to associate the generator. /// A callback that produces the inner that represents the underlying backend. /// The service lifetime for the generator. Defaults to . - /// A that can be used to build a pipeline around the inner generator. + /// An that can be used to build a pipeline around the inner generator. /// , , or is . /// The generator is registered as a scoped service. public static ImageGeneratorBuilder AddKeyedImageGenerator(