안녕하세요! 오늘은 오픈소스 AI 에이전트 자동화 도구인 n8n을 소개드리려고 합니다. n8n은 GitHub에서 48k 이상의 별을 받은 인기 프로젝트로, Gmail, Google Sheets, Telegram, Notion 등 200개 이상의 다양한 도구를 결합하여 워크플로우 자동화를 구현할 수 있습니다. 특히, API가 없어도 복잡한 자동화 작업을 쉽고 빠르게 구축할 수 있도록 사용자 친화적인 플랫폼을 제공하며, OpenAI의 GPT나 Google Gemini와 같은 클라우드 기반 LLM뿐만 아니라, Ollama의 오픈소스 LLM도 활용하여 챗봇 워크플로우를 제작할 수 있습니다. 이 블로그에서는 n8n의 개요, 특징과 주요 기능, 설치방법에 대해 알아보고 예제를 만들어서 테스트해 보겠습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
n8n 개요
n8n은 여러 서비스를 연결해 업무를 자동화할 수 있는 워크플로우 도구입니다. 사용하기 쉬운 인터페이스로 비개발자도 쉽게 사용할 수 있으며, 오픈 소스로 제공되어 필요한 경우 자유롭게 커스터마이징 하거나 자체 서버에 설치할 수 있습니다. 또한, 사용자만의 기능이나 로직, 앱을 추가할 수 있어 매우 유연하게 활용할 수 있습니다.
n8n은 노드 기반 구조로 구성되어 다양한 서비스와 기능을 직관적으로 연결할 수 있으며, 제공되는 워크플로우 템플릿이나 표현식을 활용해 쉽게 자동화를 구축할 수 있도록 돕습니다.
n8n을 활용한 자동화의 예시는 다음과 같습니다.
1. 유효성 검증 자동화: 이미지 인식 기능을 갖춘 멀티모달 LLM을 사용하여 사진을 분석하고 유효성을 판단하여 사용자 제출 사진이 유효한 기준을 충족하는지 확인하는 검증작업을 자동화할 수 있습니다.
2. 챗봇 & 가상 비서 자동화: n8n은 AI 기반 챗봇과 가상 비서 자동화를 구축하는 데 필요한 사용자 인터페이스, 워크플로우 관리, 그리고 대규모 언어 모델 통합까지 모두 지원합니다.
3. 정보 검색 및 생성 (RAG) 워크플로우 자동화: 사용자 쿼리에 대한 답변을 생성하기 위해 외부 데이터 소스에서 정보를 검색하고 LLM과 결합합니다. n8n은 RAG 워크플로우를 구축하기 위한 다양한 통합 기능을 제공하여 Qdrant와 같은 인기 있는 벡터 데이터베이스를 포함한 다양한 소스에서 데이터를 쉽게 가져올 수 있습니다.
n8n 특징 및 주요 기능
n8n은 다음과 같은 특징과 기능을 제공합니다.
- 다양한 통합: 200개 이상의 노드를 통해 다양한 서비스를 연결하고 자동화할 수 있습니다. Google Sheets, Telegram, MySQL, Slack, Discord, Postgres, Notion, Gmail, Airtable, Google Drive 등과 같은 인기 있는 서비스를 포함합니다. HubSpot, Salesforce, Twilio, WhatsApp, GitHub, Jira, Asana 등과 같은 서비스 조합도 지원합니다.
- 사용자 친화적 인터페이스: 노드를 드래그 앤 드롭하여 워크플로우를 쉽게 시각적으로 구축할 수 있습니다. 노드를 두 번 클릭하여 설정을 탐색하고 데이터 처리 방식을 살펴볼 수 있습니다.
- 공정한 코드 배포 모델: 누구나 소스 코드를 볼 수 있고, 필요한 경우 수정하거나 확장할 수 있습니다. 또한 비상업적인 목적의 사용에는 무료로 제공되고, 자체 호스팅이 가능합니다.
- 확장성: 사용자 정의 노드를 구축하여 n8n 기능을 확장할 수 있습니다.
- 워크플로우 템플릿: 미리 만들어진 워크플로우 템플릿을 사용하여 빠르게 시작할 수 있습니다. 800개 이상의 워크플로우 템플릿을 사용할 수 있습니다. API 엔드포인트 생성, AI 에이전트 채팅, AI를 사용한 웹 페이지 스크랩 및 요약, 데이터 조인, GitHub에 워크플로우 백업, AI 에이전트를 사용한 웹 페이지 스크랩 등의 템플릿이 포함됩니다.
- 강력한 AI 기능: LangChain 노드를 사용하여 AI 기반 기능을 워크플로우에 통합할 수 있습니다. 원하는 에이전트, LLM, 메모리 등을 선택하여 LangChain 노드를 구성할 수 있습니다.
- 워크플로우 템플릿: 미리 만들어진 워크플로우 템플릿을 사용하여 빠르게 시작할 수 있습니다. 800개 이상의 워크플로우 템플릿을 사용할 수 있습니다. API 엔드포인트 생성, AI 에이전트 채팅, AI를 사용한 웹 페이지 스크랩 및 요약, 데이터 조인, GitHub에 워크플로우 백업, AI 에이전트를 사용한 웹 페이지 스크랩 등의 템플릿이 포함됩니다.
- 표현식: 표현식을 사용하여 노드를 구성하고 데이터를 조작할 수 있습니다.
- 커뮤니티 지원: 활발한 커뮤니티 포럼에서 도움을 받을 수 있습니다.
n8n 설치 및 설정방법
n8n은 클라우드 서비스, npm 모듈, Docker 이미지를 사용한 방법으로 제공되며, 설치방법은 매우 간단합니다.
- n8n 클라우드: n8n 클라우드 계정에 가입하면 n8n 인스턴스를 설정 및 유지 관리할 필요 없이 n8n을 사용할 수 있습니다. 또한 OAuth를 사용한 인증, 새로운 n8n 버전으로의 쉬운 업그레이드와 같은 편의를 제공합니다.
- npm: Node.js가 설치되어 있는 경우 터미널에서 다음 명령을 실행하여 n8n을 글로벌로 설치할 수 있습니다.
npm install n8n -g
- Docker: Docker 공식 웹사이트에서 운영 체제에 맞는 버전을 다운로드하여 Docker를 설치하고, 터미널 또는 명령 프롬프트를 열고 다음 명령을 실행하여 Docker Hub에서 n8n의 최신 이미지를 가져온 후, 다음 명령어를 사용하여 n8n Docker 컨테이너를 시작합니다. 웹 브라우저를 열고 http://localhost:5678에 접속합니다.
docker pull n8nio/n8n # n8n의 최신 이미지 가져오기
docker run -it -d -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n # n8n Docker 컨테이너 시작
-it: 컨테이너를 대화형 모드로 실행합니다.
-d: 컨테이너를 백그라운드에서 실행합니다.
-p 5678:5678: 컨테이너의 5678 포트를 호스트 시스템의 5678 포트에 매핑합니다. n8n은 기본적으로 5678 포트를 사용합니다.
-v ~/.n8n:/home/node/.n8n: 호스트 시스템의 ~/.n8n 디렉토리를 컨테이너의 /home/node/.n8n 디렉토리에 마운트합니다. 이렇게 하면 n8n 데이터가 컨테이너가 삭제되더라도 유지됩니다.
- 일회성 실행: npx를 사용하여 n8n을 설치하지 않고도 사용해 볼 수 있습니다. 터미널에서 다음 명령을 실행합니다.
npx n8n
위 설치방법 중 한 가지로 n8n 설치가 완료되면, 아래와 같은 순서대로 최초 실행과 설정을 진행합니다. 이 블로그의 작업 환경은 Windows 11 Pro, WSL2(Ubuntu), Python 3.11입니다.
1. WSL 명령어 프롬프트에서 n8n 실행 후, "o"를 눌러 http://localhost:5678/에 접속합니다.
2. 최초 접속 시 계정을 생성 후, 설정의 "Usage and plan" 메뉴에서 이메일로 받은 무료 라이센스 키를 입력하면 워크플로우 히스토리 , 편집기에서 디버그 및 사용자 정의 실행 검색과 같은 일부 유료기능이 잠금 해제 됩니다.
블로그 작성 에이전트 만들기
다음은 워크플로우 예제를 만들어볼 텐데요. 예제로 만들어볼 워크플로우는 사용자의 요청에 따라 정보를 검색하고, 이를 바탕으로 블로그 글을 작성하는 자동화 시스템입니다. SerpAPI와 llama3.2 모델을 활용해 최신 정보를 수집하며, Postgres를 이용해 대화 내용을 저장하고, 검색된 정보를 블로그 작성 에이전트가 블로그 형식으로 정리합니다.
1. Home 화면에서 우측 상단에 있는 "Add workflow"를 클릭합니다.
2. 다음 화면에서 "Add first step"을 클릭하고 "On chat message"를 선택합니다.
3. 다음은 노드 옆 + 버튼을 클릭한 후, "Advanced AI", "AI Agent"를 차례대로 클릭해서 AI Agent 노드를 추가합니다.
4. AI Agent 노드의 Chat Model을 클릭하고, "Ollama Chat Model"을 선택합니다. "Credential to connect with"에서 "Create New Credential"을 클릭하고 Base URL에 http://localhost:11434를 입력하고 save를 클릭합니다. (save 버튼이 안 나오면 주소를 지우고 재입력하면 버튼이 우측 상단에 나타납니다.)
5. "Connection tested successfully"가 표시되면, Ollama Chat Model 노드에서 "llama3.2:latest"를 선택합니다. Ollama 설치방법과 모델 다운로드는 이전 포스팅을 참고하시면 됩니다.
2023.12.15 - [AI 언어 모델] - Ollama를 활용한 대규모 언어 모델 웹 인터페이스 만들기: Mistral 7B와의 대화
6. 다음은 AI Agent 노드에 메모리를 추가하는 단계입니다. 대화기록을 지속적으로 저장하기 위한 PostgreSQL 데이터베이스를 사용하기 위해서는 다음과 같은 설치 과정이 필요합니다.
- 패키지 관리자 Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
#설치가 완료되면, Homebrew의 경로를 `$PATH`에 추가해야 합니다. 다음 명령을 사용하세요:
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
- PostgreSQL 14 설치
brew install postgresql@14
- PostgreSQL 버전 확인 및 서비스 시작
postgres --version
brew services start postgresql@14
- 데이터베이스 초기화 및 사용자 생성
brew services stop postgresql@14 # PostgreSQL 14 서비스를 중지합니다.
initdb /home/linuxbrew/.linuxbrew/var/postgresql@14 # PostgreSQL 데이터베이스 클러스터를 초기화합니다.
brew services start postgresql@14 # PostgreSQL 14 서비스를 시작합니다.
psql postgres # PostgreSQL의 기본 데이터베이스에 접속합니다.
CREATE ROLE postgres WITH LOGIN PASSWORD 'postgres'; # 'postgres'라는 이름의 역할(사용자)을 생성하고 비밀번호를 설정합니다.
ALTER ROLE postgres CREATEDB; # 'postgres' 역할에 데이터베이스 생성 권한을 부여합니다.
psql -h localhost -U postgres # localhost에서 'postgres' 역할로 PostgreSQL에 접속합니다.
PostgreSQL 데이터베이스 설치가 완료되면, +를 클릭하고 Postgres Chat Memory를 선택해서 메모리를 추가합니다. 기본 설정으로 저장하면 "Connection tested successfully"가 표시됩니다.
7. 다음은 구글 검색을 위한 SerpAPI 노드를 추가하는 단계입니다. 아래 사이트에 접속해서 API Key를 발급합니다.
https://serpapi.com/manage-api-key
8. n8n 워크플로우의 AI Agent에서 Tool 노드의 +를 클릭하고, SerpAPI로 검색해서 노드를 추가한 후, "Credential to connect with"에서 "Create New Credential"을 선택해서 API Key를 입력하고 save 합니다.
9. 다음은 AI Agent 노드 생성과 같은 방법으로 블로그 작성 에이전트를 만들고, Option/System Message에 "You are a blog writer Agent. Use the provided information to write a blog. Only respond with a blog."라고 입력합니다.
Agent는 "Tools Agent", Prompt는 "Define below"를 선택하고, "Define below를 선택하면 나타나는 Text창에 "Here is the content:"라고 입력한 후, 화면 좌측 INPUT 패널에서 Search Agent의 output 상자를 마우스로 클릭하여 BLog Writer Agent의 Text 입력창으로 드래그합니다.
10. 다음은 완성된 워크플로우입니다.
11. 워크플로우가 완성되면 우측 상단에서 Inactive를 클릭해서 Active 상태로 활성화하고, "When chat message received"를 더블클릭해서 "Make Chat Publicly Available"을 선택하면 나타나는 Chat URL을 클릭해서 복사합니다.
12. 브라우저 주소창에 복사한 URL을 붙여 넣고, 정보검색과 글 작성을 요청하면 아래와 같이 Llama 3.2 모델이 블로그를 작성해 줍니다. 아래 화면은 OpenAI에 대한 정보를 검색해서 블로그를 작성한 예시화면입니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
맺음말
오늘은 강력한 오픈소스 AI 에이전트 자동화 도구, n8n에 대해서 알아보았습니다. n8n은 사용자 친화적인 인터페이스, 다양한 통합, 확장성 및 강력한 AI 기능을 통해 모든 규모의 조직에서 업무를 자동화하는 데 이상적인 솔루션이며, n8n을 사용하면 반복적인 작업을 자동화하고 생산성을 향상시키며 비즈니스 프로세스를 간소화할 수 있습니다.
n8n을 설치하고 테스트해 본 후기는 다음과 같습니다.
- 워크플로우 인터페이스는 쉬워 보이지만 익숙해지려면 시간이 필요하다.
- n8n은 무료지만 유료 API 사용에 따른 추가 비용이 발생할 수 있다.
- 워크플로우 도구 호출, 트리거 등의 사용법은 직관적으로 파악하기 힘들다.
오늘 블로그 내용은 여기까지입니다. 여러분도 n8n을 활용해서 간단한 워크플로우를 직접 만들어보시면 좋을 것 같습니다. 저는 그럼 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다.
2024.10.17 - [AI 도구] - 🤖Swarm 설치 및 활용 가이드: OpenAI의 혁신적 멀티 에이전트 프레임워크
'AI 도구' 카테고리의 다른 글
🎧NotebookLlama: PDF를 팟캐스트로 변환하는 메타의 오픈소스 솔루션 (22) | 2024.11.05 |
---|---|
🤖Claude Computer Use 사용 가이드: 컴퓨터를 사람처럼 사용하는 AI (40) | 2024.10.26 |
🤖Swarm 설치 및 활용 가이드: OpenAI의 혁신적 멀티 에이전트 프레임워크 (37) | 2024.10.17 |
💻Project IDX: 구글의 차세대 웹 기반 통합 개발 환경 (20) | 2024.10.11 |
📄Open NotebookLM: 무료로 PDF 문서를 팟캐스트로 만들어보세요!🎧 (5) | 2024.10.08 |