Преобразование
Узел, который собирает один объект из значений выполнения и фиксированных значений — для узлов после него и для ответа.
3 мин чтения
Преобразование собирает объект. Каждое его поле берётся по пути из выполнения или задаётся фиксированным значением, а узлы после него читают объект как выход узла.
- Узел
- Преобразование
- Тип
transform- Категория
- Решение
- Порты
- По умолчанию
defaultподключение обязательно
- По умолчанию
- Завершает путь
- Нет
Что делает узел
Узел проходит свои поля по порядку. Поле с путём берёт значение по этому пути; поле с фиксированным значением берёт это значение. Объект, который составляют поля, — выход узла, и выполнение выходит через По умолчанию.
{
"fields": [
{ "to": "tier", "from": "context.plan", "default": "free" },
{ "to": "channel", "value": "web" }
]
}Путь, который ничего не нашёл, даёт полю его значение по умолчанию или null, если у поля его нет. Путь, который нашёл null, даёт null: значение есть.
Когда использовать
Ответить вызывающему своим объектом: Вернуть ответ с источником Выход узла отвечает всем выходом этого узла.
Собрать значения под короткими именами для Условие или Заметка в трассировке после него.
Узел не собирает промпт модели: AI-модель берёт сообщения из input.messages запроса.
Настройки
| Настройка | Для чего она |
|---|---|
fields | Поля объекта, который собирает узел, от 1 до 32, по порядку. У каждого есть имя (to) и либо путь (from) с необязательным значением по умолчанию (default), либо фиксированное значение (value). |
В конструкторе Добавить поле добавляет поле. У поля есть Название, Источник — Из пути или Фиксированное значение — и, для пути, значение по умолчанию, которое берётся, когда путь ничего не находит.
Имя — от 1 до 64 латинских букв, цифр и подчёркиваний и не начинается с цифры. У двух полей не может быть одного имени.
У узла от 1 до 32 полей.
У поля есть путь или фиксированное значение, но не оба сразу.
В конструкторе фиксированное значение сохраняет свой тип, если читается как число,
true,false,nullили JSON; всё остальное — текст.
Порты
У узла один порт, По умолчанию, и он обязателен. Флоу, в котором он никуда не ведёт, не публикуется.
Выход
{ "tier": "pro", "channel": "web" }Следующий узел читает поле как nodes.<key>.output.<name> — здесь nodes.build.output.tier, если ключ узла — build.
Ошибки
Ошибок узел не выбрасывает. Пути, которые ничего не нашли, называет одно событие warning в трассировке.
{ "type": "warning", "node_key": "build", "payload": { "reason": "unknown_path", "paths": ["context.plan"] } }Настройки проверяются при проверке флоу и при его публикации: путь начинается с input, context или nodes, а путь в nodes называет узел, который выполняется раньше этого.
В API запись issues называет такую проверку в params.detail; её code — invalid_node_config.
| Проверка | Сообщение в конструкторе |
|---|---|
transform_needs_field | Узлу «{node}» нужно хотя бы одно собираемое поле. |
transform_too_many_fields | «{node}» собирает больше {max} полей. |
transform_field_not_object | У «{node}» есть поле, которое не является объектом. |
transform_field_without_name | У «{node}» есть поле без пригодного названия: сначала латинская буква или подчёркивание, дальше буквы, цифры и подчёркивания, не длиннее 64 символов. |
transform_field_both_sources | У поля «{field}» узла «{node}» указаны и путь, и фиксированное значение. |
transform_field_without_source | Полю «{field}» узла «{node}» нужен либо путь, либо фиксированное значение. |
transform_field_bad_path | Поле «{field}» узла «{node}» читает «{path}» — это не путь во входные данные, контекст или узлы. |
transform_field_repeated | «{node}» собирает поле «{field}» больше одного раза. |
transform_field_unknown_node | Поле «{field}» узла «{node}» читает «{path}», но узла «{ref}» во флоу нет. |
transform_field_later_node | Поле «{field}» узла «{node}» читает «{path}», но «{ref}» не выполняется раньше него. |
Пример
- Запрос — По умолчанию → Преобразование
- Преобразование — По умолчанию → Вернуть ответ
Флоу не вызывает модель. Преобразование собирает объект выше, а Вернуть ответ отвечает им. Выполнение заканчивается статусом completed, и его output — этот объект.
См. также
Контекст выполнения и пути — что может читать путь.
Как устроен флоу — все узлы конструктора.
Отправить запрос —
output, который получает вызывающий.
Собрано из openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d