일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- springboot
- N+1문제
- XSS
- 한화시스템부트캠프
- 프로토콜역할
- n8n
- 오버로딩
- 티스토리챌린지
- QA
- 자바
- Kafka
- 프로세스와스레드의차이
- 부트캠프
- kafka배포
- selenium
- STOMP
- 자동화워크플로우
- 테스트케이스
- 자료구조
- 하이브리드접근법
- Java
- 오블완
- 메소드
- 캐시의 작동 원리
- nplus1
- jwt토큰
- 엘라스틱서치
- 스프링시큐리티
- JPA
- 헥사고날아키텍처
- Today
- Total
아쿠의 개발 일지
[N8N] AI와 N8N 본문
왜 Ai는 주로 Python을 사용하는가?
Python은 간결하고 직관적인 문법 덕분에 빠른 개발이 가능하며, 특히 데이터 과학과 머신러닝에 필요한 풍부한 라이브러리와 프레임워크를 제공합니다. TensorFlow, PyTorch, Scikit-learn 같은 AI와 머신러닝 관련 라이브러리가 잘 지원되고 있으며, 커뮤니티도 매우 활발해서 문제 해결이 상대적으로 수월하다는 점도 Python이 AI 개발에 많이 쓰이는 이유 중 하나입니다.
하지만 꼭 Python으로 Ai를 활용하는 것은 아닙니다. 그렇게 생각에 생각을 더 해서 찾아 낸 방법이 바로 N8N입니다.
N8N은 오픈 소스 워크플로우 자동화 도구로, 다양한 서비스를 연결하여 작업을 자동화할 수 있게 도와줍니다. N8N의 장점은 오픈 소스이기 때문에 누구나 직접 설치하고, 커스터마이징 할 수 있다는 점입니다.
N8N을 통해, API호출, 데이터처리, 파일 관리 등의 작업을 다양한 서비스 간에 자동화 할 수 있으며, 비지니스 로직을 시각적으로 구성할 수 있게 UI를 제공하므로, 코드를 많이 작성하지 않도고 복잡한 자동화 프로세스를 설계할 수 있습니다.
일단 준비물로는 Docker, Ollama, git Clone이 필요합니다.
Docker은 계정이 없다면 만드셔야 하고, Ollama는 AI 모델을 로컬 환경에서 실행할 수 있게 해주는 도구입니다.
로컬 환경에서도 Ai 실행이 가능하기에 인터넷 연결 없이도 로컬 시스템에서 AI 모델을 실행할 수 있습니다.
https://github.com/n8n-io/self-hosted-ai-starter-kit
에 가서 자신의 맞는 환경 방식으로 clone 받아줍니다. n8n은 로컬에 설치해서 하면 무료로 사용 가능하기에, 오늘 쓸 방법은 로컬에 설치 해 사용 할 것입니다.
n8n 홈페이지를 가서, 오픈 소스의 레포지토리 저장소에서 소스 코드를 다운 받습니다.
해당 폴더로 들어가서 도커를 올려주면, 올라마, 포스트그레스가 설치 되고, n8n 소스도 다운 받을 수 있습니다.
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit
docker compose --profile cpu up
다음과 같이 직접 커스터마이징 했습니다. 더 추가된 기능이 많지만 전 버전을 보여드리고자 합니다.
서버에서 N8N으로 WebHook을 보내 해당 로직을 실행할 수 있습니다.
제가 구현하려고 하는 기능은 챗봇이기에 사용자와 실시간 소통처럼 보이게 해야 했습니다.
- 사용자 질문 전송 (WebSocket)
사용자가 WebSocket을 통해 서버로 질문 메시지를 보냅니다. - 서버 → N8N WebHook 호출 (POST 요청)
서버는 받은 질문을 POST 방식으로 N8N의 WebHook에 전달하여 N8N이 해당 로직을 처리할 수 있도록 요청합니다. - N8N → 서버 응답 (POST 요청)
N8N은 로직을 처리한 후, 결과를 POST 방식으로 서버에 응답합니다. - 서버 → 사용자 메시지 전송 (STOMP)
서버는 N8N에서 받은 응답을 구독 중인 사용자에게 STOMP를 사용하여 WebSocket으로 전달합니다. 이를 통해 실시간 소통처럼 보이게 됩니다.
다음과 같은 방식을 사용 했습니다. 이렇게 되면 실시간 소통을 하는 것처럼 보일 수 있습니다.
다음과 같이 처리 했습니다. 챗봇을 누구나 받을 수 있고, 이용할 수 있도록 설계 했습니다.
현재 제게 N8N을 알려주신 유튜버 분의 Discord에 들어가 있는데요, 많은 정보가 들어있는 만큼 다양한 기능들이 있습니다. 가장 해 보고 싶은 건 자동으로 메일 보내는 집사 만들기? 입니다.
나중에 주말에 해 보고 알려드리겠습니다. 다들 좋은 기능 만들어보셔요 !
'Programming > Java' 카테고리의 다른 글
[SpringBoot] S3 파일 업로드와 최적화 방법 (1) | 2025.01.31 |
---|---|
[DevOps] Kubernetes로 채팅을 위한 Kafka와 Zookeeper 배포하기 (0) | 2025.01.09 |
[Java] 객체지향의 핵심 개념 & Spring Boot란? (0) | 2024.12.29 |
[ElasticSearch] 엘라스틱 서치 도입 (2) | 2024.11.27 |
[아키텍처 패턴] 헥사고날 아키텍처(Hexagonal Architecture) (2) | 2024.11.21 |