Kursus
Dify adalah platform ramah pengguna yang membantu Anda membangun aplikasi AI dengan sedikit atau tanpa kode. Cara kerjanya adalah dengan menyeret dan meletakkan blok dengan fungsi berbeda. Informasi mengalir melalui blok-blok ini, kemudian diproses dan digabungkan untuk menghasilkan jawaban.
Dalam artikel ini, saya akan menjelaskan dasar-dasar Dify dengan menuntun Anda melalui langkah-langkah untuk membuat agen perjalanan AI.
Kami selalu memperbarui pembaca tentang kabar terbaru AI melalui The Median, buletin gratis setiap Jumat yang merangkum berita utama pekan ini. Berlangganan dan tetap up-to-date hanya dalam beberapa menit per minggu:
Apa Itu Dify?
Dify adalah platform yang dirancang untuk menyederhanakan pengembangan aplikasi AI tanpa memerlukan keterampilan coding yang mendalam. Platform ini menyediakan lingkungan low-code yang mudah digunakan, di mana pengguna dapat membangun aplikasi dengan menyeret dan meletakkan berbagai komponen.
Bayangkan Dify sebagai kotak peralatan digital berisi blok siap pakai yang dapat disusun untuk membuat perangkat lunak fungsional. Pendekatan ini membuat teknologi lebih mudah diakses, memungkinkan orang dengan pengetahuan pemrograman terbatas untuk mewujudkan ide mereka.
Setiap jenis blok memiliki input dan mengubahnya menjadi output yang berbeda, tergantung pada jenis bloknya. Informasi diteruskan dan diubah dari satu blok ke blok lainnya hingga menghasilkan hasil akhir.
Mulai Menggunakan Dify
Ada dua cara menggunakan Dify:
- Penyiapan lokal.
- Menggunakan versi cloud.
Dalam tutorial ini, kita menggunakan versi cloud. Versi cloud Dify menawarkan paket gratis, jadi Anda dapat mengikuti tutorial ini tanpa perlu berlangganan berbayar.
Jika Anda tertarik dengan penyiapan lokal, cara termudah adalah:
- Unduh atau klon Dify dari repositori resmi.
- Jalankan Dify menggunakan Docker seperti dijelaskan pada bagian Quick Start pada README repositori.
Membuat Chatflow dengan Dify
Dify menyediakan beberapa jenis aplikasi. Kita akan fokus membangun aplikasi Chatflow, yaitu alur AI di mana pengguna menggunakan antarmuka chat untuk berinteraksi dengan agen.
Untuk membuat aplikasi Chatflow baru, pertama klik "Create from blank" lalu pilih opsi "Chatflow".

Untuk membuat alur, kita tetapkan nama lalu klik tombol “Create”:

Ini akan membuat alur bawaan berikut:

Alur ini memiliki tiga blok:
- Blok start bertugas memulai alur. Dalam kasus Chatflow, alur dimulai ketika pengguna mengirim pesan.
- Node LLM menerima pesan pengguna sebagai input dan mengirimkannya ke LLM, dalam hal ini
gpt-4. - Node final digunakan untuk menampilkan pesan di chat. Dalam contoh ini, node tersebut terhubung ke node LLM, sehingga output node LLM dikirim ke chat.
Ketiga node ini bersama-sama secara efektif menciptakan chat AI seperti ChatGPT. Sebelum menjalankan aplikasi ini, kita perlu memasang dan menyiapkan plugin OpenAI.
Memasang dan menyiapkan plugin OpenAI
Untuk memasang plugin OpenAI, lakukan:
- Klik tombol "Plugins" di pojok kanan atas.

- Klik “Install from Marketplace.”

- Ketik "openai" di kotak pencarian lalu klik plugin OpenAI.

- Pilih plugin OpenAI dan klik “Install.”
Selanjutnya, kita perlu menyiapkan kunci API OpenAI. Jika Anda belum memilikinya, buat di sini. Perlu dicatat bahwa penggunaan API OpenAI tidak gratis, jadi Anda perlu mengaitkan metode pembayaran dengan kunci API tersebut.
Setelah kita memiliki kunci, kita dapat mengonfigurasinya dengan:
- Memilih node LLM.

