feat: implement AI bouquet generation flow with Gemini/OpenAI

* feat: scaffold message, generating, and map pages and align header steps

* feat: implement AI bouquet generation flow with Gemini/OpenAI

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chaewon Lee
2026-06-09 17:07:38 +09:00
committed by GitHub
parent d0ba482451
commit d8f93f4c17
33 changed files with 2008 additions and 54 deletions

View File

@@ -0,0 +1,31 @@
import { createJob, updateJob } from '$lib/server/flowerFlow/jobStore.js';
import { analyzeImageMood } from '$lib/server/gemini/vision.js';
import { isGeminiConfigured } from '$lib/server/gemini/client.js';
import { json, readUserInput, toErrorResponse } from '$lib/server/http.js';
/** @type {import('./$types').RequestHandler} */
export async function POST({ request }) {
try {
const formData = await request.formData();
const image = formData.get('image');
if (!(image instanceof File)) {
return json({ error: 'image file is required' }, 400);
}
const userInput = readUserInput(formData);
const job = createJob(userInput);
const imageBytes = new Uint8Array(await image.arrayBuffer());
const moodAnalysis = await analyzeImageMood(imageBytes, image.type || 'image/jpeg', userInput);
updateJob(job.id, { moodAnalysis });
return json({
jobId: job.id,
moodAnalysis,
mock: !isGeminiConfigured()
});
} catch (error) {
return toErrorResponse(error);
}
}