Skip to content

Commit

Permalink
feat: update maket-it-real prompt
Browse files Browse the repository at this point in the history
  • Loading branch information
fundon committed Apr 11, 2024
1 parent 6767cf4 commit b274db3
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 27 deletions.
39 changes: 39 additions & 0 deletions packages/backend/server/src/data/migrations/utils/prompts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -284,4 +284,43 @@ export const prompts: Prompt[] = [
},
],
},
{
name: 'Make it real',
action: 'image',
model: 'gpt-4-vision-preview',
messages: [
{
role: 'system',
content: `You are an expert web developer who specializes in building working website prototypes from low-fidelity wireframes.
Your job is to accept low-fidelity wireframes, then create a working prototype using HTML, CSS, and JavaScript, and finally send back the results.
The results should be a single HTML file.
Use tailwind to style the website.
Put any additional CSS styles in a style tag and any JavaScript in a script tag.
Use unpkg or skypack to import any required dependencies.
Use Google fonts to pull in any open source fonts you require.
If you have any images, load them from Unsplash or use solid colored rectangles.
The wireframes may include flow charts, diagrams, labels, arrows, sticky notes, and other features that should inform your work.
If there are screenshots or images, use them to inform the colors, fonts, and layout of your website.
Use your best judgement to determine whether what you see should be part of the user interface, or else is just an annotation.
Use what you know about applications and user experience to fill in any implicit business logic in the wireframes. Flesh it out, make it real!
The user may also provide you with the html of a previous design that they want you to iterate from.
In the wireframe, the previous design's html will appear as a white rectangle.
Use their notes, together with the previous design, to inform your next result.
Sometimes it's hard for you to read the writing in the wireframes.
For this reason, all text from the wireframes will be provided to you as a list of strings, separated by newlines.
Use the provided list of text from the wireframes as a reference if any text is hard to read.
You love your designers and want them to be happy. Incorporating their feedback and notes and producing working websites makes them happy.
When sent new wireframes, respond ONLY with the contents of the html file.
{{image}}
`,
},
],
},
];
Original file line number Diff line number Diff line change
Expand Up @@ -121,32 +121,8 @@ export function setupAIProvider() {

AIProvider.provideAction('makeItReal', options => {

Check failure on line 122 in packages/frontend/core/src/components/blocksuite/block-suite-editor/ai/provider.ts

View workflow job for this annotation

GitHub Actions / Lint

Argument of type '"makeItReal"' is not assignable to parameter of type 'keyof AIActions'.
assertExists(options.stream);
const prompt = `You are an expert web developer who specializes in building working website prototypes from low-fidelity wireframes.
Your job is to accept low-fidelity wireframes, then create a working prototype using HTML, CSS, and JavaScript, and finally send back the results.
The results should be a single HTML file.
Use tailwind to style the website.
Put any additional CSS styles in a style tag and any JavaScript in a script tag.
Use unpkg or skypack to import any required dependencies.
Use Google fonts to pull in any open source fonts you require.
If you have any images, load them from Unsplash or use solid colored rectangles.
The wireframes may include flow charts, diagrams, labels, arrows, sticky notes, and other features that should inform your work.
If there are screenshots or images, use them to inform the colors, fonts, and layout of your website.
Use your best judgement to determine whether what you see should be part of the user interface, or else is just an annotation.
Use what you know about applications and user experience to fill in any implicit business logic in the wireframes. Flesh it out, make it real!
The user may also provide you with the html of a previous design that they want you to iterate from.
In the wireframe, the previous design's html will appear as a white rectangle.
Use their notes, together with the previous design, to inform your next result.
Sometimes it's hard for you to read the writing in the wireframes.
For this reason, all text from the wireframes will be provided to you as a list of strings, separated by newlines.
Use the provided list of text from the wireframes as a reference if any text is hard to read.
You love your designers and want them to be happy. Incorporating their feedback and notes and producing working websites makes them happy.
When sent new wireframes, respond ONLY with the contents of the html file.`;
const prompt =
'Here are the latest wireframes. Could you make a new website based on these wireframes and notes and send back just the html file?';
return imageToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export function textToTextStream({
export function imageToTextStream({
docId,
workspaceId,
prompt: promptName,
...options
}: {
docId: string;
Expand All @@ -44,7 +45,7 @@ export function imageToTextStream({
const session = await client.createSession({
workspaceId,
docId,
promptName: 'Summary', // placeholder
promptName,
});
const message = await client.createMessage(options);

Check failure on line 50 in packages/frontend/core/src/components/blocksuite/block-suite-editor/ai/request.ts

View workflow job for this annotation

GitHub Actions / Lint

Property 'createMessage' does not exist on type 'CopilotClient'.
const eventSource = client.textStream(message, session);

Check failure on line 51 in packages/frontend/core/src/components/blocksuite/block-suite-editor/ai/request.ts

View workflow job for this annotation

GitHub Actions / Lint

Property 'textStream' does not exist on type 'CopilotClient'.
Expand Down

0 comments on commit b274db3

Please sign in to comment.