← 노드 한 장 전체#66 · Item List Output Parser
Item List Output Parser
품목 이름 3개를 AI에게 3줄로 받고, 실제 n8n item 개수를 확인해요
이 글은 이런 분께Basic LLM Chain의 목록 응답을 줄바꿈 기준으로 받고 n8n item 구조까지 확인하고 싶은 분

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요
품목 이름 3개를 AI에게 3줄로 요청하고 Item List Output Parser로 받아봤어요.
실제 기록은 두 번의 모델 호출로 이어졌습니다.
먼저 결과부터
이번 기록은 모델 호출 2회입니다.
우리가 실제로 돌린 기록 · 실행 #74907 · 2026-10-30
우리가 실제로 돌린 기록 · 실행 #74907 · 2026-10-30


따라 하기
실제로 실행한 워크플로우를 바탕으로 정리했어요. 계정·식별자는 공개용 값으로 치환했고, 그 밖의 차이는 아래 주의사항에 표시했어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 다운로드 JSON의 설정값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.
Step 1. Manual Trigger 노드 추가이름: Run manually
설정 없이 그대로 추가해요.
Step 2. Code 노드 추가이름: Direct sample item names
| JavaScript | // 직접 작성한 샘플 품목 3개. 실제 상품/고객 데이터 아님.
const names=["머그컵","접이식 우산","노트"];
return [{json:{sample:true,sourceKind:'direct-authored-sample',sourceText:names.join('\n'),expectedNames:names}}]; |
Step 3. Basic LLM Chain 노드 추가이름: Basic LLM Chain
| Source for Prompt (User Message) | Define below |
| Require Specific Output Format | 켜짐 |
| Prompt (User Message) | 직접 작성한 샘플 품목 목록입니다. 각 줄의 품목 이름을 그대로 3줄로 다시 출력하세요. 설명, 번호, 따옴표, 글머리표 없이 원문 순서를 유지하세요.
원문 목록:
{{ $json.sourceText }} |
| Batch Processing › Batch Size | 1 |
Step 4. OpenAI Chat Model 노드 추가이름: OpenAI Chat Model
| Model | gpt-4.1-mini |
| Options › Sampling Temperature | 0 |
Step 5. Item List Output Parser 노드 추가이름: Item List Output Parser
| Options › Number Of Items | 3 |
| Options › Separator | \n |
Step 6. Code 노드 추가이름: Verify 3 native parser items and order
| JavaScript | const src=$('Direct sample item names').first().json;
const input=$input.all();
if(input.length!==3) throw new Error('Expected 3 native parser output items');
const names=input.map(it=>it.json.text??it.json.output??it.json);
const shape=names.every(v=>typeof v==='string')&&names.length===3;
const originalNamesMatch=shape&&names.every((v,i)=>v===src.expectedNames[i]);
if(!originalNamesMatch) throw new Error('Parser output names/order mismatch');
return [{json:{sample:true,sourceKind:src.sourceKind,sourceText:src.sourceText,parserArray:names,parserArrayLength:names.length,n8nItemCountAfterParser:input.length,nativeParserOutput:true,originalNamesMatch:true,orderVerified:true,verificationNote:'Basic LLM Chain이 parser의 3개 문자열을 3 n8n items로 출력했고 원문 이름·순서를 검증.'}}]; |
가져와서 쓸 때 확인할 것
- [공식 문서] Number Of Items는 반환할 최대 항목 수이며 -1이면 제한이 없습니다. 이번에는 3으로 고정했습니다.
- [공식 문서] Separator 기본값은 줄바꿈입니다. 이번에는 \n을 명시했습니다.
- [실제 확인] 첫 호출 #74903에서 Model과 Parser는 3개 text item을 성공적으로 냈지만 뒤 helper의 1 item 가정으로 실행이 실패했습니다.
- [실제 확인] 가정을 고친 두 번째 호출 #74907에서 native 3 n8n items의 원문 이름과 순서를 3/3 확인했습니다.
- [실제 확인] 전체 모델 호출은 2회입니다. 최종 성공 실행 1회는 두 번째 호출의 성공 범위만 뜻합니다.
- [실제 확인] 이번 실행에서 관측한 native 3 items가 항상 보장되는 것은 아니며 AI 출력 정확도도 별도 보장되지 않습니다.
- [운영] 실행 전용 approved gpt-4.1-mini credential만 사용했고 credential 정보는 공개 JSON에서 제거했습니다.
- YOUR_… 표시를 내 값으로 바꾸고, 계정이 필요한 서비스 노드만 자격 증명을 연결하세요. 그런 칸이나 노드가 없는 예제는 추가 계정 없이 실행할 수 있어요.
노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.