feat: expose image generation to page agents
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
const PURPOSES = new Set(['inline_image', 'hero', 'card_cover', 'feed_cover']);
|
||||
|
||||
export function attachMindSpaceImageGenerationRoutes(router, { getService } = {}) {
|
||||
router.post('/mindspace/v1/images/generate', async (req, res) => {
|
||||
const service = getService?.();
|
||||
async function handleGenerate(req, res, { service, userId, consumerPrefix }) {
|
||||
if (!service) {
|
||||
return res.status(503).json({
|
||||
ok: false,
|
||||
@@ -26,11 +24,11 @@ export function attachMindSpaceImageGenerationRoutes(router, { getService } = {}
|
||||
return res.status(400).json({ message: '幂等键不能超过 128 字符' });
|
||||
}
|
||||
const result = await service.generate({
|
||||
userId: req.currentUser.id,
|
||||
userId,
|
||||
purpose,
|
||||
prompt,
|
||||
negativePrompt: req.body?.negative_prompt,
|
||||
consumerRef: `mindspace:${req.requestId ?? 'request'}:${purpose}`,
|
||||
consumerRef: `${consumerPrefix}:${req.requestId ?? 'request'}:${purpose}`,
|
||||
idempotencyKey,
|
||||
});
|
||||
if (!result.ok) {
|
||||
@@ -43,5 +41,31 @@ export function attachMindSpaceImageGenerationRoutes(router, { getService } = {}
|
||||
return res.status(unavailable ? 503 : 409).json(result);
|
||||
}
|
||||
return res.status(201).json({ data: result });
|
||||
});
|
||||
}
|
||||
|
||||
export function attachMindSpaceImageGenerationRoutes(
|
||||
router,
|
||||
{ getService, requireInternal = null } = {},
|
||||
) {
|
||||
router.post('/mindspace/v1/images/generate', async (req, res) => {
|
||||
const service = getService?.();
|
||||
return handleGenerate(req, res, {
|
||||
service,
|
||||
userId: req.currentUser.id,
|
||||
consumerPrefix: 'mindspace',
|
||||
});
|
||||
});
|
||||
|
||||
if (requireInternal) {
|
||||
router.post('/agent/mindspace_image_generate', async (req, res) => {
|
||||
if (!requireInternal(req, res)) return;
|
||||
const userId = String(req.body?.user_id ?? req.body?.userId ?? '').trim();
|
||||
if (!userId) return res.status(400).json({ message: '缺少 user_id' });
|
||||
return handleGenerate(req, res, {
|
||||
service: getService?.(),
|
||||
userId,
|
||||
consumerPrefix: 'mindspace-agent',
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user