콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

AI 코딩 및 GPT#

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

Python은 지원되지 않습니다.

코드 노드에서 AI 사용하기#

기능 사용 가능 여부

코드 노드에서 AI 지원 기능은 클라우드 사용자가 이용할 수 있습니다. 자체 호스팅된 n8n에서는 지원되지 않습니다.

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

이미 코드 탭에서 일부 코드를 작성한 경우, AI가 생성한 코드가 이를 대체합니다. n8n은 AI를 활용하여 초기 코드를 생성한 후 필요에 따라 편집하는 것을 권장합니다.

코드 노드에서 ChatGPT를 사용하여 코드를 생성하는 방법:

  1. 코드 노드에서 언어(Language)JavaScript 로 설정합니다.
  2. Ask AI 탭을 선택합니다.
  3. 원하는 내용을 입력합니다.
  4. Generate Code 버튼을 선택합니다. n8n은 입력한 내용을 ChatGPT에 전송한 후 코드 탭에 결과를 표시합니다.

사용 제한#

시험 단계에서는 사용 제한이 없습니다. n8n이 기능을 영구적으로 만들면, 요금제의 일환으로 사용 제한이 있을 수 있습니다.

기능 제한#

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

  • AI는 n8n 워크플로우의 데이터를 조작하는 코드를 작성합니다. 다른 소스에서 데이터를 가져오라고 요청할 수 없습니다.
  • AI는 귀하의 데이터를 알지 못하며, схем만 알고 있습니다. 따라서 자료 추출 방법이나 null을 확인하는 방법과 같은 정보를 제공해야 합니다.
  • 코드 노드 전에 있는 노드들은 AI 쿼리를 실행하기 전에 실행되어 데이터가 코드 노드에 전달되어야 합니다.
  • 큰 입력 데이터 스키마와 호환되지 않습니다.
  • 코드 노드 전에 많은 노드가 있는 경우 문제가 발생할 수 있습니다.

좋은 프롬프트 작성하기#

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

일반적인 팁:

  • 예제 제공: 가능하다면, 기대하는 출력의 샘플을 제공하세요. 이는 AI가 목표로 하는 변환 또는 논리를 더 잘 이해하는 데 도움이 됩니다.
  • 처리 단계 설명: 데이터에 적용해야 할 특정 처리 단계나 논리가 있는 경우, 순서대로 나열하세요. 예: "먼저, 18세 미만의 모든 사용자를 필터링합니다. 그런 다음 나머지 사용자를 성에 따라 정렬합니다."
  • 모호함 피하기: AI가 다양한 지침을 이해하지만, 명확하고 직접적일수록 가장 정확한 코드를 얻을 수 있습니다. "나이 많은 사용자를 가져와라"라고 말하는 대신 "60세 이상인 사용자를 필터링하라"라고 말할 수 있습니다.
  • 출력에 대해 기대하는 바를 명확히 하세요. 데이터를 변환, 필터링, 집계 또는 정렬하기를 원하십니까? 가능한 한 많은 세부 정보를 제공하세요.

그리고 n8n에 관한 구체적인 지침:

  • 입력 데이터에 대해 생각해보세요: ChatGPT가 어떤 데이터를 접근해야 하는지 및 수신 데이터가 무엇을 나타내는지 확인하세요. n8n의 내장 메서드 및 변수의 가용성을 ChatGPT에 알려줘야 할 수도 있습니다.
  • 노드 간의 상호작용 선언: 논리에 여러 노드의 데이터가 포함된다면, 상호작용 방식을 지정하세요. "‘Node A’의 출력을 ‘Node B’와 ‘userID’ 속성을 기준으로 병합하세요." 특정 노드에서 데이터를 가져오고 다른 노드를 무시하고 싶다면 명확히 하세요: "‘Purchases’ 노드의 데이터만 고려하고 ‘Refunds’ 노드는 무시하세요."
  • 출력이 n8n과 호환되도록 하세요. n8n이 요구하는 데이터 구조에 대한 추가 정보는 데이터 구조를 참고하세요.

예시 프롬프트#

다음은 다양한 가능한 프롬프트와 작업을 보여주는 예시입니다.

예시 1: 두 번째 데이터 세트 내에서 데이터 찾기#

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

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

슬랙 데이터에는 단 하나의 항목만 포함되어 있습니다. 입력 데이터는 모든 Notion 사용자를 나타냅니다. 때때로 이메일을 보유하는 사람 속성이 null일 수 있습니다. 슬랙 사용자의 notionId를 찾고 반환하고 싶습니다.

AI가 생성하는 코드를 확인하세요.

다음은 필요한 JavaScript입니다:

1
2
3
4
5
6
7
8
9
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에 가져오세요.

아이템 조인 코드 노드에 다음 프롬프트를 입력하세요:

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

AI가 생성한 코드를 확인하세요.

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

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

예제 3: 데이터 요약 및 슬랙 메시지 작성#

예제를 직접 시도해 보려면, 예제 워크플로우 다운로드 후 n8n에 가져오세요.

요약 코드 노드에 다음 프롬프트를 입력하세요:

제출된 아이디어, 기능 및 버그의 수를 세는 슬랙 용 markdown 텍스트를 만드세요. 제출 유형은 property_type 필드에 저장됩니다. 기능은 "Feature" 속성을 가지고, 버그는 "Bug" 속성을 가지고, 아이디어는 "Idea" 속성을 가집니다. 또한 그 메시지에서 투표 순위로 상위 다섯 개 제출물을 나열하세요. 링크용 markdown은 ""를 사용하세요.

AI가 생성한 코드를 확인하세요.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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`;
});

// 슬랙 메시지 구성
const slackMessage = `*제출 요약*\n
아이디어: ${ideaCount}\n
기능: ${featureCount}\n
버그: ${bugCount}\n
상위 5개 제출물:\n
${topSubmissionText}`;

return [{ json: { slackMessage } }];

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

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

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

예제를 직접 시도해 보려면, 예제 워크플로우 다운로드 후 n8n에 가져오세요.

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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의 내장 메서드와 변수가 유용할 수 있습니다.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!