3 types derived from ChatToolMode
Microsoft.Extensions.AI.Abstractions (3)
ChatCompletion\AutoChatToolMode.cs (1)
15public sealed class AutoChatToolMode : ChatToolMode
ChatCompletion\NoneChatToolMode.cs (1)
15public sealed class NoneChatToolMode : ChatToolMode
ChatCompletion\RequiredChatToolMode.cs (1)
15public sealed class RequiredChatToolMode : ChatToolMode
78 references to ChatToolMode
Microsoft.Extensions.AI.Abstractions (12)
ChatCompletion\AutoChatToolMode.cs (2)
12/// Use <see cref="ChatToolMode.Auto"/> to get an instance of <see cref="AutoChatToolMode"/>. 18/// <remarks>Use <see cref="ChatToolMode.Auto"/> to get an instance of <see cref="AutoChatToolMode"/>.</remarks>
ChatCompletion\ChatOptions.cs (2)
87/// <remarks>The default value is <see langword="null"/>, which is treated the same as <see cref="ChatToolMode.Auto"/>.</remarks> 88public ChatToolMode? ToolMode { get; set; }
ChatCompletion\ChatToolMode.cs (5)
23/// <summary>Initializes a new instance of the <see cref="ChatToolMode"/> class.</summary> 30/// Gets a predefined <see cref="ChatToolMode"/> indicating that tool usage is optional. 39/// Gets a predefined <see cref="ChatToolMode"/> indicating that tool usage is unsupported. 51/// Gets a predefined <see cref="ChatToolMode"/> indicating that tool usage is required, 57/// Instantiates a <see cref="ChatToolMode"/> indicating that tool usage is required,
ChatCompletion\NoneChatToolMode.cs (2)
12/// Use <see cref="ChatToolMode.None"/> to get an instance of <see cref="NoneChatToolMode"/>. 18/// <remarks>Use <see cref="ChatToolMode.None"/> to get an instance of <see cref="NoneChatToolMode"/>.</remarks>
ChatCompletion\RequiredChatToolMode.cs (1)
31/// <see cref="ChatToolMode.RequireAny"/> when any function can be selected.
Microsoft.Extensions.AI.Abstractions.Tests (54)
ChatCompletion\ChatOptionsTests.cs (5)
81options.ToolMode = ChatToolMode.RequireAny; 96Assert.Same(ChatToolMode.RequireAny, options.ToolMode); 112Assert.Same(ChatToolMode.RequireAny, clone.ToolMode); 144options.ToolMode = ChatToolMode.RequireAny; 169Assert.Equal(ChatToolMode.RequireAny, deserialized.ToolMode);
ChatCompletion\ChatToolModeTests.cs (49)
14Assert.Same(ChatToolMode.Auto, ChatToolMode.Auto); 15Assert.Same(ChatToolMode.None, ChatToolMode.None); 16Assert.Same(ChatToolMode.RequireAny, ChatToolMode.RequireAny); 22Assert.True(ChatToolMode.Auto == ChatToolMode.Auto); 23Assert.True(ChatToolMode.Auto.Equals(ChatToolMode.Auto)); 24Assert.False(ChatToolMode.Auto.Equals(ChatToolMode.RequireAny)); 25Assert.False(ChatToolMode.Auto.Equals(new RequiredChatToolMode(null))); 26Assert.False(ChatToolMode.Auto.Equals(new RequiredChatToolMode("func"))); 27Assert.Equal(ChatToolMode.Auto.GetHashCode(), ChatToolMode.Auto.GetHashCode()); 29Assert.True(ChatToolMode.None == ChatToolMode.None); 30Assert.True(ChatToolMode.None.Equals(ChatToolMode.None)); 31Assert.False(ChatToolMode.None.Equals(ChatToolMode.RequireAny)); 32Assert.False(ChatToolMode.None.Equals(new RequiredChatToolMode(null))); 33Assert.False(ChatToolMode.None.Equals(new RequiredChatToolMode("func"))); 34Assert.Equal(ChatToolMode.None.GetHashCode(), ChatToolMode.None.GetHashCode()); 36Assert.True(ChatToolMode.RequireAny == ChatToolMode.RequireAny); 37Assert.True(ChatToolMode.RequireAny.Equals(ChatToolMode.RequireAny)); 38Assert.False(ChatToolMode.RequireAny.Equals(ChatToolMode.Auto)); 39Assert.False(ChatToolMode.RequireAny.Equals(new RequiredChatToolMode("func"))); 41Assert.True(ChatToolMode.RequireAny.Equals(new RequiredChatToolMode(null))); 42Assert.Equal(ChatToolMode.RequireAny.GetHashCode(), new RequiredChatToolMode(null).GetHashCode()); 43Assert.Equal(ChatToolMode.RequireAny.GetHashCode(), ChatToolMode.RequireAny.GetHashCode()); 58string json = JsonSerializer.Serialize(ChatToolMode.Auto, TestJsonSerializerContext.Default.ChatToolMode); 61ChatToolMode? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatToolMode); 62Assert.Equal(ChatToolMode.Auto, result); 68string json = JsonSerializer.Serialize(ChatToolMode.None, TestJsonSerializerContext.Default.ChatToolMode); 71ChatToolMode? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatToolMode); 72Assert.Equal(ChatToolMode.None, result); 78string json = JsonSerializer.Serialize(ChatToolMode.RequireAny, TestJsonSerializerContext.Default.ChatToolMode); 81ChatToolMode? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatToolMode); 82Assert.Equal(ChatToolMode.RequireAny, result); 88string json = JsonSerializer.Serialize(ChatToolMode.RequireSpecific("myFunc"), TestJsonSerializerContext.Default.ChatToolMode); 91ChatToolMode? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatToolMode); 92Assert.Equal(ChatToolMode.RequireSpecific("myFunc"), result);
Microsoft.Extensions.AI.AzureAIInference.Tests (5)
AzureAIInferenceChatClientTests.cs (5)
675yield return [ChatToolMode.Auto]; 676yield return [ChatToolMode.None]; 677yield return [ChatToolMode.RequireAny]; 678yield return [ChatToolMode.RequireSpecific("GetPersonAge")]; 683public async Task FunctionCallContent_NonStreaming(ChatToolMode mode)
Microsoft.Extensions.AI.Integration.Tests (2)
ChatClientIntegrationTests.cs (2)
285ToolMode = ChatToolMode.RequireAny, 307ToolMode = ChatToolMode.RequireSpecific(shieldsUpTool.Metadata.Name),
Microsoft.Extensions.AI.OpenAI (4)
OpenAIModelMapper.ChatCompletion.cs (4)
256"required" => ChatToolMode.RequireAny, 257"none" => ChatToolMode.None, 258_ => ChatToolMode.Auto, 265result.ToolMode = ChatToolMode.RequireSpecific(functionElement.GetString()!);
Microsoft.Extensions.AI.OpenAI.Tests (1)
OpenAISerializationTests.cs (1)
369Assert.Same(ChatToolMode.Auto, request.Options.ToolMode);