in src/Custom/Chat/OpenAIChatModelFactory.cs [15:104]
public static ChatCompletion ChatCompletion(
string id,
ChatFinishReason finishReason,
ChatMessageContent content,
string refusal,
IEnumerable<ChatToolCall> toolCalls,
ChatMessageRole role,
ChatFunctionCall functionCall,
IEnumerable<ChatTokenLogProbabilityDetails> contentTokenLogProbabilities,
IEnumerable<ChatTokenLogProbabilityDetails> refusalTokenLogProbabilities,
DateTimeOffset createdAt,
string model,
string systemFingerprint,
ChatTokenUsage usage) =>
ChatCompletion(
id: id,
finishReason: finishReason,
content:content,
refusal: refusal,
toolCalls: toolCalls,
role: role,
functionCall: functionCall,
contentTokenLogProbabilities: contentTokenLogProbabilities,
refusalTokenLogProbabilities: refusalTokenLogProbabilities,
createdAt: createdAt,
model: model,
systemFingerprint: systemFingerprint,
usage: usage,
outputAudio: default);
/// <summary> Initializes a new instance of <see cref="OpenAI.Chat.ChatCompletion"/>. </summary>
/// <returns> A new <see cref="OpenAI.Chat.ChatCompletion"/> instance for mocking. </returns>
public static ChatCompletion ChatCompletion(
string id = null,
ChatFinishReason finishReason = default,
ChatMessageContent content = null,
string refusal = null,
IEnumerable<ChatToolCall> toolCalls = null,
ChatMessageRole role = default,
ChatFunctionCall functionCall = default,
IEnumerable<ChatTokenLogProbabilityDetails> contentTokenLogProbabilities = null,
IEnumerable<ChatTokenLogProbabilityDetails> refusalTokenLogProbabilities = null,
DateTimeOffset createdAt = default,
string model = null,
string systemFingerprint = null,
ChatTokenUsage usage = default,
ChatOutputAudio outputAudio = default,
IEnumerable<ChatMessageAnnotation> messageAnnotations = default)
{
content ??= new ChatMessageContent();
toolCalls ??= new List<ChatToolCall>();
contentTokenLogProbabilities ??= new List<ChatTokenLogProbabilityDetails>();
refusalTokenLogProbabilities ??= new List<ChatTokenLogProbabilityDetails>();
messageAnnotations ??= new List<ChatMessageAnnotation>();
InternalChatCompletionResponseMessage message = new(
refusal,
toolCalls.ToList(),
messageAnnotations.ToList(),
outputAudio,
role,
content,
functionCall,
additionalBinaryDataProperties: null);
InternalCreateChatCompletionResponseChoiceLogprobs logprobs = new InternalCreateChatCompletionResponseChoiceLogprobs(
contentTokenLogProbabilities.ToList(),
refusalTokenLogProbabilities.ToList(),
additionalBinaryDataProperties: null);
IReadOnlyList<InternalCreateChatCompletionResponseChoice> choices = [
new InternalCreateChatCompletionResponseChoice(
finishReason,
index: 0,
message,
logprobs,
additionalBinaryDataProperties: null)
];
return new ChatCompletion(
id,
model,
systemFingerprint,
usage,
InternalCreateChatCompletionResponseObject.ChatCompletion,
serviceTier: null,
choices,
createdAt,
additionalBinaryDataProperties: null);
}