본문 바로가기

AI Agent

Dify 완전 가이드 — 노코드로 RAG 챗봇, AI 에이전트, 워크플로우 한 번에

반응형

LangFlow랑 비슷한데 더 완성도 높은 플랫폼이에요.

GitHub 스타: 137,000+ (2026년 4월 기준)
라이선스:    오픈소스 (MIT)
출시:        2023년
투자:        $3,000만 ($1.8억 밸류에이션)

개발자뿐 아니라 기획자, 마케터도 쓸 수 있을 정도로 UI가 잘 돼있어요.


LangFlow vs Dify — 뭐가 다른가

둘 다 드래그앤드롭으로 AI 파이프라인 만드는 도구예요. 근데 느낌이 달라요.

LangFlow:
→ 개발자 친화적
→ Python 커스텀 컴포넌트 강력
→ 파이프라인 설계 중심
→ 기술적 자유도 높음

Dify:
→ 비개발자도 쉽게 사용 가능
→ 앱 배포까지 올인원
→ 프롬프트 관리, 버전 관리 내장
→ 팀 협업, 사용량 모니터링 기본 제공
→ 앱 타입 구분 (챗봇/에이전트/워크플로우)

선택 기준:

개발자가 복잡한 커스텀 파이프라인 → LangFlow
팀 전체가 쓸 AI 앱 빠르게 배포   → Dify

핵심 앱 타입

Dify는 목적에 따라 4가지 앱 타입을 제공해요.

Chatbot:    단순 대화형 챗봇
            → 가장 간단, 메모리 있음

Chatflow:   RAG + 대화 + 워크플로우 결합
            → 문서 기반 챗봇에 최적

Agent:      툴 사용 자율 에이전트
            → 웹 검색, 코드 실행, API 호출

Workflow:   비대화형 자동화 파이프라인
            → 문서 처리, 이메일 자동화, 배치 작업

환경 세팅

방법 1 — 클라우드 (설치 없이)

1. cloud.dify.ai 접속
2. 이메일 회원가입
3. 바로 시작

무료 플랜:
→ 200회 메시지/월 (OpenAI 기준)
→ 앱 10개
→ 팀원 1명

방법 2 — Docker (자체 호스팅, 권장)

# 레포 클론
git clone https://github.com/langgenius/dify.git
cd dify/docker

# 환경변수 설정
cp .env.example .env

# 실행
docker compose up -d

# 접속
# http://localhost (포트 80)

초기 접속:

브라우저에서 http://localhost/install
→ 관리자 계정 생성
→ 로그인

모델 설정

Dify는 플러그인 방식으로 LLM을 추가해요.

좌측 메뉴 → Settings → Model Provider
→ + Install Plugin

지원 모델:
→ OpenAI (GPT-5.4, GPT-5.4-mini)
→ Anthropic (Claude Sonnet 4.6, Opus 4.7)
→ Google (Gemini 3.1)
→ Ollama (로컬 모델)
→ 100개+ 공급사

Anthropic 플러그인 설치:

Model Provider 페이지
→ Anthropic 검색
→ Install 클릭
→ API Key 입력: sk-ant-xxxxx
→ Save

실전 1 — RAG 챗봇 (20분)

문서를 올리면 그 내용으로 답하는 챗봇이에요.

Knowledge Base 만들기

좌측 메뉴 → Knowledge
→ + Create Knowledge
→ 이름 입력: "회사 내부 문서"
→ 파일 업로드 (PDF, DOCX, TXT 등)

청킹 설정:

Chunk Size:    500  (기본값)
Chunk Overlap: 50

Retrieval Mode:
→ Hybrid Search 선택 (권장)
   벡터 검색 + 키워드 검색 동시에
   정확도 높음

임베딩 모델:

text-embedding-3-small (OpenAI, 저렴)
또는
claude embed (Anthropic)

Upload 클릭 → 자동으로 청킹, 임베딩, 저장해요.

Chatflow 앱 만들기

좌측 메뉴 → Studio
→ + Create App
→ Chatflow 선택
→ 이름 입력: "사내 문서 챗봇"
→ Create

노드 구성

캔버스에 자동으로 Start, LLM, End 노드가 생성돼요.

기본 구성:
[Start] → [LLM] → [End]

RAG용으로 Knowledge Retrieval 추가:
[Start] → [Knowledge Retrieval] → [LLM] → [End]

Knowledge Retrieval 노드 추가:

왼쪽 패널 → Knowledge Retrieval 드래그
→ Start와 LLM 사이에 배치
→ Knowledge Base: "회사 내부 문서" 선택
→ Top K: 5 (상위 5개 청크 검색)

LLM 노드 설정:

Model: claude-sonnet-4-6
System Prompt:
"당신은 회사 내부 문서 전문 어시스턴트입니다.
아래 컨텍스트를 기반으로 질문에 답하세요.
컨텍스트에 없는 내용은 '문서에서 찾을 수 없습니다'라고 하세요.

