feat(server): adapt 4o image (#11956)

fix AI-88

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added support for the new image generation model "gpt-image-1" in both backend and frontend.
  - Updated available prompt options to include "gpt-image-1" for image creation actions.

- **Improvements**
  - Set a 5-minute timeout for image generation requests to improve reliability.

- **Tests**
  - Expanded test coverage to validate image generation using the new "gpt-image-1" prompt.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
darkskygit
2025-04-24 09:04:29 +00:00
parent 13b28e2ad8
commit 5d76be6736
7 changed files with 18 additions and 8 deletions
+1 -1
View File
@@ -26,7 +26,7 @@
},
"dependencies": {
"@ai-sdk/google": "^1.2.10",
"@ai-sdk/openai": "^1.3.9",
"@ai-sdk/openai": "^1.3.18",
"@ai-sdk/perplexity": "^1.1.6",
"@apollo/server": "^4.11.3",
"@aws-sdk/client-s3": "^3.779.0",
@@ -514,7 +514,7 @@ const actions = [
type: 'image' as const,
},
{
promptName: ['debug:action:dalle3'],
promptName: ['debug:action:dalle3', 'debug:action:gpt-image-1'],
messages: [
{
role: 'user' as const,
@@ -288,6 +288,12 @@ const actions: Prompt[] = [
model: 'dall-e-3',
messages: [],
},
{
name: 'debug:action:gpt-image-1',
action: 'image',
model: 'gpt-image-1',
messages: [],
},
{
name: 'debug:action:fal-sd15',
action: 'image',
@@ -77,6 +77,7 @@ export class OpenAIProvider
'text-moderation-stable',
// text to image
'dall-e-3',
'gpt-image-1',
];
#instance!: VercelOpenAIProvider;
@@ -2,6 +2,7 @@
// TODO(@Peng): automate this
export const promptKeys = [
'debug:action:dalle3',
'debug:action:gpt-image-1',
'debug:action:fal-sd15',
'debug:action:fal-upscaler',
'debug:action:fal-remove-bg',
@@ -492,7 +492,7 @@ Could you make a new website based on these notes and send back just the html fi
AIProvider.provide('createImage', async options => {
// test to image
let promptName: PromptKey = 'debug:action:dalle3';
let promptName: PromptKey = 'debug:action:gpt-image-1';
// image to image
if (options.attachments?.length) {
promptName = 'debug:action:fal-sd15';
@@ -507,6 +507,8 @@ Could you make a new website based on these notes and send back just the html fi
client,
sessionId,
content: options.input,
// 5 minutes
timeout: 300000,
});
});
+5 -5
View File
@@ -889,7 +889,7 @@ __metadata:
"@affine/graphql": "workspace:*"
"@affine/server-native": "workspace:*"
"@ai-sdk/google": "npm:^1.2.10"
"@ai-sdk/openai": "npm:^1.3.9"
"@ai-sdk/openai": "npm:^1.3.18"
"@ai-sdk/perplexity": "npm:^1.1.6"
"@apollo/server": "npm:^4.11.3"
"@aws-sdk/client-s3": "npm:^3.779.0"
@@ -1063,15 +1063,15 @@ __metadata:
languageName: node
linkType: hard
"@ai-sdk/openai@npm:^1.3.9":
version: 1.3.12
resolution: "@ai-sdk/openai@npm:1.3.12"
"@ai-sdk/openai@npm:^1.3.18":
version: 1.3.18
resolution: "@ai-sdk/openai@npm:1.3.18"
dependencies:
"@ai-sdk/provider": "npm:1.1.3"
"@ai-sdk/provider-utils": "npm:2.2.7"
peerDependencies:
zod: ^3.0.0
checksum: 10/067e6ce7a59bda062ea5198f928809d7cad9aae994c786b611f104515f3fcf3cb93f370ce3cb58c223ebc18da633d8f934beec4e879d26d071a8da81013369fb
checksum: 10/5d6e8ea5b3a6afc237d3220bdb7f307b6b82b1fd2511d9627f09b1be70e36c15060e807381148c4203d61a317acf87091b3b42edc55da7b424f2c2caf11c5a19
languageName: node
linkType: hard