chore(server): try repair text in structured outputs (#11543)

This commit is contained in:
darkskygit
2025-04-08 16:48:22 +00:00
parent dd1cf14069
commit 984a6763ae

View File

@@ -9,6 +9,7 @@ import {
FilePart,
generateObject,
generateText,
JSONParseError,
streamText,
TextPart,
} from 'ai';
@@ -234,6 +235,19 @@ export class GeminiProvider
messages: msgs,
schema,
abortSignal: options.signal,
experimental_repairText: async ({ text, error }) => {
if (error instanceof JSONParseError) {
const ret = text.trim();
if (ret.startsWith('```') || ret.endsWith('```')) {
return ret
.replace(/```[\w\s]+\n/g, '')
.replace(/\n```/g, '')
.trim();
}
return ret;
}
return null;
},
}).then(r => ({ text: JSON.stringify(r.object) }))
: await generateText({
model: modelInstance,