21 instantiations of RequiredChatToolMode
Microsoft.Extensions.AI.Abstractions (2)
ChatCompletion\ChatToolMode.cs (2)
54
public static RequiredChatToolMode RequireAny { get; } =
new
(requiredFunctionName: null);
62
public static RequiredChatToolMode RequireSpecific(string functionName) =>
new
(functionName);
Microsoft.Extensions.AI.Abstractions.Tests (19)
ChatCompletion\ChatToolModeTests.cs (19)
25
Assert.False(ChatToolMode.Auto.Equals(new
RequiredChatToolMode
(null)));
26
Assert.False(ChatToolMode.Auto.Equals(new
RequiredChatToolMode
("func")));
32
Assert.False(ChatToolMode.None.Equals(new
RequiredChatToolMode
(null)));
33
Assert.False(ChatToolMode.None.Equals(new
RequiredChatToolMode
("func")));
39
Assert.False(ChatToolMode.RequireAny.Equals(new
RequiredChatToolMode
("func")));
41
Assert.True(ChatToolMode.RequireAny.Equals(new
RequiredChatToolMode
(null)));
42
Assert.Equal(ChatToolMode.RequireAny.GetHashCode(), new
RequiredChatToolMode
(null).GetHashCode());
45
Assert.True(new
RequiredChatToolMode
("func").Equals(new
RequiredChatToolMode
("func")));
46
Assert.Equal(new
RequiredChatToolMode
("func").GetHashCode(), new
RequiredChatToolMode
("func").GetHashCode());
48
Assert.False(new
RequiredChatToolMode
("func1").Equals(new
RequiredChatToolMode
("func2")));
49
Assert.NotEqual(new
RequiredChatToolMode
("func1").GetHashCode(), new
RequiredChatToolMode
("func2").GetHashCode()); // technically not guaranteed
51
Assert.False(new
RequiredChatToolMode
("func1").Equals(new
RequiredChatToolMode
("FUNC1")));
52
Assert.NotEqual(new
RequiredChatToolMode
("func1").GetHashCode(), new
RequiredChatToolMode
("FUNC1").GetHashCode()); // technically not guaranteed
15 references to RequiredChatToolMode
Microsoft.Extensions.AI (4)
ChatCompletion\FunctionInvokingChatClient.cs (1)
797
else if (options.ToolMode is
RequiredChatToolMode
)
ToolReduction\EmbeddingToolReductionStrategy.cs (3)
133
/// the configured non-required tool limit. A tool explicitly named by <see cref="
RequiredChatToolMode
"/> (when
134
/// <see cref="
RequiredChatToolMode
.RequiredFunctionName"/> is non-null) is also treated as required, independent
245
var requiredFunctionName = (toolMode as
RequiredChatToolMode
)?.RequiredFunctionName;
Microsoft.Extensions.AI.Abstractions (7)
ChatCompletion\ChatToolMode.cs (4)
18
[JsonDerivedType(typeof(
RequiredChatToolMode
), typeDiscriminator: "required")]
54
public static
RequiredChatToolMode
RequireAny { get; } = new(requiredFunctionName: null);
61
/// <returns>An instance of <see cref="
RequiredChatToolMode
"/> for the specified function name.</returns>
62
public static
RequiredChatToolMode
RequireSpecific(string functionName) => new(functionName);
ChatCompletion\RequiredChatToolMode.cs (3)
26
/// Initializes a new instance of the <see cref="
RequiredChatToolMode
"/> class that requires a specific tool to be called.
50
obj is
RequiredChatToolMode
other &&
56
typeof(
RequiredChatToolMode
).GetHashCode();
Microsoft.Extensions.AI.OpenAI (4)
OpenAIAssistantsChatClient.cs (2)
451
case
RequiredChatToolMode
required when required.RequiredFunctionName is { } functionName:
455
case
RequiredChatToolMode
required:
OpenAIChatClient.cs (1)
609
case
RequiredChatToolMode
required:
OpenAIResponsesChatClient.cs (1)
762
case
RequiredChatToolMode
required: