Dify
LLM 애플리케이션 개발 플랫폼입니다. 코드 없이 웹 UI에서 챗봇, RAG, AI Agent, 워크플로우 등을 구성할 수 있습니다.
어디에 쓰이나요?
- RAG 챗봇: PDF, 웹페이지 등의 문서를 업로드하고 문서 기반 질의응답 챗봇 구축
- AI Agent: 외부 도구(검색, 계산기, API 호출 등)를 활용하는 자율형 AI 에이전트 구성
- 워크플로우: 여러 LLM 호출과 조건 분기를 연결하여 복잡한 AI 파이프라인 설계
- 프롬프트 관리: 프롬프트 버전 관리, A/B 테스트, 성능 모니터링
OpenAI, Anthropic, Ollama 등 다양한 LLM 제공자를 연결할 수 있으며, 완성된 애플리케이션은 API 또는 공유 링크로 배포할 수 있습니다.
Docker Compose
Dify는 공식 저장소의 Docker Compose 파일을 사용합니다.
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
.env 파일에서 필요한 설정을 수정합니다.
# .env 파일 주요 설정
SECRET_KEY=sk-your-secret-key-here
INIT_PASSWORD=changeme
초기 실행 시 여러 컨테이너(api, worker, web, db, redis, nginx 등)가 함께 시작됩니다. 전체 기동까지 1~2분 정도 소요될 수 있습니다.
접속 확인
브라우저에서 http://localhost/install로 접속하여 관리자 계정을 생성합니다.
설정 완료 후 http://localhost에서 로그인합니다.
기본 정보
| 항목 | 값 |
|---|
| 웹 UI 포트 | 80 |
| API 포트 | 5001 |
| 기본 관리자 비밀번호 | .env의 INIT_PASSWORD |
포함된 서비스
Dify는 다음 서비스들을 함께 실행합니다.
| 서비스 | 역할 |
|---|
| api | 백엔드 API 서버 |
| worker | 비동기 작업 처리 (Celery) |
| web | 프론트엔드 (Next.js) |
| db | PostgreSQL 데이터베이스 |
| redis | 캐시 및 메시지 큐 |
| nginx | 리버스 프록시 |
| sandbox | 코드 실행 샌드박스 |
| weaviate/qdrant | 벡터 데이터베이스 (선택) |
주요 환경 변수 (.env)
| 변수 | 설명 |
|---|
SECRET_KEY | 애플리케이션 시크릿 키 |
INIT_PASSWORD | 초기 관리자 비밀번호 |
LOG_LEVEL | 로그 레벨 (DEBUG, INFO, WARNING, ERROR) |
VECTOR_STORE | 벡터 DB 종류 (weaviate, qdrant, milvus 등) |
OPENAI_API_KEY | OpenAI API 키 (모델 사용 시) |
업데이트
cd dify/docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
라이선스
| 구분 | 내용 |
|---|
| 라이선스 | Apache License 2.0 (Community), 상용 라이선스 (Enterprise) |
| 개인 사용 | 자유롭게 사용 가능 |
| 상업적 사용 | Community 에디션은 자유롭게 사용 가능. 로고/브랜드 제거 시 상업적 라이선스 필요. Enterprise는 SSO, 감사 로그 등 추가 기능 포함 |