Перетворення

Вузол, який складає один об’єкт зі значень виконання та фіксованих значень — для вузлів після нього і для відповіді.

3 хв читання

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

Вузол
Перетворення
Тип
transform
Категорія
Рішення
Порти
  • Типовий default підключення обовʼязкове
Завершує шлях
Ні

Що робить вузол

Вузол проходить свої поля по порядку. Поле зі шляхом бере значення за цим шляхом; поле з фіксованим значенням бере це значення. Об’єкт, який складають поля, — вихід вузла, і виконання виходить через Типовий.

JSON
{
  "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; усе інше — текст.

Порти

Вузол має один порт, Типовий, і він обов’язковий. Флоу, в якому він нікуди не веде, не публікується.

Вихід

JSON
{ "tier": "pro", "channel": "web" }

Наступний вузол читає поле як nodes.<key>.output.<name> — тут nodes.build.output.tier, якщо ключ вузла — build.

Помилки

Помилок вузол не кидає. Шляхи, які нічого не знайшли, називає одна подія warning у трасуванні.

JSON
{ "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 — цей об’єкт.

Зібрано з openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d