| package openai |
|
|
| import "ds2api/internal/util" |
|
|
| func BuildChatUsageForModel(model, finalPrompt, finalThinking, finalText string, refFileTokens int) map[string]any { |
| promptTokens := util.CountPromptTokens(finalPrompt, model) + refFileTokens |
| reasoningTokens := util.CountOutputTokens(finalThinking, model) |
| completionTokens := util.CountOutputTokens(finalText, model) |
| return map[string]any{ |
| "prompt_tokens": promptTokens, |
| "completion_tokens": reasoningTokens + completionTokens, |
| "total_tokens": promptTokens + reasoningTokens + completionTokens, |
| "completion_tokens_details": map[string]any{ |
| "reasoning_tokens": reasoningTokens, |
| }, |
| } |
| } |
|
|
| func BuildChatUsage(finalPrompt, finalThinking, finalText string) map[string]any { |
| return BuildChatUsageForModel("", finalPrompt, finalThinking, finalText, 0) |
| } |
|
|
| func BuildResponsesUsageForModel(model, finalPrompt, finalThinking, finalText string, refFileTokens int) map[string]any { |
| promptTokens := util.CountPromptTokens(finalPrompt, model) + refFileTokens |
| reasoningTokens := util.CountOutputTokens(finalThinking, model) |
| completionTokens := util.CountOutputTokens(finalText, model) |
| return map[string]any{ |
| "input_tokens": promptTokens, |
| "output_tokens": reasoningTokens + completionTokens, |
| "total_tokens": promptTokens + reasoningTokens + completionTokens, |
| } |
| } |
|
|
| func BuildResponsesUsage(finalPrompt, finalThinking, finalText string) map[string]any { |
| return BuildResponsesUsageForModel("", finalPrompt, finalThinking, finalText, 0) |
| } |
|
|