Skip to content

Commit

Permalink
fix(provider/amazon-bedrock): Mimic doGenerate reasoning response for…
Browse files Browse the repository at this point in the history
…matting
  • Loading branch information
Und3rf10w committed Feb 28, 2025
1 parent 6f23643 commit 468a750
Showing 1 changed file with 30 additions and 29 deletions.
59 changes: 30 additions & 29 deletions packages/amazon-bedrock/src/bedrock-chat-language-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,35 @@ export class BedrockChatLanguageModel implements LanguageModelV1 {
}
: undefined;

const reasoningDetails = (response.output?.message?.content || [])
.filter(
part =>
part.reasoningContent &&
(('reasoningText' in part.reasoningContent &&
part.reasoningContent.reasoningText.text != null) ||
('redactedReasoning' in part.reasoningContent &&
part.reasoningContent.redactedReasoning.data != null)),
)
.map(part => {
const reasoningContent = part.reasoningContent!;

if ('reasoningText' in reasoningContent) {
return {
type: 'text' as const,
text: reasoningContent.reasoningText.text,
...(reasoningContent.reasoningText.signature && {
signature: reasoningContent.reasoningText.signature,
}),
};
} else {
// Must be redactedReasoning
return {
type: 'redacted' as const,
data: reasoningContent.redactedReasoning.data,
};
}
});

return {
text:
response.output?.message?.content
Expand All @@ -246,35 +275,7 @@ export class BedrockChatLanguageModel implements LanguageModelV1 {
rawCall: { rawPrompt, rawSettings },
rawResponse: { headers: responseHeaders },
warnings,
reasoning:
response.output?.message?.content
?.filter(
part =>
part.reasoningContent &&
(('reasoningText' in part.reasoningContent &&
part.reasoningContent.reasoningText.text != null) ||
('redactedReasoning' in part.reasoningContent &&
part.reasoningContent.redactedReasoning.data != null)),
)
?.map(part => {
const reasoningContent = part.reasoningContent!;

if ('reasoningText' in reasoningContent) {
return {
type: 'text' as const,
text: reasoningContent.reasoningText.text,
...(reasoningContent.reasoningText.signature && {
signature: reasoningContent.reasoningText.signature,
}),
};
} else {
// Must be redactedReasoning
return {
type: 'redacted' as const,
data: reasoningContent.redactedReasoning.data,
};
}
}) || undefined,
reasoning: reasoningDetails,
...(providerMetadata && { providerMetadata }),
};
}
Expand Down

0 comments on commit 468a750

Please sign in to comment.