Как запрос находит свой флоу
Что такое флоу, как код операции приводит к нему запрос и через какие состояния флоу проходит от первого черновика до архива.
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. Консоль показывает состояние, но кнопки для него нет.
Флоу в архиве сохраняет свой код и активную версию. Возвращённый из архива, он работает так же, как раньше.
Выполнение, которое ждало, когда флоу отправили в архив, всё равно завершится — на своей версии.
Публикация снова делает флоу из архива активным.
Где выполнения
Откройте флоу, затем его вкладку Выполнения. Она показывает выполнения флоу, сначала самые новые. Откройте одно из них, чтобы увидеть его путь узел за узлом.
Что читать дальше
Публикация, версии и откат — как версия становится активной и как вернуть флоу к более ранней.
Как устроен флоу — узлы флоу и то, что должно быть в каждом флоу.
Быстрый старт — отправьте первый запрос к флоу.
Глоссарий — операция, код операции и выполнение в одном месте.
Разбор выполнения — прочитать, что сделал один запуск флоу, узел за узлом.
Конструктор флоу — нарисовать узлы флоу и сохранить его черновик.
Создайте первый флоу — от пустого холста до первого запроса.
Флоу — создайте, опубликуйте и привяжите флоу через API.