
Dify란 무엇인가요?
Dify는 대규모 언어 모델을 기반으로 하는 애플리케이션을 개발하기 위한 오픈 소스 플랫폼입니다. 시각적 AI 워크플로, 검색 증강 생성(RAG), 에이전트 기능, 모델 관리, 관측성, 애플리케이션 API를 하나의 인터페이스로 결합하여 팀이 프로토타입에서 프로덕션으로 빠르게 전환할 수 있도록 지원합니다.
아무것도 설치하지 않고 호스팅 서비스인 Dify Cloud를 사용하거나, 자체 환경에 Community Edition을 배포할 수 있습니다. 추가 요구 사항이 있는 조직을 위한 엔터프라이즈 옵션도 제공됩니다.
주요 기능
- 시각적 워크플로: 시각적 캔버스에서 AI 워크플로를 구축하고 테스트할 수 있습니다.
- 폭넓은 모델 지원: 추론 제공업체 또는 자체 호스팅 솔루션을 통해 수백 개의 독점 및 오픈 소스 모델에 연결할 수 있습니다. GPT, Mistral, Llama 3, OpenAI API 호환 모델을 지원합니다.
- 프롬프트 IDE: 프롬프트를 작성하고 모델 성능을 비교하며, 채팅 애플리케이션에 텍스트 음성 변환과 같은 기능을 추가할 수 있습니다.
- RAG 파이프라인: 문서에서 정보를 수집하고 검색할 수 있으며, PDF, 프레젠테이션 및 기타 일반적인 형식에 대한 텍스트 추출 기능이 기본 제공됩니다.
- 에이전트 및 도구: LLM Function Calling 또는 ReAct를 사용해 에이전트를 정의할 수 있습니다. Dify에는 Google Search, DALL·E, Stable Diffusion, WolframAlpha를 포함한 50개 이상의 기본 제공 도구가 있으며, 사용자 지정 도구도 지원합니다.
- LLMOps: 애플리케이션 로그와 성능을 모니터링한 다음, 프로덕션 데이터와 주석을 사용해 프롬프트, 데이터셋, 모델을 개선할 수 있습니다.
- 서비스형 백엔드: 해당 API를 통해 Dify 애플리케이션을 기존 비즈니스 로직에 통합할 수 있습니다.
- 관측성 통합: Dify는 Opik, Langfuse, Arize Phoenix 등 다양한 관측성 옵션을 지원합니다.
Dify 실행 방식 선택
Dify Cloud
Dify Cloud는 로컬 설정이 필요하지 않으므로 플랫폼을 가장 빠르게 사용해 볼 수 있는 방법입니다. 프로젝트 README에 따르면 샌드박스 플랜에는 GPT-4 무료 호출 200회가 포함되며, 자체 배포 버전에서 사용할 수 있는 기능을 제공합니다.
자체 호스팅 Community Edition
자체 호스팅을 사용하면 Dify가 실행되는 환경을 직접 제어할 수 있습니다. 문서에 안내된 가장 간단한 설치 방법은 Docker Compose를 사용하는 것입니다.
엔터프라이즈 및 조직용
Dify는 엔터프라이즈 중심 기능도 제공합니다. 조직은 Dify 팀에 문의하여 요구 사항과 라이선스 옵션을 논의할 수 있습니다.
Docker Compose로 Dify 설치
요구 사항 확인
시작하기 전에 호스트 시스템이 다음 최소 요구 사항을 충족하는지 확인하세요.
- CPU: 최소 2코어
- 메모리: 최소 4GiB RAM
- Docker: 설치 및 실행 상태
- Docker Compose: 버전 2.24.0 이상
Docker가 아직 설치되어 있지 않다면 공식 Docker 설치 가이드를 참고하세요.
서비스 시작
Dify 저장소를 체크아웃한 디렉터리에서 프로젝트 디렉터리와 Docker 디렉터리로 이동한 다음, 예시 환경 파일을 복사하고 서비스를 시작합니다.
cd dify
cd docker
cp .env.example .env
docker compose up -d-d 옵션은 컨테이너를 백그라운드에서 계속 실행되는 분리 모드로 시작합니다.
대시보드 초기화
서비스가 시작되면 브라우저에서 다음 주소를 엽니다.
http://localhost/install대시보드에 표시되는 초기화 절차를 따르세요. 설정에 실패하면 공식 자체 호스팅 FAQ를 참고하세요.
Dify에 기여하거나 수정하려는 개발자는 Docker Compose 빠른 시작만 따르기보다 공식 소스 코드 배포 가이드를 사용해야 합니다.
기본 사용법
1. 모델 선택
Dify는 다양한 호스팅 추론 제공업체와 자체 호스팅 솔루션의 모델을 통합할 수 있습니다. 애플리케이션에 적합한 제공업체와 모델을 선택하세요. GPT, Mistral, Llama 3 및 OpenAI API 호환 인터페이스를 통해 제공되는 모델을 사용할 수 있습니다. 현재 지원되는 통합 목록은 모델 제공업체 목록을 참고하세요.
2. 워크플로 구축 및 테스트
시각적 캔버스를 사용해 AI 애플리케이션의 로직을 구성하고 테스트할 수 있습니다. 입력을 처리하거나 모델로 전송하거나, 검색된 정보로 보강하거나, 도구에 전달하는 등 단일 프롬프트 이상의 작업이 필요한 애플리케이션에 워크플로가 유용합니다.
- 애플리케이션이 사용자로부터 무엇을 입력받을지 정의합니다.
- Dify의 시각적 워크플로 인터페이스를 사용해 AI 프로세스를 표현합니다.
- 워크플로를 적절한 모델에 연결합니다.
- 동작을 테스트하고 생성된 결과를 검토합니다.
- 필요에 따라 워크플로, 프롬프트, 데이터셋 또는 모델 선택을 개선합니다.
3. Prompt IDE에서 프롬프트 개발
Prompt IDE를 사용하면 대화형 인터페이스에서 프롬프트를 작성하고 테스트할 수 있습니다. 어떤 모델이 애플리케이션에 가장 적합한지 결정하기 전에 모델 성능을 비교할 수도 있습니다. 채팅 기반 애플리케이션의 경우 IDE에 텍스트 음성 변환과 같은 기능도 추가할 수 있습니다.
4. RAG로 지식 추가
Dify의 RAG 파이프라인은 문서 수집과 검색을 지원합니다. 일반적인 지식 기반 애플리케이션은 PDF와 프레젠테이션을 비롯한 지원 파일을 수집하고, 텍스트를 추출한 다음 사용자의 질문에 답할 때 관련 자료를 검색할 수 있습니다.
예를 들어 내부 문서를 바탕으로 질문에 답하는 어시스턴트를 만들 수 있습니다. 애플리케이션은 모델의 기존 지식에만 의존하는 대신, 수집한 문서에서 관련 콘텐츠를 검색해 응답을 생성할 때 활용할 수 있습니다.
5. 도구를 사용하는 에이전트 만들기
작업에 실행이나 외부 서비스가 필요한 경우 Function Calling 또는 ReAct를 사용해 에이전트를 정의하세요. Google Search, DALL·E, Stable Diffusion, WolframAlpha와 같은 기본 제공 도구를 추가하거나, 애플리케이션 설계에 맞는 사용자 지정 도구를 연결할 수 있습니다.
한 가지 예로 검색을 사용해 정보를 수집한 후 응답을 생성하는 연구 에이전트가 있습니다. 또 다른 예로 사용자가 시각적 결과물을 요청하면 이미지 생성 도구를 호출하는 창작 에이전트가 있습니다.
6. API를 통해 애플리케이션 통합
Dify의 기능에는 각각 해당 API가 있으므로, 완성된 애플리케이션을 다른 제품의 백엔드로 사용할 수 있습니다. 웹 애플리케이션, 내부 도구 또는 기타 비즈니스 시스템에서 Dify에 구축된 로직을 호출해야 할 때 이러한 백엔드 서비스 방식을 사용하세요. 현재 통합 방법은 공식 문서를 참조하세요.
모니터링 및 지속적인 개선
Dify의 LLMOps 기능을 사용하면 시간에 따른 애플리케이션 로그와 성능을 모니터링할 수 있습니다. 운영 데이터와 주석을 바탕으로 프롬프트, 데이터 세트, 모델 선택을 개선할 수 있습니다. 이를 통해 애플리케이션을 배포하고 동작을 확인한 뒤 관찰된 결과에 따라 개선하는 반복적인 워크플로를 구축할 수 있습니다.
추가적인 관측 가능성을 위해 Dify와 Opik, Langfuse, Arize Phoenix의 통합을 살펴보세요. 환경의 추적, 평가 및 모니터링 요구 사항에 따라 통합을 선택하세요.
고급 설정 팁
환경 변수 사용자 지정
필수 시작 기본값은 docker/.env.example에 저장되어 있습니다. 빠른 시작 명령은 이러한 기본값을 docker/.env에 복사하며, 사용자 지정 배포를 위해 편집해야 하는 파일이 바로 이 파일입니다. 선택 사항인 고급 변수는 주제별로 docker/envs/ 아래에 정리되어 있습니다.
구성을 변경한 후에는 docker 디렉터리에서 다음 명령을 다시 실행하세요.
docker compose up -d사용 가능한 설정의 전체 목록은 환경 변수 문서를 참조하세요.
Grafana로 메트릭 모니터링
커뮤니티에서 제작한 Grafana 대시보드는 Dify의 PostgreSQL 데이터베이스를 데이터 소스로 사용할 수 있습니다. 애플리케이션, 테넌트, 메시지 및 기타 메트릭 수준의 모니터링을 제공합니다.
Kubernetes에 배포
고가용성 환경을 위해 README에는 커뮤니티에서 제공하는 Helm 차트와 Kubernetes YAML 파일이 나와 있습니다. 사용 가능한 옵션은 다음과 같습니다.
- LeoQuote의 Dify Helm 차트
- BorisPolonsky의 Dify Helm 차트
- magicsong의 AI 차트
- Winson-030의 Kubernetes YAML 파일
- wyy-holding의 Kubernetes 파일
- Dify v1.6.0을 지원하는 Zhoneym의 YAML 파일
이러한 배포 리소스는 커뮤니티 기여로 제공되므로, 운영 환경에서 사용하기 전에 해당 문서와 호환성을 검토하세요.
클라우드 인프라 도구 사용
프로젝트 README에는 주요 클라우드 플랫폼을 위한 커뮤니티 배포 옵션도 안내되어 있습니다.
- Terraform: Azure Global 및 Google Cloud용 커뮤니티 프로젝트를 이용할 수 있습니다.
- AWS CDK: AWS 샘플은 EKS 기반 및 ECS 기반 자체 호스팅 옵션을 제공합니다.
- Alibaba Cloud: Computing Nest 및 Data Management 배포 옵션이 나와 있습니다.
- Azure Kubernetes Service: 커뮤니티 Azure DevOps Pipeline과 Helm 차트를 사용해 Dify를 AKS에 배포할 수 있습니다.
보안 보고서 비공개 처리
보안 취약점을 GitHub 이슈로 공개하지 마세요. 프로젝트에서는 해당 취약점을 security@dify.ai로 비공개 보고할 것을 요청합니다.
도움받기 및 기여하기
질문과 피드백은 GitHub Discussions를 이용하고, 버그 및 기능 제안은 GitHub Issues를 이용하세요. 애플리케이션을 공유하고 다른 사용자와 소통할 수 있도록 Discord 커뮤니티도 운영됩니다.
코드 기여를 원한다면 프로젝트의 기여 가이드를 읽어 보세요. 번역 기여자는 국제화 README를 참고할 수 있습니다.
결론
Dify는 워크플로, 프롬프트, RAG, 에이전트, 모델 관리, 관측성 및 API를 통합된 LLM 애플리케이션 플랫폼으로 제공합니다. Dify Cloud를 통해 즉시 사용해 보거나 Docker Compose로 Community Edition을 직접 호스팅할 수 있습니다. 기본 구성으로 시작해 집중적인 AI 애플리케이션을 구축하고 테스트한 다음, 요구 사항이 늘어나면 모니터링 또는 클라우드 배포 옵션을 도입하세요.
