| 12345678910111213141516171819202122232425 |
- package xai
- // IncludeIndependentReasoningTokens adds reasoning tokens to billed output
- // only when total_tokens proves they are not already folded into output.
- //
- // Official xAI Chat Completions example: prompt=32, completion=9,
- // reasoning=94, total=135. Responses example: input=32, output=9,
- // reasoning=110, total=151. OpenAI's canonical completion_tokens already
- // includes reasoning and total equals input+output.
- func IncludeIndependentReasoningTokens(input, output, total, reasoning int64) int64 {
- if input < 0 || output < 0 || reasoning <= 0 || total <= 0 {
- return output
- }
- if total == input+output {
- return output
- }
- gap := total - input - output
- if gap <= 0 {
- return output
- }
- if reasoning < gap {
- gap = reasoning
- }
- return output + gap
- }
|