- Klik ikon konfigurasi di sebelah nama model.

- Klik dropdown model di bagian atas.

- Klik "Model Provider Settings" di bagian bawah daftar.

- Klik "Setup" pada bagian API key.

- Tempel kunci API lalu klik “Save”.

Menjalankan aplikasi
Sekarang kita bisa menjalankan aplikasi dengan mengklik tombol preview:

Saat ini, ini belum terlalu menarik karena hanya chatbot AI. Ingat bahwa aplikasi tidak akan melakukan apa pun sampai pengguna mengirim pesan.

Membuat variabel
Dify memungkinkan penyimpanan state aplikasi dengan menetapkan nilai ke variabel yang dapat diakses semua blok.
Untuk membuat variabel, klik tombol variabel:

Mari buat variabel untuk menyimpan nama pengguna:

Konfigurasi ini membuat variabel bernama name yang menyimpan string (teks). Kita biarkan nilai default kosong, jadi awalnya variabel akan berupa string kosong.
Ada beberapa cara untuk mengisinya, tetapi cara yang paling umum adalah menggunakan blok AI untuk mengetahuinya secara otomatis dari percakapan. Kita akan mempelajarinya nanti. Pertama, kita pelajari cara memeriksa nilai variabel untuk mengendalikan alur aplikasi.
Blok IF/ELSE
Untuk memeriksa nilai suatu variabel, kita dapat menggunakan blok IF/ELSE. Blok ini digunakan untuk mengeksekusi tindakan yang berbeda bergantung pada nilai variabel.
Untuk menambahkan blok baru, klik tombol "+" di bagian bawah:

Lalu pilih blok yang ingin ditambahkan. Dalam kasus ini, pilih "IF/ELSE":

Kemudian klik blok untuk mengonfigurasinya dengan memilih variabel name yang kita buat sebelumnya.
Untuk mengujinya, tambahkan dua blok Answer. Blok-blok ini digunakan untuk menampilkan pesan di chat. Hubungkan salah satunya ke output IF (yang berjalan ketika kondisi bernilai true) dan yang lain ke output ELSE (yang berjalan ketika kondisi bernilai false).

Untuk output IF, saya menetapkan string "Maaf, saya tidak tahu nama Anda." sedangkan untuk ELSE, saya menetapkan "Halo, {name}!" Kita dapat menggunakan kurung kurawal untuk menyisipkan variabel ke dalam string. Ini juga akan berguna nanti saat membangun prompt.
Kita dapat mencoba Chatflow ini dengan mengklik tombol "Preview". Perhatikan bahwa Chatflow dipicu oleh pesan pengguna, jadi kita perlu mengirim pesan terlebih dahulu, seperti "Hi." Berikut hasilnya bergantung pada apakah nama disetel atau tidak (saya menetapkannya secara manual di antarmuka variabel untuk contoh kedua):

Blok variable assigner dan parameter extractor
Kita dapat menggunakan AI untuk mengidentifikasi dan mengekstrak nilai variabel menggunakan blok Parameter Extractor. Blok ini menggunakan LLM untuk mengekstrak informasi dari percakapan.

Pertama, kita menambahkan blok Parameter Extractor yang terhubung ke cabang IF. Berikut konfigurasi bloknya:

- Bagian
INPUT VARIABLEdisetel kesys.query, yang sesuai dengan pesan pengguna. Artinya, blok Parameter Extractor akan mencoba mengekstrak nilai dari pesan pengguna. - Pada
EXTRACTION PARAMETERS, kita mendefinisikan informasi yang ingin diekstrak. Sayangnya, kita tidak bisa langsung menentukan variabel di sini, jadi kita perlu mendefinisikan ulang informasi tersebut dengan mengklik tombol “+”.

- Kolom
INSTRUCTIONadalah prompt untuk memandu LLM tentang apa yang harus dilakukan. - Selanjutnya, tambahkan blok Variable Assigner untuk menetapkan nilai yang diekstrak oleh Parameter Extractor (jika ada) ke variabel
name.

