Standalone NestJS-сервис для тестового задания: принимает параметры товара и через Flowise Prediction API получает структурированный JSON { title, meta_description, h1, description, bullets }, затем отдаёт клиенту SSE по смысловым блокам (поля), а не по токенам — потому что structured output в Flowise не совмещается с upstream token-streaming.
- Node.js 18+
- Развёрнутый Flowise с импортированным chatflow (см.
flowise/README.md)
npm install
cp .env.example .envЗаполните .env: FLOWISE_BASE_URL, FLOWISE_CHATFLOW_ID, при необходимости FLOWISE_API_KEY.
npm run start:devПроверка: GET http://localhost:3000/api/health
POST /api/generate-seo
Тело:
{
"product_name": "Wireless earbuds Pro",
"category": "Audio",
"keywords": ["ANC", "Bluetooth"]
}keywords можно передать строкой или массивом строк.
Ответ: Content-Type: text/event-stream — события start, progress, field, done или error.
Пример (curl):
curl -N -X POST http://localhost:3000/api/generate-seo ^
-H "Content-Type: application/json" ^
-d "{\"product_name\":\"Test\",\"category\":\"Cat\",\"keywords\":\"a,b\"}"npm test
npm run test:e2e
npm run build
npx eslint "{src,test}/**/*.ts" --max-warnings 0
npm run formatsrc/seo/— контроллер, сервис, схемы Zod, ошибки SSEsrc/flowise/— HTTP-клиент к Flowise Prediction APIflowise/— промпт, ориентир Zod для парсера в Flowise, заглушка экспорта chatflow
MIT.