Що читає вузол — вхід, контекст і виходи інших вузлів

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

4 хв читання

Вузли флоу читають дані за шляхом: корінь, а за ним імена через крапку, наприклад input.plan або nodes.check.output.met. Ця сторінка каже, що лежить у коренях, де пишуться шляхи і що робить вузол, коли його шлях нічого не знаходить.

Три корені

КоріньЩо в ньому
inputВхід запиту, яким його надіслав той, хто викликає
contextКонтекст виклику: до 64 простих значень
nodesnodes.<key>.output — те, що залишив вузол, який уже виконався
  • Кожне ім’я після крапки спускається на рівень нижче: input.customer.tier. Список читається за позицією елемента, рахуючи з 0: input.messages.0.content.

  • У шляху немає пробілів і фігурних дужок, і між двома крапками немає порожнього імені.

  • <key> — ключ вузла у флоу. Панель вузла в конструкторі показує ключ під своїм заголовком. Ключ — від 1 до 64 малих латинських літер, цифр, підкреслень і дефісів.

Вхід і контекст

Вхід доходить до флоу таким, яким його надіслав той, хто викликає: об’єкт, порожній, якщо нічого не надіслано. AI-модель бере повідомлення свого виклику з input.messages і більше нізвідки.

Slen обрізає пробільні символи по краях рядка контексту, а рядок, що лишився порожнім, стає null. context.user_id називає клієнта, для якого робиться виклик, а context.credit_type — тип кредитів його рахунку, який платить; без нього це default. Надіслати запит каже, що може лежати в контексті.

Запит передає вхід далі без змін, тому nodes.<key>.output.<name> вхідного вузла читає те саме значення, що й input.<name>.

Що залишає кожен вузол

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

ВузолЙого вихід
ЗапитВхід запиту
Умоваmet — true або false
ПеретворенняОб’єкт, який він склав, по полю на кожне поле його налаштувань
Нотатка у трасуванніmessage — нотатка в тому вигляді, в якому її записано в трасування
Пошук у кешіПри влучанні — збережена відповідь моделі. При промаху — нічого
AI-модельВідповідь моделі з полями нижче
ЧергаЗатримка, на яку його налаштовано, у секундах — Черга

Відповідь вузла AI-модель — і збережена відповідь, яку повертає влучання вузла Пошук у кеші, — має таку форму:

JSON
{
  "model": "gpt-4o-mini",
  "content": "Thanks for your order!",
  "finish_reason": "stop",
  "tool_calls": null,
  "usage": { "input_tokens": 412, "output_tokens": 96, "cached_input_tokens": 0 }
}

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

Де пишуться шляхи

  • Умова перевіряє значення за шляхом зі свого налаштування Поле.

  • Перетворення читає за шляхом значення кожного поля, яке складає.

  • Нотатка у трасуванні підставляє у своє повідомлення замість {{ path }} значення за цим шляхом.

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

  • HTTP-запит заповнює кожну підстановку {{ path }} у шляху й рядку запиту своєї адреси значенням за цим шляхом, а значення за шляхом свого тіла надсилає тілом — HTTP-запит.

  • Пошук у кеші — виняток. Його Поля ключа — шляхи всередині входу, записані без input. на початку: messages, а не input.messages.

Шляхи вузлів Умова і Перетворення перевіряються під час публікації флоу. Шлях починається з одного з трьох коренів, а шлях у nodes називає вузол флоу, який стоїть на шляху, що веде до вузла, який його читає. Флоу, що це порушує, не публікується.

Коли шлях нічого не знаходить

Шлях, який нічого не знайшов, не валить виконання — крім шляху в HTTP-запит. Кожен інший вузол продовжує по-своєму і пише в трасування подію warning.

  • Умова виходить через Не виконано. Лише оператор існує питає, чи є значення взагалі.

  • Перетворення ставить на місце значення значення поля за замовчуванням або null.

  • Нотатка у трасуванні залишає підстановку в нотатці такою, якою її набрано.

  • HTTP-запит не робить виклику й виходить через Помилка. Якщо до цього порту нічого не під’єднано, виконання завершується статусом failed — HTTP-запит.

Значення, яке є і дорівнює null, знайдено: це не те саме, що відсутнє значення.

JSON
{ "type": "warning", "node_key": "check", "payload": { "reason": "unknown_path", "field": "context.plan" } }

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