Pastikan untuk menetapkan name yang diekstrak ke variabel name.

Setelah langkah ini, variabel name mungkin masih belum terdefinisi karena bisa saja pengguna tidak memberikan namanya. Jadi kita menambahkan lagi blok IF/ELSE untuk memeriksa. Jika nama disetel, kita menyapa pengguna. Jika tidak, kita menanyakan namanya.

Berikut contoh interaksi:

Alur ini menggambarkan dasar-dasar workflow Dify. Apa pun pesan pengguna, jika nama belum didefinisikan, sistem akan mencoba mengekstrak nama dari pesan. Jika gagal, sistem akan menanyakannya. Jika berhasil, sistem langsung menyapa pengguna dengan namanya.
Pada titik ini, belum ada blok LLM, jadi agen belum melakukan hal lain.
Blok kode
Blok kode dapat digunakan untuk mengeksekusi kode Python kustom. Mari kita modifikasi alur sebelumnya untuk mengekstrak lokasi pengguna alih-alih nama. Lalu kita akan menggunakan blok Code untuk membuat permintaan ke API cuaca dan mengirimkan prakiraan cuaca kepada pengguna.
- Buat variabel baru bernama
location. - Ubah blok IF/ELSE untuk memeriksa
locationalih-alihname. - Ubah blok Parameter Extractor untuk mengekstrak lokasi alih-alih nama.
- Ubah blok Variable Assigner untuk menetapkan nilai yang diekstrak ke variabel
location. - Ubah blok Answer masing-masing untuk menanyakan lokasi dan menampilkan lokasi.
Setelah langkah-langkah ini, alurnya akan terlihat seperti ini:

Berikut contoh interaksi:

Langkah berikutnya adalah menambahkan blok Code setelah kita mendapatkan lokasi. Blok ini membuat permintaan ke OpenWeather API untuk meminta prakiraan cuaca di lokasi tersebut.
API ini gratis digunakan selama kita tidak membuat terlalu banyak permintaan.
Ganti blok Answer kedua dengan blok Code.

Konfigurasikan agar menerima satu parameter dengan nilai location.

Untuk kode Python, berikut cara menggunakan paket requests untuk mendapatkan cuaca dari OpenWeather API:
import requests
API_KEY = "PASTE_YOUR_API_KEY_HERE"
def main(location: str) -> str:
base_url = "http://api.openweathermap.org/data/2.5/weather"
params = {
"q": location,
"appid": API_KEY,
"units": "metric",
}
response = requests.get(base_url, params=params)
data = response.json()
if response.status_code == 200:
weather_desc = data["weather"][0]["description"]
temp = data["main"]["temp"]
return {
"result": f"Current weather in {location}: {weather_desc}, Temperature: {temp}°C"
}
else:
return {
"result": "Could not retrieve weather data",
}
Terakhir, kita hubungkan output node Code ke node Answer untuk menampilkannya kepada pengguna.

Sekarang kita memiliki Chatflow yang dapat memberi tahu prakiraan cuaca:

Proyek: Membuat Agen AI Perencana Perjalanan
Sekarang kita memiliki semua alat yang kita butuhkan untuk membangun agen perjalanan AI. Kemungkinannya tidak terbatas, tetapi agar tutorial ini tidak terlalu rumit, kita akan menjaganya tetap sederhana.
Agen akan fokus merencanakan satu hari perjalanan. Agen akan mulai dengan mengumpulkan lokasi pengguna dan jenis aktivitas yang mereka sukai. Untuk itu, kita gunakan dua variabel:
location: Menyimpan lokasi tempat pengguna bepergian.activities: Array string yang menyimpan aktivitas yang ingin dilakukan pengguna.

Berikut cara kita membuat alur untuk mengekstrak kedua variabel:

Dalam contoh ini, kita memulai dengan blok ekstraksi variabel untuk mengekstrak location dan daftar activities sekaligus.

