Files
multy-stub/server/routers/kfu-m-24-1/sber_mobile/moderate.ts
Дания 39a62818e9 fix error
2025-06-12 21:07:06 +03:00

78 lines
2.8 KiB
TypeScript

import { Router, Request, Response } from 'express';
import { moderationText } from './initiatives-ai-agents/moderation';
import { generatePicture } from './initiatives-ai-agents/picture';
const { getSupabaseClient } = require('./supabaseClient');
const router = Router();
// Обработчик для модерации текста
router.post('/moderate', async (req: Request, res: Response) => {
try {
const { title, body } = req.body;
if (!title || !body) {
res.status(400).json({ error: 'Заголовок и текст обязательны' });
return;
}
const [comment, fixedText, isApproved] = await moderationText(title, body);
res.json({
comment,
fixedText,
isApproved
});
} catch (error: any) {
console.error('Error in moderation:', error);
res.status(500).json({ error: 'Внутренняя ошибка сервера', details: error.message });
}
});
// Обработчик для генерации изображений
router.post('/generate-image', async (req: Request, res: Response) => {
try {
const { prompt, userId } = req.body;
if (!prompt) {
res.status(400).json({ error: 'Необходимо указать запрос для генерации' });
return;
}
// Получаем изображение
const imageBuffer = await generatePicture(prompt);
// Получаем Supabase клиент
const supabase = getSupabaseClient();
// Генерируем уникальное имя файла
const timestamp = Date.now();
const filename = `image_${userId || 'user'}_${timestamp}.jpg`;
// Загружаем в Supabase
const { data, error } = await supabase.storage
.from('images')
.upload(filename, imageBuffer, {
contentType: 'image/jpeg',
upsert: true
});
if (error) {
res.status(500).json({ error: 'Ошибка при сохранении изображения' });
return;
}
// Получаем публичный URL изображения
const { data: urlData } = supabase.storage
.from('images')
.getPublicUrl(filename);
res.json({
success: true,
imageUrl: urlData.publicUrl,
imagePath: filename
});
} catch (error: any) {
console.error('Error in image generation:', error);
res.status(500).json({ error: 'Внутренняя ошибка сервера', details: error.message });
}
});
export default router;