Skip to content

Commit 01a09c8

Browse files
authored
Merge pull request #5 from caozhiyuan/master
fix input_tokens adaptation error
2 parents 57128af + a6bfb6e commit 01a09c8

3 files changed

Lines changed: 22 additions & 3 deletions

File tree

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
@@ -106,6 +106,9 @@ export interface ChatCompletionResponse {
106106
prompt_tokens: number
107107
completion_tokens: number
108108
total_tokens: number
109+
prompt_tokens_details?: {
110+
cached_tokens: number
111+
}
109112
}
110113
}
111114

0 commit comments

Comments
 (0)