n8n × AI 입문 — LLM 노드로 텍스트 자동 생성

n8n × AI 입문 — LLM 노드로 텍스트 자동 생성

Part 4의 시작이다. n8n이 2025~2026년에 가장 주목받는 이유 중 하나가 바로 AI 네이티브 통합이다. LLM을 워크플로우에 자연스럽게 녹여보자.

AI Credential 설정

OpenAI

  1. platform.openai.com → 로그인
  2. API Keys → Create new secret key
  3. n8n → Credentials → Add → "OpenAI API" → API Key 입력

Anthropic (Claude)

  1. console.anthropic.com → 로그인
  2. API Keys → Create Key
  3. n8n → Credentials → Add → "Anthropic API" → API Key 입력

Google AI (Gemini)

  1. aistudio.google.com → API Key 생성
  2. n8n → Credentials → Add → "Google AI" → API Key 입력

Chat Model 노드 기본

n8n은 AI 모델을 Chat Model 노드로 통일하여 제공한다.

주요 모델별 특성

모델 강점 비용 적합한 작업
GPT-4o 범용 최강 $$$ 복잡한 분석, 코드 생성
GPT-4o-mini 속도+비용 $ 요약, 분류, 간단한 생성
Claude 3.5 Sonnet 긴 문맥, 정확한 추론 $$ 긴 문서 분석, 코드 리뷰
Gemini 1.5 Pro 초장문 컨텍스트 $$ 대규모 데이터 분석
Gemini 1.5 Flash 속도 $ 빠른 분류, 요약

기본 사용법: AI Chain

가장 간단한 AI 워크플로우는 Basic LLM Chain을 사용한다.

[Trigger] → [Basic LLM Chain] → [후속 처리]
                 ↑
           [Chat Model: GPT-4o-mini]

Basic LLM Chain 설정

Prompt Type: Define Below
Text: {{ $json.text }}를 한국어로 번역해주세요. 원문의 뉘앙스를 최대한 살려주세요.

System Message 활용

System Message:
  당신은 전문 번역가입니다. 다음 규칙을 따릅니다:
  1. 자연스러운 한국어로 번역
  2. 전문 용어는 영어 병기 (예: 워크플로우(Workflow))
  3. 문장 끝은 "~합니다" 존칭 사용

프롬프트 엔지니어링 기초

좋은 프롬프트의 3요소

요소 설명 예시
역할(Role) AI의 페르소나 설정 "당신은 시니어 데이터 분석가입니다"
지시(Instruction) 구체적인 작업 지시 "아래 데이터를 분석하고 인사이트 3개를 추출하세요"
형식(Format) 출력 형식 지정 "결과를 JSON 형식으로 반환하세요"

구조화된 출력 요청

System Message:
  당신은 고객 리뷰 분석 전문가입니다.

User Message:
  다음 리뷰를 분석하고 아래 JSON 형식으로만 응답하세요:
  {
    "sentiment": "positive" | "negative" | "neutral",
    "score": 1-10,
    "keywords": ["키워드1", "키워드2"],
    "summary": "한 줄 요약"
  }

  리뷰: {{ $json.review }}

이렇게 JSON 형식을 지정하면 Code 노드에서 JSON.parse()로 파싱하여 후속 처리가 편해진다.


실전 1: 이메일 자동 요약

[Gmail Trigger: 새 이메일]
  → [Basic LLM Chain: 요약]
  → [Slack: 요약 메시지 전송]

프롬프트:

다음 이메일을 3줄로 요약해주세요. 각 줄은 핵심 내용 하나를 담아주세요.
응답 형식:
1. (핵심 1)
2. (핵심 2)  
3. (핵심 3)

이메일 제목: {{ $json.subject }}
이메일 내용: {{ $json.text }}

실전 2: 고객 리뷰 감성 분석

[Google Sheets: 새 리뷰 읽기]
  → [Split In Batches: 10개씩]
  → [Basic LLM Chain: 감성 분석]
  → [Code: JSON 파싱]
  → [Google Sheets: 결과 업데이트]

Code 노드: AI 응답 파싱

const response = $input.item.json.text;
try {
  const parsed = JSON.parse(response);
  return {
    json: {
      sentiment: parsed.sentiment,
      score: parsed.score,
      keywords: parsed.keywords.join(', '),
      summary: parsed.summary
    }
  };
} catch (e) {
  return {
    json: {
      sentiment: 'error',
      score: 0,
      keywords: '',
      summary: 'AI 응답 파싱 실패: ' + response.substring(0, 100)
    }
  };
}

실전 3: 다국어 자동 번역 파이프라인

[Webhook: 새 콘텐츠]
  → [Basic LLM Chain: 한→영 번역]
  → [Basic LLM Chain: 한→일 번역]
  → [Merge: Combine By Position]
  → [DB: 번역 결과 저장]

비용 모니터링

AI API 호출은 토큰 단위 과금이다. 비용을 관리하자.

토큰 추정

언어 1,000 토큰 ≈
영어 750 단어
한국어 500~600 글자

비용 절감 팁

전략 방법
작은 모델 먼저 분류→ GPT-4o-mini, 복잡한 분석→ GPT-4o
프롬프트 최적화 불필요한 설명 제거, 간결한 지시
캐싱 같은 입력은 DB에서 캐시 조회 후 호출
배치 처리 개별 호출 대신 여러 건을 한 번에 처리
토큰 제한 Max Tokens 설정으로 응답 길이 제한

Temperature와 파라미터

파라미터 설명 권장값
Temperature 창의성 (0=정확, 1=창의적) 분류: 0, 생성: 0.7
Max Tokens 최대 응답 토큰 수 작업에 맞게 설정
Top P 샘플링 범위 일반적으로 1 유지
Temperature 0: "이 리뷰는 부정적입니다." (항상 같은 답)
Temperature 0.7: "이 리뷰는 부정적이며, 고객이 배송 지연에 강한 불만을 표현하고 있습니다."
Temperature 1: "배송의 미로 속에서 길을 잃은 고객의 탄식이..." (너무 창의적)

📝 정리

  • [x] AI Credential: OpenAI, Anthropic, Google AI 각각 API Key 발급 → n8n 등록
  • [x] Basic LLM Chain: System Message + User Message 조합으로 AI 호출
  • [x] 프롬프트 엔지니어링: 역할 + 지시 + 형식을 명확히 지정
  • [x] 구조화 출력: JSON 형식 요청 → Code 노드에서 파싱
  • [x] 비용 관리: 작은 모델 우선, 프롬프트 최적화, 캐싱, Temperature 설정

다음 편 예고

22편: AI Agent 노드 — 자율적으로 판단하는 워크플로우

LLM 호출을 넘어, AI가 스스로 도구를 선택하고 판단하는 에이전트를 만든다. Tool과 Memory의 개념을 배우자.