← 노드 한 장 전체#28 · Text Classifier
Text Classifier
리뷰를 AI가 카테고리별로 나누기
이 글은 이런 분께들어온 글을 AI 판단으로 카테고리별로 나누고 싶은 분

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요
리뷰 9개, 하나씩 읽고 칭찬인지 불만인지 나누고 계신가요?
Text Classifier 노드는 글을 읽고, 내가 정한 카테고리 중 맞는 출구로 보내 줘요. (AI판 Switch)
먼저 결과부터
Text Classifier는 AI가 글을 정해 둔 카테고리 출구로 나눈다(AI판 Switch). Steam 리뷰 9개 → 버그·기술 2, 칭찬 7(AI 분류는 틀릴 수 있음).
우리가 실제로 돌린 기록 · 실행 #71657 · 2026-10-25
우리가 실제로 돌린 기록 · 실행 #71657 · 2026-10-25
- 카테고리마다 두 칸: Category(출구 이름) + Description(AI에게 주는 기준)
- 이번 실행: Steam 최근 리뷰 9개 → 칭찬 7 · 버그·기술 2 · 가격·가치 0 · 기타 0 (4.3초)
- "버그 많았지만 좋아졌다"는 리뷰는 칭찬으로, "PC에서 훨씬 잘 돌아감"은 기술로 분류됐어요
- 리뷰 1개에 AI 1번 호출: 9번 · 5,747토큰 (gpt-4.1-mini)


따라 하기
아래 설정값은 이 영상에 나온 워크플로우 JSON에서 그대로 가져왔어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 실제로 넣은 값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.
Step 1. Manual Trigger 노드 추가이름: Run manually
설정 없이 그대로 추가해요.
Step 2. HTTP Request 노드 추가이름: Get recent reviews
| URL | https://store.steampowered.com/ajaxappreviews/1091500?json=1&l=english&language=english&num_per_page=20&filter=recent&purchase_type=all |
Step 3. Code 노드 추가이름: One review per item
| JavaScript | const r = $input.first().json.reviews || [];
return r
.filter(x => x.review.trim().length >= 40)
.map((x, i) => ({ json: {
no: i + 1,
recommended: x.voted_up,
review: x.review.replace(/\s+/g, ' ').trim().slice(0, 400)
}})); |
Step 4. Text Classifier 노드 추가이름: Text Classifier
| Text to Classify | {{ $json.review }} |
| Categories 1 › Category | 버그·기술 문제 |
| Categories 1 › Description | The review mainly complains about bugs, crashes, performance, installation or other technical problems |
| Categories 2 › Category | 칭찬 |
| Categories 2 › Description | The review mainly praises the game (story, gameplay, graphics, characters, fun) |
| Categories 3 › Category | 가격·가치 |
| Categories 3 › Description | The review mainly talks about price, sale, discount or whether it is worth the money |
| Categories 4 › Category | 기타 |
| Categories 4 › Description | Anything else: jokes, memes, unclear or off-topic reviews |
Step 5. OpenAI Chat Model 노드 추가이름: OpenAI Chat Model
| Model | gpt-4.1-mini |
| Options › Sampling Temperature | 0 |
Step 6. Edit Fields (Set) 노드 추가이름: Label: bug
| 필드 1 | no · number · {{ $json.no }} |
| 필드 2 | label · string · 버그·기술 문제 |
| 필드 3 | recommended · boolean · {{ $json.recommended }} |
Step 7. Edit Fields (Set) 노드 추가이름: Label: praise
| 필드 1 | no · number · {{ $json.no }} |
| 필드 2 | label · string · 칭찬 |
| 필드 3 | recommended · boolean · {{ $json.recommended }} |
Step 8. Edit Fields (Set) 노드 추가이름: Label: price
| 필드 1 | no · number · {{ $json.no }} |
| 필드 2 | label · string · 가격·가치 |
| 필드 3 | recommended · boolean · {{ $json.recommended }} |
Step 9. Edit Fields (Set) 노드 추가이름: Label: other
| 필드 1 | no · number · {{ $json.no }} |
| 필드 2 | label · string · 기타 |
| 필드 3 | recommended · boolean · {{ $json.recommended }} |
가져와서 쓸 때 확인할 것
- YOUR_… 표시를 내 값으로 바꾸고, 계정이 필요한 서비스 노드만 자격 증명을 연결하세요. 그런 칸이나 노드가 없는 예제는 추가 계정 없이 실행할 수 있어요.
노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.