Вернуть ответ

Конечный узел, который завершает выполнение статусом completed и отвечает вызывающему — тем, что сказала модель, входом, фиксированным объектом или выходом узла.

3 мин чтения

Вернуть ответ завершает путь ответом. Выполнение, которое до него дошло, получает статус completed, а вызывающий получает в output ответ, на который настроен узел.

Узел
Вернуть ответ
Тип
return_response
Категория
Выход
Порты
Нет
Завершает путь
Да

Что делает узел

Узел берёт ответ из своего источника, делает его output выполнения и завершает выполнение статусом completed. После него ничего не выполняется.

Ответить с помощьюОтвет
Последний вывод моделиПоследний ответ на пути: то, что ответил последний узел AI-модель, или сохранённый ответ узла Поиск в кеше, который попал, — смотря что было позже. Если на пути нет ни того ни другого — пустой объект
Вход запросаВход запроса, каким он пришёл
Фиксированное значениеОбъект, сохранённый в узле
Выход узлаВесь выход выбранного узла — чаще всего то, что собрал Преобразование

Когда ответ — сохранённый ответ узла Поиск в кеше, который попал, выполнение несёт cache.hit, равное true. Ответ модели, вызванной после попадания, оплачен, и cache.hit равно false.

Когда использовать

Здесь заканчивается каждый путь, который отвечает вызывающему. Путь, который отказывает, заканчивается вместо этого в Отклонить запрос. Во флоу может быть по нескольку тех и других: по одному на каждый способ завершения.

Настройки

НастройкаДля чего она
sourceОткуда берётся ответ — last_model_output, последний ответ модели на пути; input, вход запроса; literal, объект из value; node, выход узла из node_key. Узел без source отвечает последним выводом модели.
valueОбъект, которым узел отвечает, когда source — literal. Задаётся через API.
node_keyКлюч узла, весь выход которого становится ответом, когда source — node; это другой узел флоу, не конечный.

В конструкторе настройка — Ответить с помощью. Новый узел отвечает последним выводом модели. Фиксированное значение задаётся через API: конструктор его не редактирует. С источником Выход узла узел называет другой узел по ключу:

JSON
{ "source": "node", "node_key": "build" }

Порты

У узла нет портов: он завершает путь. Порты и ветвление говорит, почему каждый путь заканчивается в конечном узле.

Выход

Ответ — это output выполнения, то, что читает Отправить запрос. Ответ без ключей доходит до вызывающего как {}.

Ошибки

Ошибок узел не выбрасывает. Когда он отвечает выходом узла, через который выполнение не прошло, ответ — пустой объект, а событие warning в трассировке называет путь.

JSON
{ "type": "warning", "node_key": "answer", "payload": { "reason": "unknown_path", "paths": ["nodes.build.output"] } }

Настройка проверяется при проверке флоу и при его публикации: источник — один из четырёх, фиксированное значение — объект, а названный узел — другой узел флоу, не конечный.

В API запись issues называет такую проверку в params.detail; её code — invalid_node_config.

ПроверкаСообщение в конструкторе
return_unsupported_source«{node}» отвечает из источника, которого не существует.
return_literal_not_object«{node}» отвечает фиксированным значением, и это значение должно быть объектом.
return_needs_node«{node}» отвечает выходом узла и должен назвать другой узел флоу.
return_unknown_node«{node}» отвечает выходом узла «{ref}», но узла «{ref}» во флоу нет.
return_terminal_node«{node}» отвечает выходом узла «{ref}», но «{ref}» сам завершает флоу и никогда не выполняется раньше этого ответа. Назовите узел, который выполняется раньше.

Пример

  • Запрос — По умолчанию → AI-модель
  • AI-модель — Успех → Вернуть ответ
  • AI-модель — Отказ → Отклонить запрос

Вернуть ответ отвечает тем, что сказала модель, и выполнение получает статус completed. Отказанный вызов идёт в Отклонить запрос, и такое выполнение получает статус rejected.

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