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
81 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)
117/// <remarks>The default value is <see langword="null"/>, which is treated the same as <see cref="ChatToolMode.Auto"/>.</remarks> 118public 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)
32/// <see cref="ChatToolMode.RequireAny"/> when any function can be selected.
Microsoft.Extensions.AI.Abstractions.Tests (54)
ChatCompletion\ChatOptionsTests.cs (5)
89options.ToolMode = ChatToolMode.RequireAny; 106Assert.Same(ChatToolMode.RequireAny, options.ToolMode); 124Assert.Same(ChatToolMode.RequireAny, clone.ToolMode); 158options.ToolMode = ChatToolMode.RequireAny; 185Assert.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 (9)
AzureAIInferenceChatClientTests.cs (9)
376ToolMode = ChatToolMode.None, 460ToolMode = ChatToolMode.None, 547ToolMode = ChatToolMode.None, 622ToolMode = ChatToolMode.None, 1171yield return [ChatToolMode.Auto]; 1172yield return [ChatToolMode.None]; 1173yield return [ChatToolMode.RequireAny]; 1174yield return [ChatToolMode.RequireSpecific("GetPersonAge")]; 1179public async Task FunctionCallContent_NonStreaming(ChatToolMode mode)
Microsoft.Extensions.AI.Integration.Tests (2)
ChatClientIntegrationTests.cs (2)
445ToolMode = ChatToolMode.RequireAny, 466ToolMode = ChatToolMode.RequireSpecific(shieldsUpTool.Name),
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIChatClientTests.cs (4)
352ToolMode = ChatToolMode.None, 431ToolMode = ChatToolMode.None, 514ToolMode = ChatToolMode.None, 590ToolMode = ChatToolMode.None,