개요
Flowise는 드래그 앤 드롭으로 LLM 애플리케이션을 구축하는 노코드/로우코드 플랫폼 입니다. LangChain.js 기반으로, 시각적 인터페이스에서 RAG 파이프라인, 챗봇, AI 에이전트를 몇 분 만에 만들 수 있습니다. 코딩 없이도 GPT, Claude, Ollama 등 다양한 LLM을 연결하고 프로덕션에 배포할 수 있습니다.
항목 내용 GitHub https://github.com/FlowiseAI/Flowise 공식 사이트 https://flowiseai.com 문서 https://docs.flowiseai.com 라이선스 Apache-2.0 GitHub Stars 35K+
Flowise란?
왜 Flowise인가?
❌ 기존 LLM 개발의 어려움:
- LangChain 학습 곡선이 높음
- 코딩 지식 필요
- RAG 파이프라인 구축이 복잡
✅ Flowise의 해결책:
- 드래그 앤 드롭 시각적 빌더
- 코딩 없이 LLM 앱 구축
- 템플릿으로 빠른 시작
- API/임베드 위젯으로 배포
핵심 개념
"AI 앱의 Figma"
- 시각적으로 LLM 워크플로우 설계
- 실시간 테스트 및 디버깅
- 코드 없이 프로덕션 배포
- LangChain의 강력함 + 노코드의 편의함
노드 기반 워크플로우
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Input │───▶│ LLM │───▶│ Output │
└──────────┘ └──────────┘ └──────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ Memory │ │ Tools │
└──────────┘ └──────────┘
주요 기능
🎨 시각적 빌더
기능 설명 드래그 앤 드롭 노드를 끌어다 놓기 실시간 연결 노드 간 연결선 즉시 테스트 빌드하면서 테스트 템플릿 사전 구성된 워크플로우
🤖 LLM 통합
LLM 지원 OpenAI GPT-4o, GPT-4, GPT-3.5 Anthropic Claude 3.5, Claude 3 Google Gemini Ollama 로컬 LLM Azure OpenAI 엔터프라이즈 HuggingFace 오픈소스 모델 Groq 초고속 추론 Mistral –
📚 RAG (검색 증강 생성)
기능 설명 Document Loaders PDF, Word, CSV, 웹페이지 등 Text Splitters 청킹 전략 Embeddings OpenAI, HuggingFace, Ollama Vector Stores Pinecone, Chroma, Qdrant, Weaviate 등 Retrievers 유사도 검색, MMR
🛠️ 에이전트 & 도구
기능 설명 Agents ReAct, OpenAI Functions Tools 계산기, 검색, API 호출 Function Calling OpenAI/Anthropic 함수 호출 Custom Tools 커스텀 도구 생성
💾 메모리
유형 설명 Buffer Memory 최근 대화 Window Memory 슬라이딩 윈도우 Summary Memory 대화 요약 Vector Store Memory 장기 기억
🔌 배포 & 통합
기능 설명 REST API 플로우를 API로 노출 Embed Widget 웹사이트에 채팅 위젯 임베드 Webhook 외부 서비스 연결 Export/Import 플로우 JSON 내보내기
대안 비교
기능 Flowise LangFlow Dify n8n 목적 LLM 앱 LLM 앱 LLM 플랫폼 워크플로우 자동화 시각적 빌더 ✅ ✅ ✅ ✅ 기반 LangChain.js LangChain 자체 자체 RAG ✅ ✅ ✅ ✅ (제한적) 에이전트 ✅ ✅ ✅ ✅ API 배포 ✅ ✅ ✅ ✅ 임베드 위젯 ✅ ❌ ✅ ❌ 셀프호스팅 ✅ ✅ ✅ ✅ 러닝 커브 낮음 낮음 중간 중간
시스템 요구 사항
항목 최소 권장 CPU 2 코어 4+ 코어 RAM 2GB 4GB+ 저장소 10GB 20GB+ 포트 3000 –
Docker 설치
방법 1: 기본 설치
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
entrypoint: /bin/sh -c "sleep 3; flowise start"
방법 2: 인증 활성화
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
entrypoint: /bin/sh -c "sleep 3; flowise start"
방법 3: PostgreSQL 데이터베이스
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
depends_on:
- postgres
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
- DATABASE_TYPE=postgres
- DATABASE_HOST=postgres
- DATABASE_PORT=5432
- DATABASE_USER=flowise
- DATABASE_PASSWORD=flowise-db-password
- DATABASE_NAME=flowise
entrypoint: /bin/sh -c "sleep 3; flowise start"
postgres:
image: postgres:16
container_name: flowise-postgres
restart: unless-stopped
volumes:
- ./postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=flowise
- POSTGRES_PASSWORD=flowise-db-password
- POSTGRES_DB=flowise
방법 4: MySQL 데이터베이스
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
depends_on:
- mysql
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
- DATABASE_TYPE=mysql
- DATABASE_HOST=mysql
- DATABASE_PORT=3306
- DATABASE_USER=flowise
- DATABASE_PASSWORD=flowise-db-password
- DATABASE_NAME=flowise
entrypoint: /bin/sh -c "sleep 3; flowise start"
mysql:
image: mysql:8
container_name: flowise-mysql
restart: unless-stopped
volumes:
- ./mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root-password
- MYSQL_USER=flowise
- MYSQL_PASSWORD=flowise-db-password
- MYSQL_DATABASE=flowise
방법 5: Queue 모드 (Redis + Worker)
대규모 워크로드용 수평 확장:
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
depends_on:
- redis
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- MODE=queue
- QUEUE_NAME=flowise-queue
- REDIS_URL=redis://redis:6379
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
entrypoint: /bin/sh -c "sleep 3; flowise start"
flowise-worker:
image: flowiseai/flowise-worker:latest
container_name: flowise-worker
restart: unless-stopped
depends_on:
- redis
- flowise
volumes:
- ./flowise:/root/.flowise
environment:
- MODE=queue
- QUEUE_NAME=flowise-queue
- REDIS_URL=redis://redis:6379
- WORKER_CONCURRENCY=5
redis:
image: redis:7
container_name: flowise-redis
restart: unless-stopped
volumes:
- ./redis_data:/data
방법 6: S3 스토리지
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
# S3 스토리지
- STORAGE_TYPE=s3
- S3_STORAGE_BUCKET_NAME=your-bucket
- S3_STORAGE_ACCESS_KEY_ID=your-access-key
- S3_STORAGE_SECRET_ACCESS_KEY=your-secret-key
- S3_STORAGE_REGION=us-east-1
entrypoint: /bin/sh -c "sleep 3; flowise start"
방법 7: Traefik + HTTPS
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
networks:
- traefik_network
labels:
- "traefik.enable=true"
- "traefik.http.routers.flowise.rule=Host(`flowise.example.com`)"
- "traefik.http.routers.flowise.entrypoints=websecure"
- "traefik.http.routers.flowise.tls.certresolver=letsencrypt"
- "traefik.http.services.flowise.loadbalancer.server.port=3000"
entrypoint: /bin/sh -c "sleep 3; flowise start"
networks:
traefik_network:
external: true
방법 8: Ollama 통합
# docker-compose.yml
services:
flowise:
image: flowiseai/flowise:latest
container_name: flowise
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./flowise:/root/.flowise
environment:
- PORT=3000
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=your-secure-password
entrypoint: /bin/sh -c "sleep 3; flowise start"
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Flowise에서 Ollama 연결:
Chat Models → ChatOllama 노드 추가
Base URL: http://ollama:11434
환경 변수
기본 설정
변수 설명 기본값 PORT서버 포트 3000FLOWISE_USERNAME로그인 사용자명 – FLOWISE_PASSWORD로그인 비밀번호 – DEBUG디버그 모드 false
데이터베이스
변수 설명 DATABASE_TYPEsqlite, postgres, mysqlDATABASE_HOSTDB 호스트 DATABASE_PORTDB 포트 DATABASE_USERDB 사용자 DATABASE_PASSWORDDB 비밀번호 DATABASE_NAMEDB 이름 DATABASE_PATHSQLite 경로
경로 설정
변수 설명 기본값 DATABASE_PATHSQLite 경로 /root/.flowiseAPIKEY_PATHAPI 키 저장 경로 /root/.flowiseSECRETKEY_PATH시크릿 키 경로 /root/.flowiseLOG_PATH로그 경로 /root/.flowise/logsBLOB_STORAGE_PATH파일 저장 경로 /root/.flowise/storage
스토리지
변수 설명 STORAGE_TYPElocal, s3, gcsS3_STORAGE_BUCKET_NAMES3 버킷 S3_STORAGE_ACCESS_KEY_IDS3 액세스 키 S3_STORAGE_SECRET_ACCESS_KEYS3 시크릿 키 S3_STORAGE_REGIONS3 리전
Queue 모드
변수 설명 MODEmain 또는 queueQUEUE_NAME큐 이름 REDIS_URLRedis 연결 URL WORKER_CONCURRENCY워커 동시성
보안
변수 설명 FLOWISE_SECRETKEY_OVERWRITE암호화 키 덮어쓰기 DISABLE_FLOWISE_TELEMETRY텔레메트리 비활성화
초기 설정
1) 첫 접속
URL: http://localhost:3000
→ 로그인 (설정한 경우)
2) 첫 번째 챗플로우 만들기
Chatflows → Add New
노드 추가:
Chat Models → ChatOpenAI (또는 ChatOllama)
Chains → Conversation Chain
Memory → Buffer Memory
노드 연결
Save 클릭
우측 상단 채팅 아이콘으로 테스트
3) API 키 설정
Settings (우측 상단 톱니바퀴)
API Keys 발급
플로우에서 Credential 추가
4) 간단한 RAG 챗봇
Document Loaders → PDF File
Text Splitters → Recursive Character Text Splitter
Embeddings → OpenAI Embeddings
Vector Stores → In-Memory Vector Store
Chains → Conversational Retrieval QA Chain
Chat Models → ChatOpenAI
노드들 연결
사용 가이드
템플릿 사용
Flowise는 다양한 사전 구성 템플릿을 제공합니다:
템플릿 용도 Simple Conversation 기본 챗봇 Conversational Agent 도구 사용 에이전트 QA with Sources 문서 기반 Q&A SQL Agent 데이터베이스 질의 API Agent API 호출 에이전트
API로 플로우 호출
# 채팅 API
curl -X POST "http://localhost:3000/api/v1/prediction/{chatflow-id}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api-key}" \
-d '{
"question": "안녕하세요!"
}'
# 스트리밍
curl -X POST "http://localhost:3000/api/v1/prediction/{chatflow-id}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api-key}" \
-d '{
"question": "안녕하세요!",
"streaming": true
}'
웹사이트에 임베드
<!-- 채팅 위젯 -->
<script type="module">
import Chatbot from 'https://cdn.jsdelivr.net/npm/flowise-embed/dist/web.js'
Chatbot.init({
chatflowid: 'your-chatflow-id',
apiHost: 'http://localhost:3000',
})
</script>
변수 전달
curl -X POST "http://localhost:3000/api/v1/prediction/{chatflow-id}" \
-H "Content-Type: application/json" \
-d '{
"question": "내 주문 상태는?",
"overrideConfig": {
"vars": {
"customer_id": "12345"
}
}
}'
주요 노드 카테고리
Chat Models
ChatOpenAI, ChatAnthropic, ChatOllama, ChatGoogleGenerativeAI, AzureChatOpenAI
Embeddings
OpenAI Embeddings, HuggingFace Embeddings, Ollama Embeddings, Cohere Embeddings
Vector Stores
Pinecone, Chroma, Qdrant, Weaviate, Milvus, Faiss, In-Memory
Document Loaders
PDF File, Text File, CSV, JSON, Web Page, YouTube Transcript, Notion, Confluence
Text Splitters
Character Text Splitter, Recursive Character Text Splitter, Markdown Text Splitter
Memory
Buffer Memory, Buffer Window Memory, Conversation Summary Memory, Zep Memory
Chains
LLM Chain, Conversation Chain, Retrieval QA Chain, SQL Database Chain
Agents
OpenAI Functions Agent, ReAct Agent, Conversational Agent, SQL Agent
Tools
Calculator, Search, Web Browser, Custom Tool, API Chain
백업 및 복원
데이터 구조
./flowise/
├── database.sqlite # SQLite 데이터베이스
├── storage/ # 업로드된 파일
├── logs/ # 로그 파일
└── api-keys/ # API 키
백업
# 컨테이너 정지
docker compose down
# 전체 백업
tar -czvf flowise-backup-$(date +%Y%m%d).tar.gz flowise/
# 컨테이너 재시작
docker compose up -d
플로우 내보내기
Chatflows에서 플로우 선택
Settings → Export
JSON 파일 다운로드
복원
tar -xzvf flowise-backup.tar.gz
docker compose up -d
업데이트
docker compose pull
docker compose down
docker compose up -d
트러블슈팅
메모리 부족 (빌드 시)
# Node.js 힙 메모리 증가
export NODE_OPTIONS="--max-old-space-size=4096"
Ollama 연결 안 됨
Base URL 확인: http://ollama:11434 (Docker 네트워크)
또는 http://host.docker.internal:11434 (호스트)
API 키 오류
Settings에서 API Key 생성
Credentials에서 각 서비스 API 키 등록
데이터베이스 마이그레이션
PostgreSQL/MySQL로 변경 시:
# 기존 SQLite 백업 후 새 DB 설정
docker compose down
# docker-compose.yml 수정
docker compose up -d
활용 사례
1. 고객 지원 챗봇
구성:
Document Loader (FAQ 문서)
Vector Store (검색)
Conversational Retrieval QA Chain
Chat Model
결과: 문서 기반 자동 답변 챗봇
2. SQL 데이터 분석
구성:
SQL Database 연결
SQL Agent
Chat Model
결과: 자연어로 데이터베이스 질의
3. 코드 리뷰 에이전트
구성:
GitHub API Tool
Code Interpreter
OpenAI Functions Agent
결과: 코드 분석 및 제안
4. 멀티모달 챗봇
구성:
Image Input
GPT-4V / Claude Vision
Conversation Chain
결과: 이미지 분석 챗봇
5. 자동화 워크플로우
구성:
Webhook Trigger
LLM Chain
API Call Tool
결과: 외부 이벤트 기반 AI 처리
마무리
Flowise는 코딩 없이 LLM 애플리케이션을 구축할 수 있는 강력한 노코드 플랫폼입니다. LangChain의 복잡함을 시각적 인터페이스로 추상화하여, 누구나 AI 앱을 만들 수 있게 해줍니다.
핵심 장점
장점 설명 노코드 드래그 앤 드롭으로 구축 LangChain 기반 검증된 프레임워크 다양한 LLM OpenAI, Anthropic, Ollama 등 RAG 지원 문서 기반 챗봇 쉽게 구축 API 배포 플로우를 REST API로 노출 임베드 위젯 웹사이트에 쉽게 통합 셀프호스팅 데이터 완전 통제
이런 분께 추천
코딩 없이 AI 챗봇을 만들고 싶은 분
LangChain을 쉽게 사용하고 싶은 분
RAG 파이프라인을 빠르게 프로토타이핑하려는 분
비개발자도 AI 앱을 만들어야 하는 팀
MVP를 빠르게 검증하려는 스타트업