InfoGrab Docs

AI 코딩

요약

셀프 호스팅 환경에서는 사용할 수 없습니다. Python은 지원하지 않습니다. Code 노드의 AI 지원은 Cloud 사용자에게만 제공됩니다. Code 탭에 이미 코드를 작성한 경우, AI가 생성한 코드가 해당 코드를 대체합니다.

셀프 호스팅 환경에서는 사용할 수 없습니다.

Python은 지원하지 않습니다. ///

Code 노드에서 AI 사용하기#

기능 제공 범위

Code 노드의 AI 지원은 Cloud 사용자에게만 제공됩니다. 셀프 호스팅 n8n에서는 사용할 수 없습니다.

AI 생성 코드는 기존 코드를 덮어씁니다

Code 탭에 이미 코드를 작성한 경우, AI가 생성한 코드가 해당 코드를 대체합니다. n8n은 AI를 초기 코드 작성의 시작점으로 활용한 뒤 필요에 따라 편집하는 방식을 권장합니다.

Code 노드에서 ChatGPT를 사용하여 코드를 생성하려면:

  1. Code 노드에서 LanguageJavaScript로 설정합니다.
  2. Ask AI 탭을 선택합니다.
  3. 쿼리를 작성합니다.
  4. Generate Code를 선택합니다. n8n이 쿼리를 ChatGPT에 전송한 후 결과를 Code 탭에 표시합니다.

사용 한도#

트라이얼 단계에서는 사용 한도가 없습니다. n8n이 이 기능을 영구적으로 제공하게 되면, 요금제 등급에 따라 사용 한도가 생길 수 있습니다.

기능 제한#

n8n의 ChatGPT 구현에는 다음과 같은 제한이 있습니다:

  • AI는 n8n 워크플로의 데이터를 조작하는 코드를 작성합니다. 다른 소스에서 데이터를 가져오도록 요청할 수 없습니다.
  • AI는 스키마만 알고 실제 데이터 값은 알지 못하므로, 추출하려는 데이터를 찾는 방법이나 null 값을 확인하는 방법 등을 직접 알려줘야 합니다.
  • Code 노드 이전의 노드들이 실행되어 Code 노드에 데이터를 전달한 후에 AI 쿼리를 실행해야 합니다.
  • 입력 데이터 스키마가 큰 경우에는 작동하지 않습니다.
  • Code 노드 이전에 노드가 많은 경우 문제가 발생할 수 있습니다.

좋은 프롬프트 작성하기#

좋은 프롬프트를 작성하면 유용한 코드를 얻을 가능성이 높아집니다.

일반적인 팁:

  • 예시 제공: 가능하면 예상 출력 샘플을 제공하세요. 이는 AI가 목표로 하는 변환이나 로직을 더 잘 이해하는 데 도움이 됩니다.
  • 처리 단계 설명: 데이터에 적용할 특정 처리 단계나 로직이 있으면 순서대로 나열하세요. 예: "먼저 18세 미만의 사용자를 모두 필터링하세요. 그런 다음 남은 사용자를 성으로 정렬하세요."
  • 모호함 피하기: AI가 다양한 지시를 이해하지만, 명확하고 직접적으로 표현하면 가장 정확한 코드를 얻을 수 있습니다. "나이 든 사용자를 가져오세요" 대신 "60세 이상의 사용자를 필터링하세요"라고 말하세요.
  • 출력으로 기대하는 것을 명확히 하세요. 데이터를 변환, 필터링, 집계 또는 정렬하길 원하나요? 최대한 자세히 설명하세요.

n8n 특화 지침:

  • 입력 데이터 고려: ChatGPT가 접근하려는 데이터 부분과 수신 데이터가 무엇을 나타내는지 알 수 있도록 하세요. n8n의 내장 메서드 및 변수의 사용 가능성에 대해 ChatGPT에게 알려줄 필요가 있을 수 있습니다.
  • 노드 간 상호작용 선언: 로직이 여러 노드의 데이터를 포함하는 경우, 어떻게 상호작용해야 하는지 지정하세요. "'Node A'의 출력을 'Node B'와 'userID' 속성을 기반으로 병합하세요". 특정 노드의 데이터를 우선하거나 다른 노드를 무시하고 싶다면 명확히 하세요: "'Purchases' 노드의 데이터만 고려하고 'Refunds' 노드는 무시하세요."
  • 출력이 n8n과 호환되는지 확인하세요. n8n이 요구하는 데이터 구조에 대한 자세한 정보는 데이터 구조를 참조하세요.

예시 프롬프트#

