Как флоу складывается из узлов
Форма, которая есть у каждого флоу, — вход, решения, вызов модели и ответ — и таблица всех узлов конструктора.
3 мин чтения
Флоу — это граф, который решает, сколько запросу можно потратить. Его узлы — шаги этого решения, а связи между ними говорят, какой шаг следующий. Эта страница показывает форму, которая есть у каждого флоу, и перечисляет все узлы, которые знает конструктор.
От запроса до ответа
- Запрос — По умолчанию → AI-модель
- AI-модель — Успех → Вернуть ответ
- AI-модель — Отказ → Отклонить запрос
Запрос называет код операции, и запускается флоу, привязанный к этому коду. Один запуск флоу — это выполнение. Оно начинается во входном узле и идёт от узла к узлу по связям, по одному узлу за раз, пока какой-то узел его не завершит.
Запрос — входной узел. Сюда приходит запрос, и во флоу такой узел ровно один.
Узлы в середине принимают решения. Они проверяют бюджет, заглядывают в кеш, сравнивают поле запроса, ждут человека. Каждый из них выходит через один из своих портов, и порт выбирает ветку — см. Порты и ветвление.
AI-модель вызывает модель. Это единственный узел, который тратит деньги.
Вернуть ответ и Отклонить запрос — конечные узлы. Первый отвечает вызывающему, второй отклоняет запрос с кодом ошибки. Выполнение, которое закончилось в первом, получает статус
completed, а во втором —rejected.
Что должно быть в каждом флоу
Флоу проверяется при публикации. Флоу, который нарушает одно из этих правил, не публикуется.
В нём один входной узел, и только один.
Каждый путь заканчивается в конечном узле.
Ни одна связь не ведёт назад, в узел, который путь уже прошёл. Флоу идёт вперёд.
Каждый обязательный порт каждого узла подключён.
Оценка стоимости, Проверка бюджета и Резерв бюджета ведут к одному вызову модели, а Списание и возврат идёт после его порта Успех, — их правила даёт статья Финансовая цепочка.
Узел, до которого нельзя дойти от входного, публикацию не останавливает. Проверка о нём предупреждает. Все проверки с их кодами перечисляет статья Проверки при публикации.
Группы палитры
Конструктор раскладывает узлы по группам в том порядке, в каком запрос обычно их встречает.
| Группа | Для чего её узлы |
|---|---|
| Вход | Точка, в которой приходит запрос |
| Деньги | Шаги вокруг денег вызова — его ожидаемая стоимость, проверка бюджета, резерв и его закрытие, одобрение человеком |
| Решение | Выбор ветки, преобразование данных, заметка в трассировке |
| Кеш | Ответ из кеша вместо повторной платы за тот же ответ |
| Модель | Вызов модели и отметка пути, по которому идут, когда первый выбор отклонён |
| Выход | Ответ вызывающему, отказ в запросе или ожидание перед тем, как флоу пойдёт дальше |
Один узел, HTTP-запрос, заморожен, если сервис не настроен иначе. Версия, опубликованная с ним, продолжает работать, а палитра его больше не предлагает. В новой версии его быть не может: черновик, в котором есть этот узел, не публикуется, пока узел не убран. Что узел делает в версии, опубликованной с ним, говорит статья HTTP-запрос.
Все узлы
| Узел | Тип | Категория | Порты |
|---|---|---|---|
| Запрос | sdk_request | Вход | default |
| Оценка стоимости | estimate_cost | Деньги | default |
| Проверка бюджета | budget_check | Деньги | default, deny |
| Резерв бюджета | reserve_budget | Деньги | default |
| Списание и возврат | capture_release | Деньги | default |
| Требуется одобрение | require_approval | Деньги | approved, rejected |
| Условие | condition | Решение | met, not_met |
| Заметка в трассировке | log | Решение | default |
| Преобразование | transform | Решение | default |
| Поиск в кеше | cache_lookup | Кеш | hit, miss |
| Запись в кеш | cache_write | Кеш | default |
| AI-модель | ai_model | Модель | success, error, rate_limit, deny |
| Запасной путь | fallback | Модель | default |
| Вернуть ответ | return_response | Выход | Нет |
| Отклонить запрос | reject | Выход | Нет |
| Очередь | queue | Выход | default |
| HTTP-запрос Заморожен | http_request | Выход | default, error |
Что читать дальше
Порты и ветвление — какие порты есть у узла, какие из них обязательно подключать и что делает неподключённый.
AI-флоу — как запрос находит свой флоу и через какие состояния проходит флоу.
Глоссарий — код операции, версия, выполнение.
Собрано из openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d