컨텍스트: {{#context#}}"

User: {{#sys.query#}}

{{#context#}}가 Knowledge Retrieval 결과를 받아요.

테스트

우측 미리보기 패널에서 질문 입력:
"우리 회사 환불 정책이 어떻게 되나요?"
→ 업로드한 문서에서 검색 후 답변
→ 출처 문서 표시

배포

우상단 Publish 버튼
→ 퍼블릭 URL 생성 (웹사이트 임베드 가능)
→ API 엔드포인트 자동 생성
→ 웹 위젯 코드 복사 (웹사이트에 붙여넣기)

실전 2 — 툴 사용 에이전트 (15분)

웹 검색, 계산 등 툴을 자율적으로 사용하는 에이전트예요.

앱 생성

+ Create App → Agent
→ 이름: "리서치 에이전트"
→ Model: claude-sonnet-4-6

시스템 프롬프트

당신은 리서치 전문 AI 에이전트입니다.
웹 검색과 계산 툴을 활용해서 정확한 정보를 제공하세요.
항상 출처를 명시하세요.

툴 추가

Tools 탭 → + Add Tool

내장 툴:
→ Google Search (API 키 필요)
→ DuckDuckGo (무료)
→ Calculator
→ Web Scraper
→ Wikipedia

외부 툴:
→ HTTP Request (커스텀 API)
→ 커뮤니티 플러그인

DuckDuckGo + Calculator 추가하면 바로 동작해요.

테스트

"2026년 4월 현재 Claude Opus 4.7 가격을 검색하고
100만 토큰 쓰면 얼마인지 계산해줘"

→ DuckDuckGo 검색 실행
→ 가격 추출
→ Calculator로 계산
→ 결과 답변

실전 3 — 워크플로우 자동화 (심화)

대화 없이 특정 작업을 자동화하는 파이프라인이에요.

예시 — 이메일 분류 자동화

[Start (이메일 본문 입력)]
        ↓
[LLM (분류)] ← "긴급/일반/스팸 중 분류해"
        ↓
[If/Else (조건 분기)]
        ├── 긴급 → [HTTP Request (Slack 알림)]
        ├── 일반 → [HTTP Request (티켓 생성)]
        └── 스팸 → [End (무시)]

노드 종류

LLM:              AI 추론
Knowledge Retrieval: 문서 검색
If/Else:          조건 분기
Iteration:        반복 처리
Code:             Python/JS 실행
HTTP Request:     외부 API 호출
Template:         텍스트 조합
Variable Aggregator: 변수 합치기

Code 노드 (Python 실행)

# Code 노드에서 직접 Python 실행 가능
def main(inputs: dict) -> dict:
    text = inputs["text"]

    # 전처리
    cleaned = text.strip().lower()
    word_count = len(cleaned.split())

    return {
        "cleaned_text": cleaned,
        "word_count": word_count
    }

프롬프트 IDE

Dify만의 강력한 기능이에요.

좌측 메뉴 → Prompt IDE
→ 여러 모델에 같은 프롬프트 테스트
→ 모델별 응답 비교
→ 프롬프트 버전 관리
[프롬프트 입력]
        ↓
┌──────────────────────────────────┐
│ claude-sonnet-4-6  │ gpt-5.4-mini │
│ 응답 A             │ 응답 B        │
└──────────────────────────────────┘
→ 어느 모델이 더 잘 답하는지 바로 비교

A/B 테스트 후 더 좋은 모델 선택해서 배포하는 용도로 유용해요.


API 연동

모든 앱은 자동으로 REST API가 생성돼요.

앱 화면 → API Access 버튼
→ API 키 발급
→ 코드 스니펫 복사 (Python/JS/cURL)

Python 연동:

import requests

DIFY_URL = "https://api.dify.ai/v1"
API_KEY = "app-xxxxx"  # 앱별 API 키

def chat(question: str, conversation_id: str = None) -> dict:
    response = requests.post(
        f"{DIFY_URL}/chat-messages",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        },
        json={
            "inputs": {},
            "query": question,
            "response_mode": "blocking",
            "conversation_id": conversation_id or "",
            "user": "user-001"
        }
    )
    return response.json()

# 사용
result = chat("환불 정책 알려줘")
print(result["answer"])

# 대화 이어가기
conv_id = result["conversation_id"]
result2 = chat("좀 더 자세히 설명해줘", conv_id)

모니터링

Dify는 사용량 모니터링이 기본으로 내장돼있어요.

좌측 메뉴 → Logs & Monitoring
→ 모든 대화 로그
→ 토큰 사용량
→ 응답 시간
→ 에러율

앱 Overview:
→ 일별/주별 메시지 수
→ 사용자 수
→ 모델별 비용

외부 연동:

Settings → Integrations
→ Langfuse (트레이싱)
→ Arize Phoenix (관찰성)
→ Opik (실험 관리)

LangFlow vs Dify 최종 정리

LangFlow 선택:
→ Python 커스텀 컴포넌트 필요
→ 복잡한 파이프라인 설계
→ 개발자 팀 중심
→ LangChain 생태계 활용

Dify 선택:
→ 팀 전체가 쓸 앱 필요
→ 빠른 배포 (당일)
→ 비개발자도 운영
→ 프롬프트 버전 관리
→ 사용량 모니터링 중요
→ 위젯으로 웹사이트 임베드

둘 다 필요 없을 때:
→ 코드로 직접 짜는 게 빠를 것 같으면 LangChain
→ 완전 노코드면 ChatGPT GPTs

 

반응형