이 예시들은 가능한 프롬프트와 작업의 범위를 보여줍니다.

예시 1: 두 번째 데이터셋에서 데이터 찾기#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

세 번째 Code 노드에 다음 프롬프트를 입력하세요:

slack 데이터에는 하나의 항목만 있습니다. 입력 데이터는 모든 Notion 사용자를 나타냅니다. 이메일을 보유하는 person 속성이 null인 경우가 있습니다. Slack 사용자의 notionId를 찾아 반환하고 싶습니다.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const slackUser = $("Mock Slack").all()[0];
const notionUsers = $input.all();
const slackUserEmail = slackUser.json.email;

const notionUser = notionUsers.find(
  (user) => user.json.person && user.json.person.email === slackUserEmail
);

return notionUser ? [{ json: { notionId: notionUser.json.id } }] : [];

예시 2: 데이터 변환#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

Join items Code 노드에 다음 프롬프트를 입력하세요:

모든 사용자 이름을 쉼표로 구분하여 나열한 단일 텍스트 줄을 반환하세요. 각 사용자 이름은 큰따옴표로 묶여야 합니다.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const items = $input.all();
const usernames = items.map((item) => `"${item.json.username}"`);
const result = usernames.join(", ");
return [{ json: { usernames: result } }];

예시 3: 데이터 요약 및 Slack 메시지 생성#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

Summarize Code 노드에 다음 프롬프트를 입력하세요:

제출된 아이디어, 기능, 버그의 수를 집계하는 Slack용 마크다운 텍스트를 만드세요. 제출 유형은 property_type 필드에 저장됩니다. 기능은 "Feature" 속성을, 버그는 "Bug" 속성을, 아이디어는 "Bug" 속성을 가집니다. 또한 메시지에 투표 수 기준 상위 5개 제출물을 나열하세요. 링크의 마크다운으로 "<url|text>"를 사용하세요.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const submissions = $input.all();

// 아이디어, 기능, 버그의 수를 집계
let ideaCount = 0;
let featureCount = 0;
let bugCount = 0;

submissions.forEach((submission) => {
  switch (submission.json.property_type[0]) {
    case "Idea":
      ideaCount++;
      break;
    case "Feature":
      featureCount++;
      break;
    case "Bug":
      bugCount++;
      break;
  }
});

// 투표 수로 제출물 정렬 후 상위 5개 선택
const topSubmissions = submissions
  .sort((a, b) => b.json.property_votes - a.json.property_votes)
  .slice(0, 5);

let topSubmissionText = "";
topSubmissions.forEach((submission) => {
  topSubmissionText += `<${submission.json.url}|${submission.json.name}> with ${submission.json.property_votes} votes\n`;
});

// Slack 메시지 구성
const slackMessage = `*Summary of Submissions*\n
Ideas: ${ideaCount}\n
Features: ${featureCount}\n
Bugs: ${bugCount}\n
Top 5 Submissions:\n
${topSubmissionText}`;

return [{ json: { slackMessage } }];

수신 노드 데이터를 명시적으로 참조하기#

수신 데이터에 중첩 필드가 포함된 경우, 점 표기법을 사용하여 참조하면 AI가 원하는 데이터를 이해하는 데 도움이 됩니다.

"AI 쿼리에서 점 표기법으로 데이터를 참조하는 방법을 강조 표시한 n8n Code 노드 스크린샷"

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

두 번째 Code 노드에 다음 프롬프트를 입력하세요:

"Mock data"의 데이터는 사람들의 목록을 나타냅니다. 각 사람에 대해 personal_info.first_name과 work_info.job_title을 포함하는 새 항목을 반환하세요.

필요한 JavaScript 코드는 다음과 같습니다:

const items = $input.all();
const newItems = items.map((item) => {
  const firstName = item.json.personal_info.first_name;
  const jobTitle = item.json.work_info.job_title;
  return {
    json: {
      firstName,
      jobTitle,
    },
  };
});
return newItems;

관련 자료#

Pluralsight에서 ChatGPT를 사용하여 코드를 작성하는 방법에 대한 짧은 가이드를 제공하며, 예시 프롬프트도 포함되어 있습니다.

코드 수정하기#

AI가 생성한 코드는 수정 없이 작동할 수도 있지만, 편집이 필요할 수도 있습니다. n8n의 데이터 구조를 숙지해야 합니다. 또한 n8n의 내장 메서드와 변수를 유용하게 활용할 수 있습니다.

AI 코딩

원문 보기
요약

