Вернуть ответ
Конечный узел, который завершает выполнение статусом 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: конструктор его не редактирует. С источником Выход узла узел называет другой узел по ключу:
{ "source": "node", "node_key": "build" }Порты
У узла нет портов: он завершает путь. Порты и ветвление говорит, почему каждый путь заканчивается в конечном узле.
Выход
Ответ — это output выполнения, то, что читает Отправить запрос. Ответ без ключей доходит до вызывающего как {}.
Ошибки
Ошибок узел не выбрасывает. Когда он отвечает выходом узла, через который выполнение не прошло, ответ — пустой объект, а событие warning в трассировке называет путь.
{ "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.
См. также
Отправить запрос —
outputи статус, которые получает вызывающий.Преобразование — собрать объект для ответа.
Порты и ветвление — конечные узлы и порты остальных.
Собрано из openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d