N8N 챗봇에 Groq AI와 Redis 메모리 연동하기

이전 가이드에서 사용자의 입력을 받는 챗봇의 '입'을 만들었다면, 이제는 그 입력을 이해하고 생각하는 '뇌'와 대화 내용을 기억하는 '기억력'을 추가할 차례이다. 이번 가이드에서는 놀라운 속도를 자랑하는 Groq의 무료 AI 모델을 연동하고, 대화의 맥락을 유지하는 핵심 기능인 'Memory'를 설정하는 방법을 상세히 다룬다.
1단계: Groq API 키 발급받기
GroqCloud는 Llama, Mixtral, Gemma 등 다양한 오픈소스 LLM을 매우 빠른 속도로 제공하는 서비스이다. 무료로 충분한 양을 제공하므로, 개인 프로젝트나 프로토타이핑에 매우 유용하다. 먼저 Groq API 키를 발급받는다.
- GroqCloud 공식 홈페이지(https://console.groq.com/)에 가입하고 로그인한다.
- 왼쪽 메뉴에서 'API Keys' 탭으로 이동한 뒤, '+ Create API Key' 버튼을 클릭한다.
- 키에 대한 설명을 입력하고 'Create' 버튼을 누르면 즉시 API 키가 생성된다.

생성된 API 키는 이 화면을 벗어나면 다시 확인할 수 없으므로, 반드시 'Copy' 버튼을 눌러 즉시 복사하고 안전한 곳에 보관해야 한다.
2단계: n8n에 Groq Chat Model 노드 설정하기
발급받은 API 키를 사용하여 n8n에서 Groq 모델을 사용하도록 설정한다.
- n8n 워크플로우에 'Groq Chat Model' 노드를 추가한다.
- 'Credential to connect with' 항목에서 'Create New'를 선택한다.
- 'API Key' 필드에 1단계에서 복사한 Groq API 키를 붙여넣고 저장한다.
- 'Model' 드롭다운 메뉴에서 사용할 모델을 선택한다. 여기서는 'deepseek-r1-distill-llama-70b'와 같은 고성능 모델을 선택할 수 있다.

3단계: 챗봇에 '기억력(Memory)' 부여하기
AI 모델은 기본적으로 '상태가 없는(stateless)' 상태이다. 즉, 이전 대화를 기억하지 못한다. 사용자가 "내 이름은 홍길동이야"라고 말한 뒤 "내 이름이 뭐야?"라고 물어도 AI는 대답하지 못한다. 'Memory'는 바로 이 문제를 해결하여, AI가 이전 대화의 맥락을 파악하게 해주는 핵심 요소이다.
n8n은 간단한 테스트를 위한 'Simple Chat Memory'부터, 실제 서비스를 위한 'Redis Chat Memory', 'Postgres Chat Memory' 등 다양한 옵션을 제공한다. 여기서는 가장 많이 사용되는 'Redis Chat Memory' 노드를 기준으로 설명한다.

- Parameters (파라미터) 상세 분석
- Credential to connect with: Redis 데이터베이스에 연결하기 위한 자격 증명을 설정한다. (Host, Port, Password 등)
- Session ID: 각 사용자의 대화를 구분하는 고유한 키이다. 'Connected Chat Trigger Node'를 선택하면, n8n이 자동으로 'When chat message received' 트리거에서 넘어온 `sessionId`를 사용하도록 설정해준다.
- Session Key From Previous Node: `Session ID`를 어떤 값으로 지정할지 직접 정의하는 부분이다.
{{ $json.sessionId }}
라는 표현식은 '이전 노드에서 들어온 JSON 데이터($json)의 sessionId라는 키 값을 사용하겠다'는 의미이다. - Session Time To Live: 대화 기록을 Redis에 얼마 동안 보관할지 초 단위로 설정한다. `0`으로 설정하면 만료 시간 없이 영구적으로 저장된다.
- Context Window Length: 매우 중요한 설정이다. AI에게 현재 질문에 대한 답변을 요청할 때, 과거의 대화 중 몇 개를 함께 보낼지 결정한다. 여기서 `1`은 '사용자 질문 1개 + AI 답변 1개'를 의미한다. 만약 `5`로 설정하면, 현재 질문과 함께 가장 최근의 5번의 대화(총 10개의 메시지)를 AI에게 전달하여 답변의 맥락을 유지하게 한다. 값이 클수록 더 긴 맥락을 이해하지만, 더 많은 토큰을 소모한다.
4. 전체 워크플로우 연결
이제 모든 조각을 연결할 차례이다. 최종적인 워크플로우는 아래와 같은 흐름을 가진다.
When chat message received → Redis Chat Memory → Groq Chat Model
1. 사용자가 채팅창에 메시지를 보내면 'When chat message received' 노드가 실행된다.
2. 'Redis Chat Memory' 노드는 수신된 `sessionId`를 사용하여 Redis에서 이전 대화 기록(Context Window Length 만큼)을 가져온다.
3. 'Groq Chat Model' 노드는 Memory 노드로부터 전달받은 과거 대화 기록과 현재 질문을 바탕으로, 맥락에 맞는 답변을 생성한다.

결론
이로써 우리의 n8n 챗봇은 빠른 두뇌(Groq)와 대화를 기억하는 능력(Memory)을 모두 갖추게 되었다. 이제 챗봇은 단순히 명령에 반응하는 것을 넘어, 사용자와 연속적인 대화를 이어나갈 수 있는 진정한 '대화형 AI'로 거듭났다. 다음 단계로는 이 챗봇이 특정 정보를 검색하거나 다른 서비스를 실행할 수 있도록 '도구(Tool)'를 추가하는 과정을 탐색해 볼 수 있다.