using System.Text.Json.Serialization; namespace FictionArchive.Service.TranslationService.Services.TranslationEngines.NanoGpt; public sealed record NanoGptMessage( [property: JsonPropertyName("role")] string Role, [property: JsonPropertyName("content")] string Content); public sealed record NanoGptChatRequest( [property: JsonPropertyName("model")] string Model, [property: JsonPropertyName("messages")] IReadOnlyList Messages, [property: JsonPropertyName("temperature")] double Temperature); public sealed record NanoGptChatResponse( [property: JsonPropertyName("choices")] IReadOnlyList Choices, [property: JsonPropertyName("usage")] NanoGptUsage Usage); public sealed record NanoGptChoice( [property: JsonPropertyName("message")] NanoGptMessage Message); public sealed record NanoGptUsage( [property: JsonPropertyName("prompt_tokens")] int PromptTokens, [property: JsonPropertyName("completion_tokens")] int CompletionTokens, [property: JsonPropertyName("total_tokens")] int TotalTokens);