Skip to content

Commit 0752a0b

Browse files
committed
Anthropic specific transforms for bedrock /v1/messages
1 parent 4134774 commit 0752a0b

File tree

2 files changed

+38
-11
lines changed

2 files changed

+38
-11
lines changed

src/providers/bedrock/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import {
7676
import { BedrockListFilesResponseTransform } from './listfiles';
7777
import { BedrockDeleteFileResponseTransform } from './deleteFile';
7878
import {
79+
AnthropicBedrockConverseMessagesConfig as BedrockAnthropicConverseMessagesConfig,
7980
BedrockConverseMessagesConfig,
8081
BedrockConverseMessagesStreamChunkTransform,
8182
BedrockMessagesResponseTransform,
@@ -105,7 +106,7 @@ const BedrockConfig: ProviderConfigs = {
105106
config = {
106107
complete: BedrockAnthropicCompleteConfig,
107108
chatComplete: BedrockConverseAnthropicChatCompleteConfig,
108-
messages: BedrockConverseMessagesConfig,
109+
messages: BedrockAnthropicConverseMessagesConfig,
109110
api: BedrockAPIConfig,
110111
responseTransforms: {
111112
'stream-complete': BedrockAnthropicCompleteStreamChunkTransform,
@@ -206,8 +207,8 @@ const BedrockConfig: ProviderConfigs = {
206207
config.responseTransforms = {
207208
...(config.responseTransforms ?? {}),
208209
'stream-chatComplete': BedrockChatCompleteStreamChunkTransform,
209-
'stream-messages': BedrockConverseMessagesStreamChunkTransform,
210210
messages: BedrockMessagesResponseTransform,
211+
'stream-messages': BedrockConverseMessagesStreamChunkTransform,
211212
};
212213
}
213214
if (!config.responseTransforms?.chatComplete) {

src/providers/bedrock/messages.ts

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
BedrockStreamState,
3434
} from './types';
3535
import {
36+
transformAnthropicAdditionalModelRequestFields,
3637
transformInferenceConfig,
3738
transformToolsConfig as transformToolConfig,
3839
} from './utils/messagesUtils';
@@ -302,11 +303,6 @@ export const BedrockConverseMessagesConfig: ProviderConfig = {
302303
return transformInferenceConfig(params);
303304
},
304305
},
305-
// this if for anthropic
306-
// thinking: {
307-
// param: 'thinking',
308-
// required: false,
309-
// },
310306
tool_choice: {
311307
param: 'toolChoice',
312308
required: false,
@@ -321,10 +317,6 @@ export const BedrockConverseMessagesConfig: ProviderConfig = {
321317
return transformToolConfig(params);
322318
},
323319
},
324-
// top_k: {
325-
// param: 'top_k',
326-
// required: false,
327-
// },
328320
top_p: {
329321
param: 'inferenceConfig',
330322
required: false,
@@ -334,6 +326,40 @@ export const BedrockConverseMessagesConfig: ProviderConfig = {
334326
},
335327
};
336328

329+
export const AnthropicBedrockConverseMessagesConfig: ProviderConfig = {
330+
...BedrockConverseMessagesConfig,
331+
additional_model_request_fields: {
332+
param: 'additionalModelRequestFields',
333+
transform: (params: BedrockMessagesParams) =>
334+
transformAnthropicAdditionalModelRequestFields(params),
335+
},
336+
top_k: {
337+
param: 'additionalModelRequestFields',
338+
transform: (params: BedrockMessagesParams) =>
339+
transformAnthropicAdditionalModelRequestFields(params),
340+
},
341+
anthropic_version: {
342+
param: 'additionalModelRequestFields',
343+
transform: (params: BedrockMessagesParams) =>
344+
transformAnthropicAdditionalModelRequestFields(params),
345+
},
346+
user: {
347+
param: 'additionalModelRequestFields',
348+
transform: (params: BedrockMessagesParams) =>
349+
transformAnthropicAdditionalModelRequestFields(params),
350+
},
351+
thinking: {
352+
param: 'additionalModelRequestFields',
353+
transform: (params: BedrockMessagesParams) =>
354+
transformAnthropicAdditionalModelRequestFields(params),
355+
},
356+
anthropic_beta: {
357+
param: 'additionalModelRequestFields',
358+
transform: (params: BedrockMessagesParams) =>
359+
transformAnthropicAdditionalModelRequestFields(params),
360+
},
361+
};
362+
337363
const transformContentBlocks = (
338364
contentBlocks: BedrockContentItem[]
339365
): ContentBlock[] => {

0 commit comments

Comments
 (0)