Skip to content

Repository files navigation

SEO Description Generator

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

API

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 format

Структура

  • src/seo/ — контроллер, сервис, схемы Zod, ошибки SSE
  • src/flowise/ — HTTP-клиент к Flowise Prediction API
  • flowise/ — промпт, ориентир Zod для парсера в Flowise, заглушка экспорта chatflow

Лицензия

MIT.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages