Dify Nedir ve Ne İşe Yarar?
Dify, açık kaynak kodlu bir LLM uygulama geliştirme platformudur. Geliştirici ekiplerin büyük dil modellerini kullanarak chatbot, ajan, RAG ardışık düzeni ve AI iş akışı oluşturmasını görsel ve kod tabanlı araçları bir arada sunarak kolaylaştırır. 2023'te LangGenius Inc. tarafından piyasaya sürülen platform, GitHub'da 50.000'in üzerinde yıldıza ulaşmıştır. İki temel çalışma modu vardır: sürükle-bırak iş akışı düzenleyicisiyle kod yazmadan AI zincirleri tasarlayan düşük kodlu mod ve Python/TypeScript SDK'larıyla tam entegrasyon sağlayan tam kodlu mod.
Üç Temel Bileşen
✍️ Prompt IDE
Sistem ve kullanıcı promptlarını düzenler, farklı model versiyonlarını karşılaştırır. OpenAI, Anthropic, Ollama, Azure OpenAI ve Mistral dahil 50+ LLM sağlayıcısı arasında tek tıkla geçiş. A/B test ve prompt versiyon yönetimi yerleşik olarak sunar.
📚 Yerleşik RAG Motoru
PDF, Word, web sayfası ve metin belgelerini chunk ederek dizine ekler. Pinecone, Weaviate, Qdrant ve pgvector dahil çoklu vektör veritabanı desteği. Hibrit arama (semantik + anahtar kelime), otomatik yeniden sıralama (reranking) ve kaynak atıf gösterimi sunar.
🤖 Agent Çerçevesi
ReAct ve Function Calling modlarını destekler. Araç kütüphanesi: Google Search, Wikipedia, kod yorumlayıcı, tarayıcı otomasyonu ve özel REST API bağlayıcıları. Çok adımlı ajan görevleri görsel canvas üzerinde tasarlanır; her adım loglanır.
İş Akışı Düzenleyicisi ve Gözlemlenebilirlik
Dify'nin iş akışı canvas'ı, LLM zincirlerini düğümler ve oklar aracılığıyla görsel olarak tasarlamayı mümkün kılar. LLM çağrısı, kod çalıştırma, koşullu dallanma, döngü, HTTP isteği ve veri dönüşümü gibi düğüm tipleri yerleşik olarak gelir. Tasarlanan iş akışı, versiyonlanabilir ve tek tıkla API uç noktasına dönüştürülebilir. Gözlemlenebilirlik altyapısı her LLM çağrısını, araç yürütmesini ve kullanıcı dönüşümünü loglar; latency, token maliyeti ve başarı oranı gösterge panelinde gerçek zamanlı izlenir. LangSmith veya Langfuse ile entegrasyon da desteklenir.
Dağıtım Seçenekleri ve LangChain ile Fark
Dify, self-hosted (Docker Compose veya Kubernetes) ve bulut versiyonu olarak sunulur. Kurumsal paket SSO, rol tabanlı erişim kontrolü (RBAC) ve denetim günlüğü içerir. Üretim ortamında Dify REST API'si backend koduna entegre edilir; bu sayede mevcut uygulamalara AI özellikleri eklemek için yeni bir servis yazılmasına gerek kalmaz. LangChain ile karşılaştırıldığında Dify daha az Python bilgisiyle hızlı prototipleme imkânı sunar; LangChain ise daha ince granüllü kontrol ve özelleştirme olanağı tanır. Pek çok ekip her ikisini birlikte kullanır: Dify görsel prototip için, LangChain üretimde özel mantık için.
Türkiye'deki Kullanım ve Pratik Başlangıç
Türkiye'deki girişimler ve kurumsal IT ekipleri Dify'yi müşteri hizmetleri botu, iç bilgi tabanı asistanı ve belge özetleme uygulamaları için giderek daha sık kullanmaktadır. Açık kaynak lisansı (Apache 2.0) ticari kullanıma izin verir; veri gizliliği gerektiren projelerde şirket içi (on-premise) kurulum seçeneği önemli bir avantaj sunar. Başlamak için: docker compose up -d komutu Dify'yi yerel olarak çalıştırır; ardından tarayıcıdan arayüze erişip LLM API anahtarını ekleyerek ilk chatbot saniyeler içinde oluşturulabilir.
terminal Dify Kurulumu: Docker Compose ile Adım Adım
Dify'ın önerilen kurulumu Docker Compose üzerinden yapılır. Asgari donanım 2 çekirdek CPU ve 4 GB RAM'dir; bilgi tabanı indeksleme yapacaksanız 4 çekirdek ve 8 GB daha rahat ettirir.
Önce depoyu alın: git clone https://github.com/langgenius/dify.git ve cd dify/docker.
Örnek ortam dosyasını kopyalayın: cp .env.example .env. Bu dosyada değiştirmeniz muhtemel iki değer var: EXPOSE_NGINX_PORT (80 doluysa 8080 yapın) ve SECRET_KEY (üretimde openssl rand -base64 42 ile yeni bir değer üretin).
Servisleri başlatın: docker compose up -d. Ayağa kalkan yığın api, worker, web, postgres, redis, vektör veri tabanı (varsayılan Weaviate), sandbox, ssrf_proxy, plugin_daemon ve nginx kaplarından oluşur. Durumu docker compose ps ile doğrulayın, hepsinin healthy olmasını bekleyin.
Tarayıcıdan http://localhost/install adresine gidip yönetici hesabını oluşturun. Portu değiştirdiyseniz adrese port numarasını ekleyin.
İlk iş model sağlayıcısını tanımlamaktır: Ayarlar, Model Sağlayıcı bölümünden OpenAI, Anthropic veya Ollama anahtarlarını girin. Ardından aynı ekrandaki Sistem Model Ayarları altında hem bir sohbet modeli hem de bir embedding modeli seçin; embedding seçilmezse bilgi tabanı yüklemeleri indeksleme aşamasında hata verir.
Yükseltme sırası şudur: docker compose down, git pull origin main, docker compose pull, docker compose up -d. Her yükseltmeden sonra kendi .env dosyanızı yeni .env.example ile karşılaştırın, eklenen değişkenler eksik kalırsa bazı servisler başlamaz. Veriler docker/volumes klasöründe durur; docker compose down -v komutu bu birimleri siler, yedek almadan kullanmayın.
compare_arrows Dify, n8n, Flowise ve Langflow Karşılaştırması
- check_circle Odak farkı: Dify LLM uygulaması üretmek için tasarlanmıştır: prompt düzenleyici, bilgi tabanı, ajan ve yayınlanabilir sohbet arayüzü bir arada gelir. n8n genel amaçlı otomasyon aracıdır ve yüzlerce SaaS entegrasyonu taşır; LLM düğümleri bu geniş setin bir parçasıdır. Flowise ve Langflow ise görsel zincir kurucularıdır, uygulama katmanını siz yazarsınız.
- check_circle Lisans: Dify, Apache 2.0 tabanlı ama iki ek koşullu kendi açık kaynak lisansını kullanır: çok kiracılı barındırılmış bir servis olarak yeniden sunamaz ve arayüzdeki logo ile telif bilgisini kaldıramazsınız. Şirket içi kullanım ve ürününüze gömme serbesttir. n8n fair-code (Sustainable Use License) ile gelir, Langflow MIT, Flowise ise Apache 2.0 tabanlıdır.
- check_circle RAG altyapısı: Dify'da belge yükleme, parçalama, gömme, yeniden sıralama ve alıntı gösterimi yerleşiktir; ayrı bir vektör veri tabanı kurgusu yazmanız gerekmez. n8n'de RAG'i düğümleri birleştirerek siz kurarsınız. Flowise ve Langflow arada kalır: bileşenler hazırdır ama belge yönetimi arayüzü Dify kadar bütünleşik değildir.
- check_circle Gözlemlenebilirlik: Dify her konuşmayı, token maliyetini ve düğüm bazlı çalışma izini kaydeder; kullanıcı geri bildirimlerini ve açıklama (annotation) düzeltmelerini aynı ekranda toplar. n8n çalışma geçmişi tutar ama token ve prompt odaklı metrik sunmaz. Diğer ikisinde genelde LangSmith gibi harici bir izleme aracı bağlanır.
- check_circle Kod kaçış yolu: Dört araçta da kod düğümü vardır. Dify Python ve Node.js kodunu ayrı bir sandbox kabında çalıştırır, bu yüzden üretimde daha güvenlidir. n8n'in JavaScript düğümü daha esnektir ama aynı süreçte koşar.
- check_circle Ne zaman hangisi: Kurum içi belge asistanı, müşteri destek botu veya prompt üzerinde ürün ekibinin de çalışacağı bir uygulama kuruyorsanız Dify. CRM, e-posta, takvim ve veri tabanı arasında tetikleyiciyle akan otomasyon istiyorsanız n8n. LangChain zincirlerini görsel prototiplemek istiyorsanız Flowise veya Langflow. Kodun tamamına hakim olmak istiyorsanız doğrudan LangGraph veya kendi boru hattınız.
bug_report Dify Kurulumunda Sık Karşılaşılan Hatalar
- check_circle Port 80 kullanımda hatası: Sunucuda zaten Apache, nginx veya başka bir Docker yığını çalışıyordur. Çözüm: .env dosyasında EXPOSE_NGINX_PORT değerini 8080 yapıp docker compose up -d komutunu yeniden çalıştırın, sonra adrese portu ekleyerek girin.
- check_circle Ollama'ya bağlanamıyor: Dify kap içinde çalıştığı için localhost kendi kabını gösterir. Çözüm: macOS ve Windows'ta temel URL olarak http://host.docker.internal:11434 girin. Linux'ta Ollama'yı OLLAMA_HOST=0.0.0.0 ile başlatıp makinenin LAN IP'sini ya da 172.17.0.1 ağ geçidini kullanın.
- check_circle Belge yüklenince indeksleme başarısız: Sistem embedding modeli seçilmemiştir veya sağlayıcı anahtarının embedding izni yoktur. Çözüm: Ayarlar, Model Sağlayıcı, Sistem Model Ayarları altında bir embedding modeli belirleyin; yerel kurulumda Ollama üzerinden bge-m3 gibi bir model yeterlidir.
- check_circle Büyük dosya yüklenmiyor: İki ayrı sınır birlikte çalışır. Çözüm: .env içinde UPLOAD_FILE_SIZE_LIMIT değerini yükseltin ve aynı dosyadaki NGINX_CLIENT_MAX_BODY_SIZE değerini de eşleyin; sadece birini değiştirmek 413 hatasını sürdürür.
- check_circle Uzun LLM yanıtında zaman aşımı: Ters vekil sunucu isteği kesiyordur. Çözüm: .env dosyasındaki NGINX_PROXY_READ_TIMEOUT ve NGINX_PROXY_SEND_TIMEOUT değerlerini artırın, sonra nginx kabını yeniden başlatın. Akış (streaming) modunu açmak da kullanıcı tarafında bekleme hissini azaltır.
- check_circle Yükseltme sonrası servis ayağa kalkmıyor: Yeni sürüm .env dosyasına yeni değişkenler eklemiştir, eski dosyada bunlar yoktur. Çözüm: .env ile .env.example dosyalarını karşılaştırıp eksik anahtarları ekleyin, docker compose logs api çıktısındaki eksik değişken adını takip edin.
- check_circle Eklenti yüklenmiyor: Sürüm 1.0 ile birlikte gelen plugin_daemon servisi çalışmıyor ya da dış ağa erişemiyordur. Çözüm: docker compose ps ile plugin_daemon durumunu kontrol edin, kapalı ağda çalışıyorsanız eklenti paketini .difypkg dosyası olarak elle yükleyin.
- check_circle Veri kaybı: docker compose down -v komutu postgres ve vektör veri tabanı birimlerini siler. Çözüm: yalnızca docker compose down kullanın, yedek için docker/volumes klasörünü ve postgres dökümünü düzenli arşivleyin.
Sık Sorulan Sorular
- check_circle Dify LangChain'e alternatif mi, tamamlayıcı mı? Her ikisi de geçerlidir. Dify görsel iş akışı ve hazır bileşenlerle hızlı prototip için idealdir; LangChain ince granüllü Python kontrolü gerektiğinde tercih edilir. Pek çok ekip Dify'yi ürün ekiplerine açık bir arayüz olarak kullanırken veri mühendisleri LangChain ile özel bileşenler yazar ve Dify'ye araç olarak entegre eder.
- check_circle Dify'yi kendi sunucumda çalıştırabilir miyim? Evet. Dify, Docker Compose ve Kubernetes için hazır konfigürasyonlar sunar. Self-hosted kurulum tüm verilerin kendi altyapınızda kalmasını garantiler; GDPR ve veri yerelleştirme uyumluluğu gerektiren projeler için kritik avantajdır. Resmi GitHub deposundaki docker-compose.yaml ile 5 dakikada çalışır hâle getirilebilir.
- check_circle Dify hangi LLM sağlayıcılarını destekler? 50'nin üzerinde model sağlayıcısı ile entegredir: OpenAI (GPT-4o, o1), Anthropic (Claude 3.5), Google (Gemini), Mistral, Cohere, Ollama (yerel modeller), Azure OpenAI ve HuggingFace Inference API bunların başında gelir. Model seçimi iş akışı içinde düğüm bazında değiştirilebilir; farklı görevler için farklı modeller kullanılabilir.
- check_circle Dify ücretli mi? Dify açık kaynak (Apache 2.0) olduğundan self-hosted kurulumda tamamen ücretsizdir. Dify.ai bulut hizmeti sınırlı ücretsiz katman ve ücretli Pro/Enterprise planları sunar. Ücretli planlarda öncelikli destek, daha yüksek token kotası ve kurumsal güvenlik özellikleri bulunur.
- check_circle Flowise ve n8n ile farkı nedir? Flowise, LangChain odaklı görsel zincir oluşturucudur; Dify'ye benzer ama daha az bütünleşik RAG ve gözlemlenebilirlik altyapısı sunar. n8n ise genel amaçlı iş akışı otomasyon aracıdır; LLM entegrasyonu birincil odak noktası değildir. Dify, LLM uygulamaları için uçtan uca özellikleri en bütünleşik biçimde sunan open-source platform olarak öne çıkmaktadır.
- check_circle Dify kurulumu için minimum donanım nedir? Resmi asgari gereksinim 2 çekirdek CPU ve 4 GB RAM'dir, üzerine Docker ve Docker Compose v2 gerekir. Bilgi tabanı indeksleme ve birkaç eşzamanlı kullanıcı düşünüyorsanız 4 çekirdek ve 8 GB RAM daha gerçekçidir. Disk tarafında yüklenen belgeler ve vektör indeksi için başlangıçta 20 GB ayırın.
- check_circle Dify'ı Ollama ile nasıl bağlarım? Model Sağlayıcı ekranında Ollama'yı seçip temel URL alanına http://host.docker.internal:11434 yazın. Bu adres Docker Desktop kullanan macOS ve Windows'ta geçerlidir. Linux'ta Ollama'yı OLLAMA_HOST=0.0.0.0 ile başlatın ve makinenin LAN IP adresini ya da 172.17.0.1 Docker ağ geçidini girin; localhost yazmak kabın kendisini işaret ettiği için bağlantı hatası verir.
- check_circle Dify gerçekten Apache 2.0 lisanslı mı? Tam olarak değil. Dify, Apache 2.0 tabanlı ama iki ek kısıtlı kendi lisansını kullanır: izin almadan çok kiracılı barındırılmış bir servis olarak sunamaz, arayüzdeki logo ile telif bilgisini kaldıramazsınız. Şirket içi kullanım, kendi ürününüze gömme ve kaynak kodunu değiştirme serbesttir.
- check_circle Dify'ı nasıl güncellerim, verilerim kaybolur mu? docker klasöründe sırasıyla docker compose down, git pull origin main, docker compose pull ve docker compose up -d komutlarını çalıştırın. Veriler docker/volumes klasöründeki birimlerde durduğu için bu akışta silinmez. Tehlikeli olan tek komut docker compose down -v, çünkü birimleri de kaldırır.
- check_circle Dify ile n8n arasında hangisini seçmeliyim? LLM uygulamasının kendisini kuruyorsanız (prompt, bilgi tabanı, sohbet arayüzü, kullanım logları) Dify daha az iş çıkarır. Birbirine bağlanacak servisler ve zamanlanmış tetikleyiciler ana ihtiyacınızsa n8n'in entegrasyon kataloğu öne geçer. İkisini birlikte kullanan ekipler de var: Dify uygulamayı yayınlar, n8n onu API üzerinden iş akışına çağırır.