셀프 호스팅 환경에서는 사용할 수 없습니다. Python은 지원하지 않습니다. Code 노드의 AI 지원은 Cloud 사용자에게만 제공됩니다. Code 탭에 이미 코드를 작성한 경우, AI가 생성한 코드가 해당 코드를 대체합니다.

셀프 호스팅 환경에서는 사용할 수 없습니다.

Python은 지원하지 않습니다. ///

Code 노드에서 AI 사용하기#

기능 제공 범위

Code 노드의 AI 지원은 Cloud 사용자에게만 제공됩니다. 셀프 호스팅 n8n에서는 사용할 수 없습니다.

AI 생성 코드는 기존 코드를 덮어씁니다

Code 탭에 이미 코드를 작성한 경우, AI가 생성한 코드가 해당 코드를 대체합니다. n8n은 AI를 초기 코드 작성의 시작점으로 활용한 뒤 필요에 따라 편집하는 방식을 권장합니다.

Code 노드에서 ChatGPT를 사용하여 코드를 생성하려면:

  1. Code 노드에서 LanguageJavaScript로 설정합니다.
  2. Ask AI 탭을 선택합니다.
  3. 쿼리를 작성합니다.
  4. Generate Code를 선택합니다. n8n이 쿼리를 ChatGPT에 전송한 후 결과를 Code 탭에 표시합니다.

사용 한도#

트라이얼 단계에서는 사용 한도가 없습니다. n8n이 이 기능을 영구적으로 제공하게 되면, 요금제 등급에 따라 사용 한도가 생길 수 있습니다.

기능 제한#

n8n의 ChatGPT 구현에는 다음과 같은 제한이 있습니다:

  • AI는 n8n 워크플로의 데이터를 조작하는 코드를 작성합니다. 다른 소스에서 데이터를 가져오도록 요청할 수 없습니다.
  • AI는 스키마만 알고 실제 데이터 값은 알지 못하므로, 추출하려는 데이터를 찾는 방법이나 null 값을 확인하는 방법 등을 직접 알려줘야 합니다.
  • Code 노드 이전의 노드들이 실행되어 Code 노드에 데이터를 전달한 후에 AI 쿼리를 실행해야 합니다.
  • 입력 데이터 스키마가 큰 경우에는 작동하지 않습니다.
  • Code 노드 이전에 노드가 많은 경우 문제가 발생할 수 있습니다.

좋은 프롬프트 작성하기#

좋은 프롬프트를 작성하면 유용한 코드를 얻을 가능성이 높아집니다.

일반적인 팁:

  • 예시 제공: 가능하면 예상 출력 샘플을 제공하세요. 이는 AI가 목표로 하는 변환이나 로직을 더 잘 이해하는 데 도움이 됩니다.
  • 처리 단계 설명: 데이터에 적용할 특정 처리 단계나 로직이 있으면 순서대로 나열하세요. 예: "먼저 18세 미만의 사용자를 모두 필터링하세요. 그런 다음 남은 사용자를 성으로 정렬하세요."
  • 모호함 피하기: AI가 다양한 지시를 이해하지만, 명확하고 직접적으로 표현하면 가장 정확한 코드를 얻을 수 있습니다. "나이 든 사용자를 가져오세요" 대신 "60세 이상의 사용자를 필터링하세요"라고 말하세요.
  • 출력으로 기대하는 것을 명확히 하세요. 데이터를 변환, 필터링, 집계 또는 정렬하길 원하나요? 최대한 자세히 설명하세요.

n8n 특화 지침:

  • 입력 데이터 고려: ChatGPT가 접근하려는 데이터 부분과 수신 데이터가 무엇을 나타내는지 알 수 있도록 하세요. n8n의 내장 메서드 및 변수의 사용 가능성에 대해 ChatGPT에게 알려줄 필요가 있을 수 있습니다.
  • 노드 간 상호작용 선언: 로직이 여러 노드의 데이터를 포함하는 경우, 어떻게 상호작용해야 하는지 지정하세요. "'Node A'의 출력을 'Node B'와 'userID' 속성을 기반으로 병합하세요". 특정 노드의 데이터를 우선하거나 다른 노드를 무시하고 싶다면 명확히 하세요: "'Purchases' 노드의 데이터만 고려하고 'Refunds' 노드는 무시하세요."
  • 출력이 n8n과 호환되는지 확인하세요. n8n이 요구하는 데이터 구조에 대한 자세한 정보는 데이터 구조를 참조하세요.

예시 프롬프트#

이 예시들은 가능한 프롬프트와 작업의 범위를 보여줍니다.

