Як запит знаходить свій флоу

Що таке флоу, як код операції приводить до нього запит і через які стани флоу проходить від першої чернетки до архіву.

3 хв читання

Флоу — це політика витрат одного виду запитів. Ваш застосунок називає вид кодом операції, і Slen виконує флоу, прив’язаний до цього коду: його вузли перевіряють бюджети й політики, шукають відповідь у кеші, викликають модель і повертають відповідь або відмову. Ця сторінка — про флоу загалом: як до нього доходить запит і через які стани він проходить. Про те, що всередині, — стаття Як побудовано флоу.

Створити флоу

Флоу створюють на сторінці AI-флоу. Натисніть Новий флоу і дайте флоу назву. Він відкриється в конструкторі з порожнім полотном. Флоу можна почати й із шаблону: на сторінці Шаблони кнопка Створити чернетку створює флоу і відкриває його в конструкторі.

Новий флоу належить проєкту, у якому ви перебуваєте. Чернетка в нього є з самого початку, і він нічого не виконує, доки не опубліковано його версію. Щоб створювати, редагувати й публікувати флоу, потрібен дозвіл flows:write — які ролі його мають, сказано в статті Організації, проєкти й ролі.

Код операції

Запит ніколи не називає флоу. Він називає код операції, наприклад generate_email, і код вирішує, який флоу виконується.

Відкрийте флоу, потім його вкладку Налаштування. У блоці Прив’язка операції введіть код у поле Код операції і натисніть Зберегти прив’язку. Порожній код знімає прив’язку.

  • Флоу відповідає на один код, а код належить одному флоу проєкту.

  • Код, який є в іншого флоу проєкту, відхиляється з 409 і кодом operation_already_bound. Флоу зберігає код, який у нього був.

  • Інший код, наданий флоу, одразу знімає попередній. Наступний запит із попереднім кодом отримує відповідь 404 з кодом flow_not_found, а попередній код вільний для іншого флоу.

  • Код — не довший за 120 символів.

У списку флоу флоу без коду позначено як Операцію не прив’язано.

Коли запит виконує флоу

Запит виконує флоу, коли справджуються три умови: його код прив’язано до флоу, у флоу є опублікована версія і флоу не в архіві. Інакше запит отримує відповідь 404 з кодом flow_not_found, і нічого не створюється — ні виконання, ні резерву.

Запит виконує активну версію флоу: ту, що опублікована останньою, або ту, до якої повернув відкат. Виконання залишається на тій версії, з якої почалося, — публікація або відкат змінюють те, що виконає наступний запит, а не той, що виконується або чекає.

Стани флоу

Список флоу показує стан кожного.

У спискуЩо це означає
ЧернеткаФлоу жодного разу не публікували. Запит із його кодом отримує відповідь flow_not_found
«Опубліковано» і номер версіїОдна з версій активна, і запити з кодом виконують її. Рядок під ним каже, коли новіша чернетка ще не опублікована
В архівіФлоу зупинено. Запит із його кодом отримує відповідь flow_not_found

Флоу переводять в архів і повертають з нього через API: PATCH /v1/flows/{id} зі status, що дорівнює archived або active. Консоль показує стан, але кнопки для нього немає.

  • Флоу в архіві зберігає свій код і активну версію. Повернутий з архіву, він працює так само, як раніше.

  • Виконання, яке чекало, коли флоу відправили в архів, однаково завершиться — на своїй версії.

  • Публікація знову робить флоу з архіву активним.

Де виконання

Відкрийте флоу, потім його вкладку Виконання. Вона показує виконання флоу, спершу найновіші. Відкрийте одне з них, щоб побачити його шлях вузол за вузлом.

Що читати далі