Kemudian kita menggunakan blok IF/ELSE untuk memeriksa apakah masing-masing parameter ini berhasil diekstrak dan memperbarui variabel jika ya. Berbeda dengan contoh sebelumnya, ini memungkinkan pengguna memperbarui nilainya.
Di akhir proses ekstraksi nilai dan penetapan variabel, kita tambahkan lagi blok IF/ELSE untuk memeriksa apakah ada nilai yang hilang. Jika ada yang kurang, kita secara eksplisit meminta pengguna untuk menyediakannya.

Jika location dan activities telah didefinisikan, kita gunakan blok Code yang dibuat sebelumnya untuk mendapatkan cuaca di lokasi tersebut. Terakhir, kita berikan cuaca, lokasi, dan aktivitas ke blok LLM untuk merencanakan hari pengguna.

Blok LLM dikonfigurasi dengan system prompt yang memberi tahu model apa yang harus dilakukan. Lokasi, aktivitas, dan cuaca disisipkan ke dalamnya. Berikut bagian akhir alurnya:

Berikut contoh interaksi dengan agen:

Kita lihat pada respons bahwa, berkat node Code, agen dapat memberikan informasi cuaca kepada pengguna dan mempertimbangkannya saat merencanakan aktivitas.
Berkat cara alur disusun, jika pengguna langsung memberikan informasi pada pesan pertama, agen akan langsung memberikan rencana untuk hari itu.

Menentukan sapaan kustom
Anda mungkin memperhatikan bahwa agen memulai dengan menyapa pengguna melalui sebuah pesan:

Untuk mengaktifkannya, kita perlu mengaktifkan fitur Conversation Opener.


Dify Tools
Dalam tutorial ini, kita mempelajari blok-blok dasar Dify. Satu aspek yang belum kita bahas adalah tools.
Di Dify, tools adalah ekstensi kuat yang memungkinkan agen AI Anda berinteraksi dengan dunia luar melampaui keterbatasan model bahasa. Sementara LLM dapat bernalar dan menghasilkan respons berdasarkan data pelatihan dan konteks prompt, LLM tidak memiliki akses waktu nyata ke data live atau layanan eksternal.
Tools menyelesaikan masalah ini dengan memungkinkan agen Anda melakukan panggilan API, melakukan kueri basis data, menjalankan perhitungan, mengambil dokumen, dan banyak lagi—pada dasarnya bertindak sebagai jembatan antara AI Anda dan sumber informasi eksternal.

Anda dapat mengonfigurasi tools di Dify melalui antarmuka visual platform dengan menentukan jenis tool (seperti permintaan HTTP, code interpreter, atau plugin pihak ketiga), skema input/output, dan persyaratan autentikasi. Setelah disiapkan, tools ini dapat digunakan dalam alur agen Anda melalui blok Tool, yang memungkinkan Anda mengirim dan menerima data dari tool dan memasukkan hasilnya ke node LLM atau blok logika lainnya.

Ini membuat agen Anda tidak hanya lebih cerdas, tetapi juga berorientasi pada tindakan, mampu memberikan jawaban terkini dan relevan dengan konteks melalui interaksi dengan layanan dunia nyata.
Dalam contoh kita, kita menggunakan blok kode untuk membuat permintaan ke API cuaca. Alternatifnya adalah membuat tool dan menyediakannya kepada LLM.
Kesimpulan
Dalam tutorial ini, kita telah menjelajahi beberapa blok dasar yang Anda perlukan untuk mulai bekerja dengan Dify. Namun, Dify menawarkan banyak fitur dan kapabilitas lain untuk dijelajahi.
Untuk memantapkan pemahaman Anda, latihan yang bagus adalah meningkatkan agen perjalanan yang telah kita buat. Pertimbangkan untuk menambahkan fitur seperti kemampuan pencarian internet untuk menemukan aktivitas lokal secara online, yang dapat memperkaya fungsionalitas agen dan memberikan saran yang lebih dinamis.
Jika Anda tertarik dengan pembuat agen AI seperti Dify, saya sarankan melihat tutorial kami yang lain untuk pembelajaran lanjutan:

