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(