예시 1: 두 번째 데이터셋에서 데이터 찾기#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

세 번째 Code 노드에 다음 프롬프트를 입력하세요:

slack 데이터에는 하나의 항목만 있습니다. 입력 데이터는 모든 Notion 사용자를 나타냅니다. 이메일을 보유하는 person 속성이 null인 경우가 있습니다. Slack 사용자의 notionId를 찾아 반환하고 싶습니다.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const slackUser = $("Mock Slack").all()[0];
const notionUsers = $input.all();
const slackUserEmail = slackUser.json.email;

const notionUser = notionUsers.find(
  (user) => user.json.person && user.json.person.email === slackUserEmail
);

return notionUser ? [{ json: { notionId: notionUser.json.id } }] : [];

예시 2: 데이터 변환#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

Join items Code 노드에 다음 프롬프트를 입력하세요:

모든 사용자 이름을 쉼표로 구분하여 나열한 단일 텍스트 줄을 반환하세요. 각 사용자 이름은 큰따옴표로 묶여야 합니다.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const items = $input.all();
const usernames = items.map((item) => `"${item.json.username}"`);
const result = usernames.join(", ");
return [{ json: { usernames: result } }];

예시 3: 데이터 요약 및 Slack 메시지 생성#

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

Summarize Code 노드에 다음 프롬프트를 입력하세요:

제출된 아이디어, 기능, 버그의 수를 집계하는 Slack용 마크다운 텍스트를 만드세요. 제출 유형은 property_type 필드에 저장됩니다. 기능은 "Feature" 속성을, 버그는 "Bug" 속성을, 아이디어는 "Bug" 속성을 가집니다. 또한 메시지에 투표 수 기준 상위 5개 제출물을 나열하세요. 링크의 마크다운으로 "<url|text>"를 사용하세요.

AI가 생성하는 코드를 살펴보세요.

필요한 JavaScript 코드는 다음과 같습니다:

const submissions = $input.all();

// 아이디어, 기능, 버그의 수를 집계
let ideaCount = 0;
let featureCount = 0;
let bugCount = 0;

submissions.forEach((submission) => {
  switch (submission.json.property_type[0]) {
    case "Idea":
      ideaCount++;
      break;
    case "Feature":
      featureCount++;
      break;
    case "Bug":
      bugCount++;
      break;
  }
});

// 투표 수로 제출물 정렬 후 상위 5개 선택
const topSubmissions = submissions
  .sort((a, b) => b.json.property_votes - a.json.property_votes)
  .slice(0, 5);

let topSubmissionText = "";
topSubmissions.forEach((submission) => {
  topSubmissionText += `<${submission.json.url}|${submission.json.name}> with ${submission.json.property_votes} votes\n`;
});

// Slack 메시지 구성
const slackMessage = `*Summary of Submissions*\n
Ideas: ${ideaCount}\n
Features: ${featureCount}\n
Bugs: ${bugCount}\n
Top 5 Submissions:\n
${topSubmissionText}`;

return [{ json: { slackMessage } }];

수신 노드 데이터를 명시적으로 참조하기#

수신 데이터에 중첩 필드가 포함된 경우, 점 표기법을 사용하여 참조하면 AI가 원하는 데이터를 이해하는 데 도움이 됩니다.

"AI 쿼리에서 점 표기법으로 데이터를 참조하는 방법을 강조 표시한 n8n Code 노드 스크린샷"

직접 예시를 시도하려면 예시 워크플로 다운로드하여 n8n에 가져오세요.

두 번째 Code 노드에 다음 프롬프트를 입력하세요:

"Mock data"의 데이터는 사람들의 목록을 나타냅니다. 각 사람에 대해 personal_info.first_name과 work_info.job_title을 포함하는 새 항목을 반환하세요.

필요한 JavaScript 코드는 다음과 같습니다:

const items = $input.all();
const newItems = items.map((item) => {
  const firstName = item.json.personal_info.first_name;
  const jobTitle = item.json.work_info.job_title;
  return {
    json: {
      firstName,
      jobTitle,
    },
  };
});
return newItems;

관련 자료#

Pluralsight에서 ChatGPT를 사용하여 코드를 작성하는 방법에 대한 짧은 가이드를 제공하며, 예시 프롬프트도 포함되어 있습니다.

코드 수정하기#

AI가 생성한 코드는 수정 없이 작동할 수도 있지만, 편집이 필요할 수도 있습니다. n8n의 데이터 구조를 숙지해야 합니다. 또한 n8n의 내장 메서드와 변수를 유용하게 활용할 수 있습니다.