Skip to content

Commit e3e4cf5

Browse files
committed
fix input_tokens adaptation error
1 parent 4fe3f4f commit e3e4cf5

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/routes/messages/non-stream-translation.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,15 @@ export function translateToAnthropic(
313313
stop_reason: mapOpenAIStopReasonToAnthropic(stopReason),
314314
stop_sequence: null,
315315
usage: {
316-
input_tokens: response.usage?.prompt_tokens ?? 0,
316+
input_tokens:
317+
(response.usage?.prompt_tokens ?? 0)
318+
- (response.usage?.prompt_tokens_details?.cached_tokens ?? 0),
317319
output_tokens: response.usage?.completion_tokens ?? 0,
320+
...(response.usage?.prompt_tokens_details?.cached_tokens
321+
!== undefined && {
322+
cache_read_input_tokens:
323+
response.usage.prompt_tokens_details.cached_tokens,
324+
}),
318325
},
319326
}
320327
}

src/routes/messages/stream-translation.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,15 @@ export function translateChunkToAnthropicEvents(
4242
stop_reason: null,
4343
stop_sequence: null,
4444
usage: {
45-
input_tokens: chunk.usage?.prompt_tokens ?? 0,
45+
input_tokens:
46+
(chunk.usage?.prompt_tokens ?? 0)
47+
- (chunk.usage?.prompt_tokens_details?.cached_tokens ?? 0),
4648
output_tokens: 0, // Will be updated in message_delta when finished
49+
...(chunk.usage?.prompt_tokens_details?.cached_tokens
50+
!== undefined && {
51+
cache_read_input_tokens:
52+
chunk.usage.prompt_tokens_details.cached_tokens,
53+
}),
4754
},
4855
},
4956
})
@@ -152,7 +159,9 @@ export function translateChunkToAnthropicEvents(
152159
stop_sequence: null,
153160
},
154161
usage: {
155-
input_tokens: chunk.usage?.prompt_tokens ?? 0,
162+
input_tokens:
163+
(chunk.usage?.prompt_tokens ?? 0)
164+
- (chunk.usage?.prompt_tokens_details?.cached_tokens ?? 0),
156165
output_tokens: chunk.usage?.completion_tokens ?? 0,
157166
...(chunk.usage?.prompt_tokens_details?.cached_tokens
158167
!== undefined && {

src/services/copilot/create-chat-completions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ export interface ChatCompletionResponse {
103103
prompt_tokens: number
104104
completion_tokens: number
105105
total_tokens: number
106+
prompt_tokens_details?: {
107+
cached_tokens: number
108+
}
106109
}
107110
}
108111

0 commit comments

Comments
 (0)