36 instantiations of ChatFinishReason
Microsoft.Extensions.AI.Abstractions (5)
Microsoft.Extensions.AI.Abstractions.Tests (30)
Microsoft.Extensions.AI.OpenAI (1)
234 references to ChatFinishReason
Microsoft.Extensions.AI (5)
Microsoft.Extensions.AI.Abstractions (49)
ChatCompletion\ChatFinishReason.cs (20)
15public readonly struct ChatFinishReason : IEquatable<ChatFinishReason>
17/// <summary>Initializes a new instance of the <see cref="ChatFinishReason"/> struct with a string that describes the reason.</summary>
31public override bool Equals([NotNullWhen(true)] object? obj) => obj is ChatFinishReason other && Equals(other);
34public bool Equals(ChatFinishReason other) => StringComparer.OrdinalIgnoreCase.Equals(Value, other.Value);
45public static bool operator ==(ChatFinishReason left, ChatFinishReason right)
56public static bool operator !=(ChatFinishReason left, ChatFinishReason right)
65/// <summary>Gets a <see cref="ChatFinishReason"/> representing the model encountering a natural stop point or provided stop sequence.</summary>
66public static ChatFinishReason Stop { get; } = new("stop");
68/// <summary>Gets a <see cref="ChatFinishReason"/> representing the model reaching the maximum length allowed for the request and/or response (typically in terms of tokens).</summary>
69public static ChatFinishReason Length { get; } = new("length");
71/// <summary>Gets a <see cref="ChatFinishReason"/> representing the model requesting the use of a tool that was defined in the request.</summary>
72public static ChatFinishReason ToolCalls { get; } = new("tool_calls");
74/// <summary>Gets a <see cref="ChatFinishReason"/> representing the model filtering content, whether for safety, prohibited content, sensitive content, or other such issues.</summary>
75public static ChatFinishReason ContentFilter { get; } = new("content_filter");
77/// <summary>Provides a <see cref="JsonConverter{ChatFinishReason}"/> for serializing <see cref="ChatFinishReason"/> instances.</summary>
79public sealed class Converter : JsonConverter<ChatFinishReason>
82public override ChatFinishReason Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
86public override void Write(Utf8JsonWriter writer, ChatFinishReason value, JsonSerializerOptions options) =>
Microsoft.Extensions.AI.Abstractions.Tests (55)
ChatCompletion\ChatResponseTests.cs (12)
65response.FinishReason = ChatFinishReason.ContentFilter;
66Assert.Equal(ChatFinishReason.ContentFilter, response.FinishReason);
93FinishReason = ChatFinishReason.ContentFilter,
111Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason);
130FinishReason = ChatFinishReason.ContentFilter,
149Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason);
215Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason);
245FinishReason = ChatFinishReason.ContentFilter,
258Assert.Equal(ChatFinishReason.ContentFilter, update0.FinishReason);
287FinishReason = ChatFinishReason.ContentFilter,
300Assert.Equal(ChatFinishReason.ContentFilter, update0.FinishReason);
309Assert.Equal(ChatFinishReason.ContentFilter, update1.FinishReason);
Microsoft.Extensions.AI.Evaluation.Reporting (24)
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (24)
Microsoft.Extensions.AI.OpenAI (14)
Microsoft.Extensions.AI.OpenAI.Tests (31)
OpenAIChatClientTests.cs (10)
170Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
256Assert.Equal(i < 10 ? null : ChatFinishReason.Stop, updates[i].FinishReason);
844Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
941Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1039Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1151Assert.Equal(ChatFinishReason.ToolCalls, response.FinishReason);
1236Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1345Assert.Equal(i < 7 ? null : ChatFinishReason.ToolCalls, updates[i].FinishReason);
1493Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1608Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
OpenAIConversionTests.cs (15)
896Assert.Equal(ChatFinishReason.Length, response.FinishReason);
927Assert.Equal(ChatFinishReason.ToolCalls, response.FinishReason);
1528FinishReason = ChatFinishReason.Stop,
1596FinishReason = ChatFinishReason.ToolCalls
1625(ChatFinishReason.Stop, OpenAI.Chat.ChatFinishReason.Stop),
1626(ChatFinishReason.Length, OpenAI.Chat.ChatFinishReason.Length),
1627(ChatFinishReason.ContentFilter, OpenAI.Chat.ChatFinishReason.ContentFilter),
1628(ChatFinishReason.ToolCalls, OpenAI.Chat.ChatFinishReason.ToolCalls)
1717FinishReason = ChatFinishReason.Stop,
1909(ChatFinishReason.Stop, OpenAI.Chat.ChatFinishReason.Stop),
1910(ChatFinishReason.Length, OpenAI.Chat.ChatFinishReason.Length),
1911(ChatFinishReason.ContentFilter, OpenAI.Chat.ChatFinishReason.ContentFilter),
1912(ChatFinishReason.ToolCalls, OpenAI.Chat.ChatFinishReason.ToolCalls)
1949FinishReason = ChatFinishReason.Stop
2012FinishReason = ChatFinishReason.Stop
Microsoft.Extensions.AI.Tests (31)
Microsoft.ML.GenAI.Core (1)