36 instantiations of ChatFinishReason
Microsoft.Extensions.AI.Abstractions (5)
ChatCompletion\ChatFinishReason.cs (5)
66public static ChatFinishReason Stop { get; } = new("stop"); 69public static ChatFinishReason Length { get; } = new("length"); 72public static ChatFinishReason ToolCalls { get; } = new("tool_calls"); 75public static ChatFinishReason ContentFilter { get; } = new("content_filter"); 83new(reader.GetString()!);
Microsoft.Extensions.AI.Abstractions.Tests (30)
ChatCompletion\ChatFinishReasonTests.cs (30)
15Assert.Equal("abc", new ChatFinishReason("abc").Value); 21Assert.Throws<ArgumentNullException>("value", () => new ChatFinishReason(null!)); 22Assert.Throws<ArgumentException>("value", () => new ChatFinishReason(" ")); 28Assert.True(new ChatFinishReason("abc").Equals(new ChatFinishReason("ABC"))); 29Assert.True(new ChatFinishReason("abc").Equals((object)new ChatFinishReason("ABC"))); 30Assert.True(new ChatFinishReason("abc") == new ChatFinishReason("ABC")); 31Assert.Equal(new ChatFinishReason("abc").GetHashCode(), new ChatFinishReason("ABC").GetHashCode()); 32Assert.False(new ChatFinishReason("abc") != new ChatFinishReason("ABC")); 34Assert.False(new ChatFinishReason("abc").Equals(new ChatFinishReason("def"))); 35Assert.False(new ChatFinishReason("abc").Equals((object)new ChatFinishReason("def"))); 36Assert.False(new ChatFinishReason("abc").Equals(null)); 37Assert.False(new ChatFinishReason("abc").Equals("abc")); 38Assert.False(new ChatFinishReason("abc") == new ChatFinishReason("def")); 39Assert.True(new ChatFinishReason("abc") != new ChatFinishReason("def")); 40Assert.NotEqual(new ChatFinishReason("abc").GetHashCode(), new ChatFinishReason("def").GetHashCode()); // not guaranteed due to possible hash code collisions 55Assert.Equal("test", new ChatFinishReason("test").Value); 56Assert.Equal("test", new ChatFinishReason("test").ToString()); 58Assert.Equal("TEST", new ChatFinishReason("TEST").Value); 59Assert.Equal("TEST", new ChatFinishReason("TEST").ToString()); 68ChatFinishReason role = new("abc");
Microsoft.Extensions.AI.OpenAI (1)
OpenAIChatClient.cs (1)
837_ => new ChatFinishReason(s),
234 references to ChatFinishReason
Microsoft.Extensions.AI (5)
ChatCompletion\OpenTelemetryChatClient.cs (1)
444if (response.FinishReason is ChatFinishReason finishReason)
Common\OtelMessageSerializer.cs (4)
39IEnumerable<ChatMessage> messages, ChatFinishReason? chatFinishReason = null, JsonSerializerOptions? customContentSerializerOptions = null) 45chatFinishReason == ChatFinishReason.Length ? "length" : 46chatFinishReason == ChatFinishReason.ContentFilter ? "content_filter" : 47chatFinishReason == ChatFinishReason.ToolCalls ? "tool_call" :
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) =>
ChatCompletion\ChatResponse.cs (1)
85public ChatFinishReason? FinishReason { get; set; }
ChatCompletion\ChatResponseUpdate.cs (1)
154public ChatFinishReason? FinishReason { get; set; }
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatFinishReason.g.cs (10)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>? _ChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> ChatFinishReason 24get => _ChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> Create_ChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = ExpandConverter(typeof(global::Microsoft.Extensions.AI.ChatFinishReason), new global::Microsoft.Extensions.AI.ChatFinishReason.Converter(), options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason> (options, converter);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatResponse.g.cs (3)
175var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 190AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponse).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 193properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info6);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatResponseUpdate.g.cs (3)
255var info10 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 270AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponseUpdate).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 273properties[10] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info10);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.GetJsonTypeInfo.g.cs (2)
88if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason)) 92if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.NullableChatFinishReason.g.cs (9)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>? _NullableChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> NullableChatFinishReason 24get => _NullableChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason?)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> Create_NullableChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.GetNullableConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, converter);
Microsoft.Extensions.AI.Abstractions.Tests (55)
ChatCompletion\ChatFinishReasonTests.cs (8)
46Assert.Equal("stop", ChatFinishReason.Stop.Value); 47Assert.Equal("length", ChatFinishReason.Length.Value); 48Assert.Equal("tool_calls", ChatFinishReason.ToolCalls.Value); 49Assert.Equal("content_filter", ChatFinishReason.ContentFilter.Value); 61Assert.Equal("stop", default(ChatFinishReason).Value); 62Assert.Equal("stop", default(ChatFinishReason).ToString()); 68ChatFinishReason role = new("abc"); 72ChatFinishReason? result = JsonSerializer.Deserialize(json, TestJsonSerializerContext.Default.ChatFinishReason);
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);
ChatCompletion\ChatResponseUpdateTests.cs (8)
80update.FinishReason = ChatFinishReason.ContentFilter; 81Assert.Equal(ChatFinishReason.ContentFilter, update.FinishReason); 133FinishReason = ChatFinishReason.ContentFilter, 166Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason); 196FinishReason = ChatFinishReason.ContentFilter, 230Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason); 257FinishReason = ChatFinishReason.ContentFilter, 448Assert.Equal(ChatFinishReason.ContentFilter, result.FinishReason);
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatFinishReason.g.cs (10)
13private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>? _ChatFinishReason; 19public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> ChatFinishReason 22get => _ChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason)); 25private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> Create_ChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 27if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> jsonTypeInfo)) 29global::System.Text.Json.Serialization.JsonConverter converter = ExpandConverter(typeof(global::Microsoft.Extensions.AI.ChatFinishReason), new global::Microsoft.Extensions.AI.ChatFinishReason.Converter(), options); 30jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason> (options, converter);
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatResponse.g.cs (3)
174var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 189AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponse).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 192properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info6);
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatResponseUpdate.g.cs (3)
254var info10 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 269AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponseUpdate).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 272properties[10] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info10);
Generated\361d1da7f942c932\TestJsonSerializerContext.GetJsonTypeInfo.g.cs (2)
78if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason)) 82if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
Generated\361d1da7f942c932\TestJsonSerializerContext.NullableChatFinishReason.g.cs (9)
13private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>? _NullableChatFinishReason; 19public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> NullableChatFinishReason 22get => _NullableChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason?)); 25private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> Create_NullableChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 27if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> jsonTypeInfo)) 29global::System.Text.Json.Serialization.JsonConverter converter = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.GetNullableConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options); 30jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, converter);
Microsoft.Extensions.AI.Evaluation.Reporting (24)
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatFinishReason.g.cs (10)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>? _ChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> ChatFinishReason 24get => _ChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> Create_ChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = ExpandConverter(typeof(global::Microsoft.Extensions.AI.ChatFinishReason), new global::Microsoft.Extensions.AI.ChatFinishReason.Converter(), options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason> (options, converter);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatResponse.g.cs (3)
176var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 191AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponse).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 194properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info6);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.GetJsonTypeInfo.g.cs (2)
60if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason)) 64if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.NullableChatFinishReason.g.cs (9)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>? _NullableChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> NullableChatFinishReason 24get => _NullableChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason?)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> Create_NullableChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.GetNullableConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, converter);
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (24)
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatFinishReason.g.cs (10)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>? _ChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> ChatFinishReason 24get => _ChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> Create_ChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = ExpandConverter(typeof(global::Microsoft.Extensions.AI.ChatFinishReason), new global::Microsoft.Extensions.AI.ChatFinishReason.Converter(), options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason> (options, converter);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.ChatResponse.g.cs (3)
176var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 191AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponse).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 194properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info6);
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.GetJsonTypeInfo.g.cs (2)
60if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason)) 64if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.NullableChatFinishReason.g.cs (9)
15private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>? _NullableChatFinishReason; 21public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> NullableChatFinishReason 24get => _NullableChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason?)); 27private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> Create_NullableChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 29if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> jsonTypeInfo)) 31global::System.Text.Json.Serialization.JsonConverter converter = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.GetNullableConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options); 32jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, converter);
Microsoft.Extensions.AI.OpenAI (14)
MicrosoftExtensionsAIChatExtensions.cs (2)
293/// <summary>Converts the <see cref="Microsoft.Extensions.AI.ChatFinishReason"/> to a <see cref="ChatFinishReason"/>.</summary> 294private static ChatFinishReason ToChatFinishReason(Microsoft.Extensions.AI.ChatFinishReason? finishReason) =>
OpenAIChatClient.cs (6)
352ChatFinishReason? finishReason = null; 829private static ChatFinishReason? FromOpenAIFinishReason(OpenAI.Chat.ChatFinishReason? finishReason) => 833OpenAI.Chat.ChatFinishReason.Stop => ChatFinishReason.Stop, 834OpenAI.Chat.ChatFinishReason.Length => ChatFinishReason.Length, 835OpenAI.Chat.ChatFinishReason.ContentFilter => ChatFinishReason.ContentFilter, 836OpenAI.Chat.ChatFinishReason.ToolCalls or OpenAI.Chat.ChatFinishReason.FunctionCall => ChatFinishReason.ToolCalls,
OpenAIResponsesChatClient.cs (6)
453(anyFunctions ? ChatFinishReason.ToolCalls : 454ChatFinishReason.Stop); 943/// <summary>Creates a <see cref="ChatFinishReason"/> from a <see cref="ResponseIncompleteStatusReason"/>.</summary> 944private static ChatFinishReason? AsFinishReason(ResponseIncompleteStatusReason? statusReason) => 945statusReason == ResponseIncompleteStatusReason.ContentFilter ? ChatFinishReason.ContentFilter : 946statusReason == ResponseIncompleteStatusReason.MaxOutputTokens ? ChatFinishReason.Length :
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
OpenAIResponseClientTests.cs (6)
343Assert.Equal(i < updates.Count - 1 ? null : ChatFinishReason.Stop, updates[i].FinishReason); 769Assert.Equal(i < updates.Count - 1 ? null : ChatFinishReason.Stop, updates[i].FinishReason); 1009Assert.Equal(i >= 4 ? ChatFinishReason.Stop : null, updates[i].FinishReason); 2413Assert.Equal(ChatFinishReason.Stop, response.FinishReason); 3145Assert.Equal(ChatFinishReason.Stop, updates[i].FinishReason); 5617Assert.Equal(ChatFinishReason.Length, response.FinishReason);
Microsoft.Extensions.AI.Tests (31)
ChatCompletion\DistributedCachingChatClientTest.cs (2)
396FinishReason = ChatFinishReason.Length, 422Assert.Equal(ChatFinishReason.Length, item.FinishReason);
ChatCompletion\OpenTelemetryChatClientTests.cs (2)
44FinishReason = ChatFinishReason.Stop, 82FinishReason = ChatFinishReason.Stop,
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatFinishReason.g.cs (10)
13private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>? _ChatFinishReason; 19public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> ChatFinishReason 22get => _ChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason)); 25private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> Create_ChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 27if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason> jsonTypeInfo)) 29global::System.Text.Json.Serialization.JsonConverter converter = ExpandConverter(typeof(global::Microsoft.Extensions.AI.ChatFinishReason), new global::Microsoft.Extensions.AI.ChatFinishReason.Converter(), options); 30jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason> (options, converter);
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatResponse.g.cs (3)
174var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 189AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponse).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 192properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info6);
Generated\361d1da7f942c932\TestJsonSerializerContext.ChatResponseUpdate.g.cs (3)
254var info10 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.Extensions.AI.ChatFinishReason?> 269AttributeProviderFactory = static () => typeof(global::Microsoft.Extensions.AI.ChatResponseUpdate).GetProperty("FinishReason", InstanceMemberBindingFlags, null, typeof(global::Microsoft.Extensions.AI.ChatFinishReason?), global::System.Array.Empty<global::System.Type>(), null), 272properties[10] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, info10);
Generated\361d1da7f942c932\TestJsonSerializerContext.GetJsonTypeInfo.g.cs (2)
66if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason)) 70if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
Generated\361d1da7f942c932\TestJsonSerializerContext.NullableChatFinishReason.g.cs (9)
13private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>? _NullableChatFinishReason; 19public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> NullableChatFinishReason 22get => _NullableChatFinishReason ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>)Options.GetTypeInfo(typeof(global::Microsoft.Extensions.AI.ChatFinishReason?)); 25private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> Create_NullableChatFinishReason(global::System.Text.Json.JsonSerializerOptions options) 27if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.Extensions.AI.ChatFinishReason?> jsonTypeInfo)) 29global::System.Text.Json.Serialization.JsonConverter converter = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.GetNullableConverter<global::Microsoft.Extensions.AI.ChatFinishReason>(options); 30jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateValueInfo<global::Microsoft.Extensions.AI.ChatFinishReason?>(options, converter);
Microsoft.ML.GenAI.Core (1)
CausalLMPipelineChatClient.cs (1)
51FinishReason = ChatFinishReason.Stop,