Upgrade AI api

This commit is contained in:
Sam Becker 2025-12-28 15:23:29 -05:00
parent d73fef7288
commit d5deab49ed
2 changed files with 7 additions and 5 deletions

View File

@ -135,4 +135,6 @@ export const cleanUpAiTextResponse = (text: string) =>
text text
.replaceAll('\n', ' ') .replaceAll('\n', ' ')
.replaceAll('"', '') .replaceAll('"', '')
.replaceAll('**', '')
.replaceAll('`', '')
.replace(/\.$/, ''); .replace(/\.$/, '');

View File

@ -1,4 +1,4 @@
import { generateText, streamText, generateObject } from 'ai'; import { generateText, Output, streamText } from 'ai';
import { createStreamableValue } from '@ai-sdk/rsc'; import { createStreamableValue } from '@ai-sdk/rsc';
import { createOpenAI } from '@ai-sdk/openai'; import { createOpenAI } from '@ai-sdk/openai';
import { OPENAI_BASE_URL, OPENAI_SECRET_KEY } from '@/app/config'; import { OPENAI_BASE_URL, OPENAI_SECRET_KEY } from '@/app/config';
@ -15,7 +15,7 @@ const checkRateLimitAndThrow = (isBatch?: boolean) =>
...isBatch && { tokens: 1200, duration: '1d' }, ...isBatch && { tokens: 1200, duration: '1d' },
}); });
const MODEL: Parameters<NonNullable<typeof openai>>[0] = 'gpt-5.1'; const MODEL: Parameters<NonNullable<typeof openai>>[0] = 'gpt-5.2';
const openai = OPENAI_SECRET_KEY const openai = OPENAI_SECRET_KEY
? createOpenAI({ ? createOpenAI({
@ -93,8 +93,9 @@ export const generateOpenAiImageObjectQuery = async <T extends z.ZodSchema>(
await checkRateLimitAndThrow(isBatch); await checkRateLimitAndThrow(isBatch);
if (openai) { if (openai) {
return generateObject({ return generateText({
model: openai(MODEL), model: openai(MODEL),
output: Output.object({ schema }),
messages: [{ messages: [{
'role': 'user', 'role': 'user',
'content': [ 'content': [
@ -107,9 +108,8 @@ export const generateOpenAiImageObjectQuery = async <T extends z.ZodSchema>(
}, },
], ],
}], }],
schema,
}).then(result => Object.fromEntries(Object }).then(result => Object.fromEntries(Object
.entries(result.object || {}) .entries(result.output || {})
.map(([k, v]) => [k, cleanUpAiTextResponse(v as string)]), .map(([k, v]) => [k, cleanUpAiTextResponse(v as string)]),
) as z.infer<T>); ) as z.infer<T>);
} else { } else {