refactor: improve block modularity on server (#758)

This commit is contained in:
Jeremy 2025-02-04 17:15:39 +03:00 committed by GitHub
parent 711da0b94b
commit 9c4dbc8aaa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 419 additions and 259 deletions

54
blocks/image/server.ts Normal file
View file

@ -0,0 +1,54 @@
import { myProvider } from '@/lib/ai/models';
import { createDocumentHandler } from '@/lib/blocks/server';
import { saveDocument } from '@/lib/db/queries';
import { experimental_generateImage } from 'ai';
export const imageDocumentHandler = createDocumentHandler<'image'>({
kind: 'image',
onCreateDocument: async ({ id, title, dataStream, session }) => {
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,
});
if (session?.user?.id) {
await saveDocument({
id,
title,
kind: 'image',
content: draftContent,
userId: session.user.id,
});
}
return draftContent;
},
onUpdateDocument: async ({ description, dataStream }) => {
let draftContent = '';
const { image } = await experimental_generateImage({
model: myProvider.imageModel('image-model'),
prompt: description,
n: 1,
});
draftContent = image.base64;
dataStream.writeData({
type: 'image-delta',
content: image.base64,
});
return draftContent;
},
});