Перейти к основному содержимому

03.02 AI для генерации кода

В узле JavaScript предусмотрен AI ассистент. Он помогает сгенерировать или скорректировать код в соответствии с потребностями.

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

Ответ будет содержать код с комментариями и объяснения ассистента.

Запрос на обработку данных других узлов
примечание
Сгенерируй код для обработки данных узла Trigger on Webhook так, чтобы на основе параметров Name и Count генерировался текст по шаблону: Привет, Name! В месяце X на платформе Nodul было выполнено Count ваших сценариев! Вместо X подставь название текущего месяца.

Ассистент предоставит ответ:

Для решения этой задачи, вам необходимо сначала получить данные 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 и верни массив из значений: сумма переменных, GlobalVar_number2, GlobalVar_number3. Получай глобальные переменные с помощью store.getGlobalVariable

Ассистент предоставит ответ:

Для выполнения вашего запроса, я сгенерирую код, который получает значения двух глобальных переменных 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 для отправки сообщения в нужный чат с заданным идентификатором

Ассистент предоставит ответ:

Для отправки сообщения в 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 и описанием ошибки.