n8n Basic LLM Chain 노드: 모든 워크플로우에 언어 모델 텍스트 생성 추가하기 [무료 워크플로우 JSON]
요약
n8n의 Basic LLM Chain 노드를 사용하여 워크플로우에 언어 모델 텍스트 생성 기능을 추가하는 방법을 설명합니다. 이 노드는 단일 프롬프트와 응답 사이클을 실행하며, 요약, 분류, 추출 등 단발성 생성 작업에 최적화되어 있습니다.
핵심 포인트
- Basic LLM Chain은 단일 프롬프트-응답 사이클을 실행하는 LangChain 래퍼임
- OpenAI, Anthropic, Google, Ollama 등 다양한 Chat Model 노드와 연결 가능
- 에이전트 루프나 메모리 오버헤드 없이 가벼운 텍스트 생성에 적합
- Output Parser를 연결하여 구조화된 JSON 데이터를 출력할 수 있음
n8n Basic LLM Chain 노드: 모든 워크플로우에 언어 모델 텍스트 생성 추가하기 [무료 워크플로우 JSON]
tags: n8n, automation, ai, javascript
n8n Basic LLM Chain 노드는 n8n 워크플로우에 언어 모델 (Language Model) 텍스트 생성을 추가하는 가장 간단한 방법입니다. 이 노드를 어떤 Chat Model 노드(OpenAI, Anthropic, Google, Ollama 등)와도 연결하고, 프롬프트 (Prompt)를 전달하면 텍스트 응답을 받을 수 있습니다. 에이전트 루프 (Agent loop), 도구 호출 (Tool calls), 메모리 오버헤드 (Memory overhead)가 전혀 없습니다.
이 가이드는 모든 설정 옵션, 사람들이 실수하기 쉬운 주의 사항, 세 가지 프로덕션 준비 완료 패턴, 그리고 오늘 바로 가져올 수 있는 무료 워크플로우 JSON을 다룹니다.
Basic LLM Chain 노드가 하는 일
Basic LLM Chain은 단일 프롬프트 → 응답 사이클을 실행하는 LangChain 래퍼 (Wrapper)입니다:
- 하나 이상의 입력 아이템 (텍스트, 데이터 필드, 워크플로우가 생성한 무엇이든)을 가져옵니다.
- 정의한 템플릿으로부터 프롬프트를 구축합니다 (
{{ $json.fieldName }}를 통해 모든 입력 필드에 접근 가능). - 연결된 Chat Model 서브 노드로 프롬프트를 전송합니다.
- 각 출력 아이템에 모델의 텍스트 응답을
{ "text": "..." }형태로 반환합니다.
이 노드는 루프를 돌거나, 도구를 호출하거나, 메모리를 사용하거나, 단계 간에 추론을 수행하지 않습니다. 그러한 기능이 필요하다면 AI Agent 노드를 사용하세요. Basic LLM Chain은 요약 (Summarise), 분류 (Classify), 추출 (Extract), 재작성 (Rewrite), 번역 (Translate), 점수 매기기 (Score)와 같은 단발성 생성 (Single-shot generation)을 위한 것입니다.
노드 구조 (Node anatomy)
필수 서브 노드: Chat Model
Basic LLM Chain에는 내장된 모델이 없습니다. 반드시 Chat Model 노드를 자식 노드로 부착해야 합니다:
- OpenAI Chat Model — GPT-4o, GPT-4o-mini 등
- Anthropic Chat Model — claude-opus-4, claude-sonnet-4-6, claude-haiku-4-5
- Google Gemini Chat Model — gemini-2.5-flash, gemini-2.5-pro
- Ollama Chat Model — 로컬 모델 (llama3, mistral 등)
- Azure OpenAI Chat Model — 엔터프라이즈 Azure 배포 환경
- Mistral Cloud Chat Model, Cohere, Groq 및 기타
Chat Model 노드를 캔버스에 드래그한 다음, Basic LLM Chain의 AI Language Model 입력(보라색 커넥터)에 연결하세요.
선택적 서브 노드: Output Parser
기본적으로 체인은 { "text": "..." } 형태의 가공되지 않은 텍스트(raw text)를 반환합니다. 만약 구조화된 출력(JSON, 리스트, 특정 스키마)이 필요하다면, Output Parser (출력 파서)를 연결하세요:
- Structured Output Parser (구조화된 출력 파서) — Zod/JSON 스키마를 정의합니다. 모델은 해당 스키마에 일치하는 JSON을 반환하도록 지시받습니다.
- Auto-fixing Output Parser (자동 수정 출력 파서) — 다른 파서를 감싸는 역할을 합니다. 모델이 잘못된 형식의 JSON을 반환하면 자동으로 수정 프롬프트를 보냅니다.
- List Output Parser (리스트 출력 파서) — 단순한 문자열 배열(array of strings)을 반환합니다.
- Item List Output Parser (아이템 리스트 출력 파서) — 쉼표(,)나 줄바꿈으로 구분된 리스트를 개별 아이템으로 분리합니다.
- Bytes Output Parser (바이트 출력 파서) — 가공되지 않은 바이트(raw bytes)를 반환합니다 (드문 경우).
Prompt template (프롬프트 템플릿)
주요 설정 필드는 Prompt (프롬프트) (또는 채팅 스타일 템플릿을 사용하는 경우 User Message (사용자 메시지))입니다. 이는 현재 아이템의 필드에 접근할 수 있는 Mustache/Handlebars 스타일의 템플릿입니다:
다음 지원 티켓을 한 문장으로 요약하세요. 간결하게 작성하세요.
티켓 제목: {{ $json.subject }}
...
n8n은 각 아이템에 대해 런타임 시 {{ $json.fieldName }}을 평가하므로, 하나의 체인 노드가 배치(batch)를 자동으로 처리합니다.
System message (시스템 메시지)
선택 사항인 System Message (시스템 메시지) 필드는 모델의 페르소나(persona)나 지침을 설정합니다. 짧고 직접적으로 작성하세요:
당신은 유능한 어시스턴트입니다. 마크다운(markdown) 서식 없이 일반 텍스트로만 응답하세요.
Temperature and other model params (온도 및 기타 모델 파라미터)
Temperature (온도), max tokens (최대 토큰), top-p, 그리고 stop sequences (중단 시퀀스)는 Basic LLM Chain 자체가 아니라 Chat Model (채팅 모델) 서브 노드에서 설정합니다. 해당 노드에서 이를 조정하세요.
Gotchas (주의 사항)
1. 반드시 Chat Model을 연결해야 합니다 — 연결하지 않으면 노드가 실행되지 않습니다
Basic LLM Chain에는 폴백(fallback) 모델이 없습니다. 만약 AI Language Model 입력이 연결되어 있지 않으면 실행이 즉시 실패합니다. 항상 Chat Model 서브 노드를 먼저 연결하세요.
2. 프롬프트 내의 {{ $json }} — {{ $item.json }}이 아님
Prompt 필드 내부에서 n8n은 Mustache 문법을 사용합니다. 올바른 참조 방식은 {{ $json.fieldName }}이며, 다른 노드 필드에서 사용되는 표현식 (expression) 문법인 {{ $item.json.fieldName }}이 아닙니다. 여기서 표현식 문법을 사용하면 값이 아닌 리터럴 텍스트가 출력됩니다.
3. Output Parser를 연결하지 않으면 출력은 항상 { "text": "..." } 형태임
summary나 category와 같은 필드를 기대하는 후속 노드들은 해당 필드를 찾을 수 없습니다. Output Parser (출력 파서)를 연결하거나, 체인 뒤에 Set 노드를 추가하여 text를 원하는 필드 이름으로 변경하세요.
4. 입력 아이템당 한 번의 LLM 호출
Basic LLM Chain은 입력 아이템당 한 번 실행됩니다. 상위 노드에서 500개의 아이템을 생성하면 500번의 모델 호출이 발생합니다. 대량의 배치 (batch) 처리를 할 경우, 상위 노드에 Split In Batches 노드를 추가하여 모델 서브 노드의 속도 제한 (rate limits)을 준수하세요.
5. 컨텍스트 윈도우 (Context window) 제한
프롬프트에 긴 문서를 전달하는 경우 토큰 수를 주의 깊게 확인해야 합니다. 이 체인은 자동으로 청킹 (chunking)을 수행하지 않습니다. 긴 문서 요약을 위해서는 대신 Summarization Chain 노드를 사용하세요. 이 노드는 청킹 및 Map-Reduce 전략을 처리합니다.
6. 체인은 병합된 아이템이 아닌 새로운 아이템을 반환함
출력 아이템에는 { "text": "..." } (또는 파싱된 출력)만 포함됩니다. 입력 필드들은 자동으로 전달되지 않습니다. 두 데이터가 모두 필요한 경우, Merge 노드를 사용하여 체인의 출력을 원래 아이템과 다시 결합하세요.
세 가지 프로덕션 준비 완료 패턴 (production-ready patterns)
패턴 1: 지원 티켓 분류기 (Support ticket classifier)
들어오는 지원 티켓을 카테고리와 긴급도에 따라 분류하여 사람이 직접 분류(triage)하지 않아도 라우팅될 수 있도록 합니다.
워크플로우:
Webhook Trigger → Basic LLM Chain (+ OpenAI Chat Model + Structured Output Parser) → Switch node → Slack/email routing
프롬프트 (Prompt):
이 지원 티켓을 분류하세요.
제목: {{ $json.subject }}
...
Structured Output Parser 스키마:
{
"category": "string",
"urgency": "string",
...
Downstream (하류 단계): urgency 값에 따라 Switch 노드가 경로를 분기합니다. "high"인 경우 Slack 알림을 보내고, "medium" 또는 "low"인 경우 Zendesk 티켓을 생성합니다.
패턴 2: 블로그 포스트 메타 데이터 생성기
작성된 블로그 포스트 초안을 바탕으로, 발행 전 SEO 제목, 메타 설명 (meta description), 그리고 5개의 태그를 자동으로 생성합니다.
워크플로우 (Workflow):
Google Drive Trigger (새 파일) → Google Drive 노드 (콘텐츠 읽기) → Basic LLM Chain (+ Anthropic Chat Model + Structured Output Parser) → Google Sheets 노드 (메타데이터 행 쓰기) → 알림 (Notify)
프롬프트 (Prompt):
당신은 SEO 카피라이터입니다. 아래의 블로그 포스트를 바탕으로 다음을 생성하세요:
- SEO 제목 (최대 60자, 주요 키워드를 앞부분에 배치)
- 메타 설명 (최대 155자, 행동 유도 문구(call to action) 포함)
...
Structured Output Parser 스키마:
{
"seo_title": "string",
"meta_description": "string",
...
}
이 패턴은 짧은 포스트의 경우 haiku/flash 모델을 사용하여 비용 없이 실행할 수 있습니다. 품질이 가장 중요한 포스트의 경우에는 Sonnet/GPT-4o를 사용하도록 예약해 두세요.
패턴 3: 고객 리뷰 감성 분석 + 답변 초안 작성
들어오는 제품 리뷰를 처리합니다. 감성 (sentiment), 주요 테마를 추출하고 개인화된 답변 초안을 작성합니다. 이 초안은 전송 전 사람이 승인할 수 있는 상태로 준비됩니다.
워크플로우 (Workflow):
Schedule Trigger → HTTP Request (API에서 리뷰 가져오기) → Split Out (리뷰당 하나의 아이템으로 분리) → Basic LLM Chain (+ Claude Haiku + Structured Output Parser) → Google Sheets append → Slack 요약 (digest)
프롬프트 (Prompt):
이 제품 리뷰를 분석하고 답변 초안을 작성하세요.
리뷰 ({{ $json.rating }} 별점):
...
답변 초안은 Sheets에 저장됩니다. Slack 요약에는 그날의 리뷰가 표시되며, 답변을 승인하거나 편집할 수 있는 원클릭 링크가 포함됩니다. 사람은 예외적인 경우(outliers)에만 개입합니다.
무료 워크플로우 JSON
이 내용을 n8n에 가져오기(Workflows → Import from clipboard) 하면 Webhook 트리거, 체인, 그리고 Structured Output Parser가 연결된 작동 가능한 Basic LLM Chain 스켈레톤을 얻을 수 있습니다:
{
"name": "Basic LLM Chain — Starter",
"nodes": [
...
참고: 가져오기(import)를 마친 후, Basic LLM Chain의 AI Language Model 입력단에 연결된 Chat Model 서브 노드(예: OpenAI Chat Model)를 추가하세요. 이 노드 없이는 워크플로우가 실행되지 않습니다.
Basic LLM Chain vs AI Agent: 언제 무엇을 사용할 것인가
| 사용 사례 | Basic LLM Chain | AI Agent |
|---|---|---|
| 단일 프롬프트 → 텍스트 응답 | ✅ | 과함 (overkill) |
| ... |
경험 법칙(Rule of thumb): 작업을 단일 프롬프트로 작성할 수 있다면 Basic LLM Chain을 사용하세요. 만약 작업이 모델에게 다음에 무엇을 할지 결정하도록 요구한다면, AI Agent를 사용하세요.
빠른 시작 체크리스트
- Chat Model 서브 노드를 추가하고 이를 Basic LLM Chain의 보라색 입력단에 연결합니다.
- 동적 값(dynamic values)을 위해
{{ $json.fieldName }}을 사용하여 프롬프트를 작성합니다. - 구조화된 출력(structured output)을 위해 Output Parser 서브 노드를 추가합니다.
-
text를 특정 필드로 이름을 변경해야 하는 경우, 후속 단계에 Set 노드를 추가합니다. - 대량 배치(large batches)로 실행하기 전에 단일 항목으로 테스트합니다.
- Chat Model 서브 노드에서 temperature와 max tokens를 설정합니다.
Basic LLM Chain은 단발성(single-shot) AI 작업을 위한 n8n의 핵심 도구입니다. 한 번 연결하고 데이터를 입력하면, 에이전트의 복잡성을 건드리지 않고도 워크플로우의 모든 항목에 대해 분류(classification), 요약(summarisation), 추출(extraction), 초안 작성(drafting)과 같은 LLM 처리를 수행할 수 있습니다. 여기서 시작하고, 진정으로 필요한 경우에만 AI Agent로 넘어가세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기