InfoGrab DocsInfoGrab Docs

AI 코딩

요약

셀프 호스팅에서는 사용할 수 없습니다. Python은 지원되지 않습니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 트라이얼 기간 동안에는 사용량 제한이 없습니다. n8n의 ChatGPT 구현에는 다음과 같은 제한 사항이 있습니다:

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

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

Code node에서 AI 사용하기#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

사용량 제한#

트라이얼 기간 동안에는 사용량 제한이 없습니다. n8n이 이 기능을 정식으로 도입하면, 요금제에 따라 사용량 제한이 적용될 수 있습니다.

기능 제한#

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

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

좋은 프롬프트 작성하기#

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

일반적인 팁:

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

그리고 n8n 관련 가이드는 다음과 같습니다:

  • 입력 데이터에 대해 생각하기: ChatGPT가 접근하려는 데이터의 어느 부분인지, 그리고 수신 데이터가 무엇을 나타내는지 알고 있는지 확인하세요. n8n의 내장 메서드와 변수의 사용 가능 여부를 ChatGPT에게 알려줘야 할 수도 있습니다.
  • 노드 간 상호작용 선언: 로직에 여러 노드의 데이터가 관련되어 있다면, 그것들이 어떻게 상호작용해야 하는지 명시하세요. "'userID' 속성을 기준으로 'Node A'와 'Node B'의 출력을 병합하세요." 특정 노드의 데이터만 사용하거나 다른 노드는 무시하고 싶다면 명확하게 표현하세요: "'Purchases' 노드의 데이터만 고려하고 'Refunds' 노드는 무시하세요."
  • 출력이 n8n과 호환되는지 확인하세요. n8n이 요구하는 데이터 구조에 대한 자세한 내용은 데이터 구조를 참고하세요.

예시 프롬프트#

이 예시들은 가능한 다양한 프롬프트와 작업을 보여줍니다.

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

직접 예시를 실행해보려면, 예시 워크플로를 다운로드하여 n8n에 가져오세요:

예시 워크플로

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

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 node에서 다음 프롬프트를 입력하세요:

모든 사용자명을 쉼표로 나열한 한 줄짜리 텍스트를 반환하세요. 각 사용자명은 큰따옴표로 묶어야 합니다.

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 node에서 다음 프롬프트를 입력하세요:

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

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

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

const submissions = $input.all();

// Count the number of ideas, features, and bugs
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;
  }
});

// Sort submissions by votes and take the top 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`;
});

// Construct the Slack message
const slackMessage = `*Summary of Submissions*\n
Ideas: ${ideaCount}\n
Features: ${featureCount}\n
Bugs: ${bugCount}\n
Top 5 Submissions:\n
${topSubmissionText}`;

return [{ json: { slackMessage } }];

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

수신 데이터에 중첩된 필드가 포함되어 있다면, 점 표기법(dot notation)을 사용해 참조하면 AI가 원하는 데이터를 더 잘 이해하는 데 도움이 됩니다.

"점 표기법을 사용해 AI 쿼리에서 데이터를 참조하는 방법을 강조한 n8n 코드 노드 스크린샷"

직접 예시를 실행해보려면, 예시 워크플로를 다운로드하여 n8n에 가져오세요:

예시 워크플로

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

"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 코딩

n8n v2.29
원문 보기
요약

셀프 호스팅에서는 사용할 수 없습니다. Python은 지원되지 않습니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 트라이얼 기간 동안에는 사용량 제한이 없습니다. n8n의 ChatGPT 구현에는 다음과 같은 제한 사항이 있습니다:

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

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

Code node에서 AI 사용하기#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

사용량 제한#

트라이얼 기간 동안에는 사용량 제한이 없습니다. n8n이 이 기능을 정식으로 도입하면, 요금제에 따라 사용량 제한이 적용될 수 있습니다.

기능 제한#

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

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

좋은 프롬프트 작성하기#

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

일반적인 팁:

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

그리고 n8n 관련 가이드는 다음과 같습니다:

  • 입력 데이터에 대해 생각하기: ChatGPT가 접근하려는 데이터의 어느 부분인지, 그리고 수신 데이터가 무엇을 나타내는지 알고 있는지 확인하세요. n8n의 내장 메서드와 변수의 사용 가능 여부를 ChatGPT에게 알려줘야 할 수도 있습니다.
  • 노드 간 상호작용 선언: 로직에 여러 노드의 데이터가 관련되어 있다면, 그것들이 어떻게 상호작용해야 하는지 명시하세요. "'userID' 속성을 기준으로 'Node A'와 'Node B'의 출력을 병합하세요." 특정 노드의 데이터만 사용하거나 다른 노드는 무시하고 싶다면 명확하게 표현하세요: "'Purchases' 노드의 데이터만 고려하고 'Refunds' 노드는 무시하세요."
  • 출력이 n8n과 호환되는지 확인하세요. n8n이 요구하는 데이터 구조에 대한 자세한 내용은 데이터 구조를 참고하세요.

예시 프롬프트#

이 예시들은 가능한 다양한 프롬프트와 작업을 보여줍니다.

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

직접 예시를 실행해보려면, 예시 워크플로를 다운로드하여 n8n에 가져오세요:

예시 워크플로

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

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 node에서 다음 프롬프트를 입력하세요:

모든 사용자명을 쉼표로 나열한 한 줄짜리 텍스트를 반환하세요. 각 사용자명은 큰따옴표로 묶어야 합니다.

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 node에서 다음 프롬프트를 입력하세요:

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

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

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

const submissions = $input.all();

// Count the number of ideas, features, and bugs
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;
  }
});

// Sort submissions by votes and take the top 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`;
});

// Construct the Slack message
const slackMessage = `*Summary of Submissions*\n
Ideas: ${ideaCount}\n
Features: ${featureCount}\n
Bugs: ${bugCount}\n
Top 5 Submissions:\n
${topSubmissionText}`;

return [{ json: { slackMessage } }];

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

수신 데이터에 중첩된 필드가 포함되어 있다면, 점 표기법(dot notation)을 사용해 참조하면 AI가 원하는 데이터를 더 잘 이해하는 데 도움이 됩니다.

"점 표기법을 사용해 AI 쿼리에서 데이터를 참조하는 방법을 강조한 n8n 코드 노드 스크린샷"

직접 예시를 실행해보려면, 예시 워크플로를 다운로드하여 n8n에 가져오세요:

예시 워크플로

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

"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의 내장 메서드와 변수도 유용하게 사용할 수 있습니다.