36 instantiations of ChatFinishReason
Microsoft.Extensions.AI.Abstractions (5)
Microsoft.Extensions.AI.Abstractions.Tests (30)
Microsoft.Extensions.AI.OpenAI (1)
99 references to ChatFinishReason
Microsoft.Extensions.AI (5)
Microsoft.Extensions.AI.Abstractions (22)
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 (22)
Microsoft.Extensions.AI.OpenAI (14)
Microsoft.Extensions.AI.OpenAI.Tests (31)
OpenAIChatClientTests.cs (10)
168Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
254Assert.Equal(i < 10 ? null : ChatFinishReason.Stop, updates[i].FinishReason);
842Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
939Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1037Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1149Assert.Equal(ChatFinishReason.ToolCalls, response.FinishReason);
1233Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1342Assert.Equal(i < 7 ? null : ChatFinishReason.ToolCalls, updates[i].FinishReason);
1490Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
1605Assert.Equal(ChatFinishReason.Stop, response.FinishReason);
OpenAIConversionTests.cs (15)
766Assert.Equal(ChatFinishReason.Length, response.FinishReason);
797Assert.Equal(ChatFinishReason.ToolCalls, response.FinishReason);
952FinishReason = ChatFinishReason.Stop,
1020FinishReason = ChatFinishReason.ToolCalls
1049(ChatFinishReason.Stop, OpenAI.Chat.ChatFinishReason.Stop),
1050(ChatFinishReason.Length, OpenAI.Chat.ChatFinishReason.Length),
1051(ChatFinishReason.ContentFilter, OpenAI.Chat.ChatFinishReason.ContentFilter),
1052(ChatFinishReason.ToolCalls, OpenAI.Chat.ChatFinishReason.ToolCalls)
1141FinishReason = ChatFinishReason.Stop,
1333(ChatFinishReason.Stop, OpenAI.Chat.ChatFinishReason.Stop),
1334(ChatFinishReason.Length, OpenAI.Chat.ChatFinishReason.Length),
1335(ChatFinishReason.ContentFilter, OpenAI.Chat.ChatFinishReason.ContentFilter),
1336(ChatFinishReason.ToolCalls, OpenAI.Chat.ChatFinishReason.ToolCalls)
1373FinishReason = ChatFinishReason.Stop
1437FinishReason = ChatFinishReason.Stop
Microsoft.Extensions.AI.Tests (4)
Microsoft.ML.GenAI.Core (1)