// ReSharper disable ClassNeverInstantiated.Global namespace AIStudio.Provider.OpenAI; /// /// What OpenAI reports a Responses API call cost, as it closes the stream. /// /// /// The input tokens are the whole request. What the API took from its cache is a share of them, /// not an addition to them, which is why that detail stays unread. Read on 2026-09-24 at /// https://developers.openai.com/api/docs/guides/prompt-caching. /// /// The block states more than this, the output and its reasoning share among it. Those are left /// unread on purpose, for the reason given at TokenUsage: no later request carries them. /// public sealed record ResponsesUsage { /// /// What everything sent to the model cost, the cached part included. /// public int? InputTokens { get; init; } /// /// States what this block reports, as far as it can be believed. /// /// /// Whether the block describes the request at all is not decided here but by the response /// around it, cf. ResponsesResponse. /// /// The usage, or TokenUsage.UNKNOWN when the block states nothing usable. public TokenUsage ToTokenUsage() => TokenUsage.OfReported(this.InputTokens); }