chatbot-template/artifacts/image/server.ts

44 lines
1 KiB
TypeScript
Raw Normal View History

import { myProvider } from '@/lib/ai/models';
import { createDocumentHandler } from '@/lib/artifacts/server';
import { experimental_generateImage } from 'ai';
export const imageDocumentHandler = createDocumentHandler<'image'>({
kind: 'image',
2025-02-05 18:11:19 +03:00
onCreateDocument: async ({ title, dataStream }) => {
let draftContent = '';
const { image } = await experimental_generateImage({
model: myProvider.imageModel('small-model'),
prompt: title,
n: 1,
});
draftContent = image.base64;
dataStream.writeData({
type: 'image-delta',
content: image.base64,
});
return draftContent;
},
onUpdateDocument: async ({ description, dataStream }) => {
let draftContent = '';
const { image } = await experimental_generateImage({
2025-02-05 18:11:19 +03:00
model: myProvider.imageModel('small-model'),
prompt: description,
n: 1,
});
draftContent = image.base64;
dataStream.writeData({
type: 'image-delta',
content: image.base64,
});
return draftContent;
},
});