| import express from 'express'; |
| import { getPipeline, getRawImage } from '../transformers.js'; |
|
|
| export const router = express.Router(); |
|
|
| const TASK = 'image-to-text'; |
|
|
| router.post('/', async (req, res) => { |
| try { |
| const { image } = req.body; |
|
|
| const rawImage = await getRawImage(image); |
|
|
| if (!rawImage) { |
| console.warn('Failed to parse captioned image'); |
| return res.sendStatus(400); |
| } |
|
|
| const pipe = await getPipeline(TASK); |
| const result = await pipe(rawImage); |
| const text = result[0].generated_text; |
| console.info('Image caption:', text); |
|
|
| return res.json({ caption: text }); |
| } catch (error) { |
| console.error(error); |
| return res.sendStatus(500); |
| } |
| }); |
|
|