03.02 AI для генерации кода
В узле JavaScript предусмотрен AI ассистент. Он помогает сгенерировать или скорректировать код в соответствии с потребностями.
Чтобы использовать ассистента, нужно прописать команду, то есть конкретный запрос. После этого бот генерирует ответ на основе вашего запроса и понимания контекста.
Ответ будет содержать код с комментариями и объяснения ассистента.
Запрос на обработку данных других узлов
Ассистент предоставит ответ:
Для решения этой задачи, вам необходимо сначала получить данные Name
и Count
из узла Trigger on Webhook
, а затем сформировать текст с использованием этих данных и названия текущего месяца. Для определения текущего месяца можно использовать объект Date
и массив с названиями месяцев.
Вот пример кода, который выполняет эту задачу:
export default async function run({execution_id, input, data, store}) {
// Получаем данные Name и Count из узла Trigger on Webhook
const name = data["{{2.\`body\`.\`Name\`}}"];
const count = data["{{2.\`body\`.\`Count\`}}"];
// Создаем массив с названиями месяцев
const months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
// Получаем текущий месяц
const currentMonth = new Date().getMonth(); // Возвращает число от 0 до 11, где 0 - Январь, 11 - Декабрь
// Формируем текст сообщения
const message = \`Привет, ${name}! В месяце ${months[currentMonth]} на платформе Nodul было выполнено ${count} ваших сценариев!\`;
// Возвращаем объект с сформированным сообщением
return {
message: message
}
}
Этот код сначала извлекает значения Name
и Count
из данных, полученных от узла Trigger on Webhook
. Затем использует текущую дату для определения названия месяца и формирует итоговое сообщение. Возвращаемый объект содержит это сообщение, которое затем может быть использовано в другом узле сценария.
Запрос на обработку глобальных переменных
Предполагается, что в аккаунте существуют глобальные переменные GlobalVar_number2 и GlobalVar_number3. Раздел о глобальных переменных.
Ассистент предоставит ответ:
Для выполнения вашего запроса, я сгенерирую код, который получает значения двух глобальных переменных GlobalVar_number2
и GlobalVar_number3
с помощью метода store.getGlobalVariable
, складывает эти значения и возвращает массив, содержащий сумму переменных, значение GlobalVar_number2
и значение GlobalVar_number3
. Вот пример такого кода:
export default async function run({execution_id, input, data, store}) {
// Получаем значения глобальных переменных
const number2 = await store.getGlobalVariable('GlobalVar_number2');
const number3 = await store.getGlobalVariable('GlobalVar_number3');
// Проверяем, что обе переменные числовые, иначе преобразуем их
const num2 = Number(number2);
const num3 = Number(number3);
// Проверяем, не являются ли переменные NaN после преобразования
if (isNaN(num2) || isNaN(num3)) {
throw new Error('Одна из глобальных переменных не являетс я числом.');
}
// Складываем значения
const sum = num2 + num3;
// Возвращаем массив с результатами
return {
result: [sum, num2, num3]
}
}
В этом коде сначала извлекаем значения глобальных переменных, используя await store.getGlobalVariable('GlobalVar_number2')
и await store.getGlobalVariable('GlobalVar_number3')
. Затем преобразуем полученные значения в числа с помощью Number()
для того, чтобы можно было выполнить математическую операцию сложения. После чего проверяем, что оба значения являются числами и не равны NaN
. Если одно из значений не является числом, генерируем ошибку. В конце складываем два числа и возвращаем результат в нужном формате.
Запрос на обработку глобальных переменных
Ассистент предоставит ответ:
Для отправки сообщения в Telegram чат через NodeJS, вам понадобится использовать Telegram Bot API. Прежде всего, убедитесь, что у вас есть Telegram бот, созданный через BotFather, и вы получили токен для этого бота.
Вам также понадобится установить и использовать библиотеку axios
для выполнения HTTP-запросов, так как прямое использование fetch
не поддерживается.
Вот пример кода, который отправляет сообщение в Telegram чат:
import axios from 'axios';
export default async function run({execution_id, input, data, store}) {
// Замените 'YOUR_BOT_TOKEN' на токен вашего бота
const botToken = 'YOUR_BOT_TOKEN';
// Замените 'CHAT_ID' на идентификатор чата, куда вы хотите отправить сообщение
const chatId = 'CHAT_ID';
// Текст сообщения
const message = 'Привет, это сообщение отправлено из моего NodeJS скрипта!';
// URL для отправки сообщения чер ез Telegram Bot API
const url = \`https://api.telegram.org/bot${botToken}/sendMessage\`;
try {
// Отправка сообщения
const response = await axios.post(url, {
chat_id: chatId,
text: message
});
console.log('Сообщение успешно отправлено!');
return {
success: true,
response: response.data
};
} catch (error) {
console.error('Ошибка при отправке сообщения:', error);
return {
success: false,
error: error.response?.data || error.message
};
}
}
Перед запуском этого кода, убедитесь, что вы заменили 'YOUR_BOT_TOKEN'
на ваш собственный токен бота и 'CHAT_ID'
на идентификатор чата, куда вы хотите отправлять сообщения. Идентификатор чата можно получить, добавив вашего бота в группу или канал в Telegram и сделав его администратором, если это необходимо, а затем используя специализированные инструменты или API-запросы для получения ID чата.
Этот код использует axios
для отправки HTTP POST запроса к Telegram Bot API с указанием идентификатора чата и текста сообщения. В случае успеха, скрипт выводит сообщение об успешной отправке и возвращает объект с полем success
равным true
и данными ответа. В случае ошибки, скрипт выводит информацию об ошибке и возвращает объект с success
равным false
и описанием ошибки.