ignore: split up reasoning transforms (#24574)
This commit is contained in:
@@ -52,7 +52,28 @@ function normalizeMessages(
|
|||||||
): ModelMessage[] {
|
): ModelMessage[] {
|
||||||
// Anthropic rejects messages with empty content - filter out empty string messages
|
// Anthropic rejects messages with empty content - filter out empty string messages
|
||||||
// and remove empty text/reasoning parts from array content
|
// and remove empty text/reasoning parts from array content
|
||||||
if (model.api.npm === "@ai-sdk/anthropic" || model.api.npm === "@ai-sdk/amazon-bedrock") {
|
if (model.api.npm === "@ai-sdk/anthropic") {
|
||||||
|
msgs = msgs
|
||||||
|
.map((msg) => {
|
||||||
|
if (typeof msg.content === "string") {
|
||||||
|
if (msg.content === "") return undefined
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
if (!Array.isArray(msg.content)) return msg
|
||||||
|
const filtered = msg.content.filter((part) => {
|
||||||
|
if (part.type === "text" || part.type === "reasoning") {
|
||||||
|
return part.text !== ""
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
if (filtered.length === 0) return undefined
|
||||||
|
return { ...msg, content: filtered }
|
||||||
|
})
|
||||||
|
.filter((msg): msg is ModelMessage => msg !== undefined && msg.content !== "")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bedrock specific transforms
|
||||||
|
if (model.api.npm === "@ai-sdk/amazon-bedrock") {
|
||||||
msgs = msgs
|
msgs = msgs
|
||||||
.map((msg) => {
|
.map((msg) => {
|
||||||
if (typeof msg.content === "string") {
|
if (typeof msg.content === "string") {
|
||||||
|
|||||||
Reference in New Issue
Block a user