fix(ui): read reasoning tokens from Responses API output_tokens_details (#37952)

This commit is contained in:
Yassin Kortam 2026-08-25 13:01:51 -07:00 • committed by GitHub
parent ece03ceafe
commit 27ca05a707
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 2 deletions

View file

@ -400,4 +400,16 @@ describe("responses_api prompt cache usage", () => {
expect(usageData).not.toHaveProperty("cacheCreationTokens");
expect(usageData.promptTokens).toBe(5000);
});
it("surfaces reasoning tokens from Responses-shape output_tokens_details", async () => {
await expect(captureUsage({ output_tokens_details: { reasoning_tokens: 42 } })).resolves.toMatchObject({
reasoningTokens: 42,
});
});
it("falls back to completion_tokens_details reasoning tokens when output_tokens_details is absent", async () => {
await expect(captureUsage({ completion_tokens_details: { reasoning_tokens: 17 } })).resolves.toMatchObject({
reasoningTokens: 17,
});
});
});

View file

@ -295,8 +295,10 @@ export async function makeOpenAIResponsesRequest(
};
// Add reasoning tokens if available
if (usage.completion_tokens_details?.reasoning_tokens) {
usageData.reasoningTokens = usage.completion_tokens_details.reasoning_tokens;
const reasoningTokens =
usage.output_tokens_details?.reasoning_tokens ?? usage.completion_tokens_details?.reasoning_tokens;
if (reasoningTokens) {
usageData.reasoningTokens = reasoningTokens;
}
if (usage.cost !== undefined && usage.cost !== null) {