Lewati ke konten utama

Flowise AI: Panduan dengan Proyek Demo

Pelajari cara membangun agen AI yang menjawab pertanyaan berdasarkan dataset CSV menggunakan Flowise, alat berbasis alur kerja low-code.
· 12 mnt Baca

Jelajahi bersama AI

Dalam artikel ini, saya akan menjelaskan langkah demi langkah cara menggunakan Flowise untuk membangun agen AI yang dapat menjawab pertanyaan berdasarkan dataset CSV.

Flowise adalah alat yang praktis bagi siapa pun yang ingin membangun agen AI tanpa terjebak dalam pengkodean yang rumit. Flowise menggunakan pendekatan low-code dan memungkinkan kita lebih fokus pada tugas yang dikerjakan, bukan pada detail teknisnya.

Belakangan ini, saya melihat lonjakan alat yang dirancang untuk membangun agen AI. Alat-alat ini menjadi lebih mudah diakses dan ramah pengguna, sehingga siapa pun dapat membuat sistem cerdas tanpa perlu keterampilan teknis yang luas. Jika Anda tertarik mengeksplorasi lebih lanjut, lihat juga tutorial berikut:

Apa Itu Flowise?

Flowise adalah alat yang dirancang untuk membantu kita membuat agen AI melalui antarmuka drag-and-drop yang sederhana. Flowise bekerja dengan memungkinkan kita menghubungkan berbagai blok, yang mewakili beragam fungsi, untuk membangun alur kerja yang disesuaikan. Setiap blok dapat dikonfigurasi untuk menjalankan tindakan tertentu.

Sebagai contoh, ada blok yang dikenal sebagai blok LLM yang digunakan untuk mengirim pesan ke model bahasa besar. Ada juga blok fungsi yang memberi kita kemampuan untuk mengeksekusi fungsi JavaScript kustom, sehingga memungkinkan operasi yang lebih terarah.

Dengan menautkan blok-blok ini, informasi mengalir dari satu blok ke blok berikutnya, memproses dan mentransformasi data selangkah demi selangkah. Pendekatan modular ini memudahkan pembuatan agen AI tanpa pengetahuan pemrograman yang mendalam, karena kita dapat fokus merancang alur kerja dan mengonfigurasi tindakan yang diperlukan.

Membangun Agen AI Analis Data dengan Flowise

Mari kita uraikan proses membangun agen AI analis data menggunakan Flowise. Panduan ini mencakup pendaftaran Flowise, membangun alur kerja kustom, dan memanfaatkan berbagai blok untuk membuat agen interaktif yang dapat menganalisis dataset.

Langkah 1: Buat akun di Flowise

Mulailah dengan mengunjungi halaman pendaftaran Flowise dan membuat akun. Isi detail yang diperlukan dan ikuti instruksi yang dikirim ke email Anda untuk memverifikasi dan mengaktifkan akun.

Langkah 2: Penyiapan basis data

Kini akun Flowise kita sudah siap, saatnya menyiapkan basis data yang akan digunakan. Kita memerlukan basis data untuk menyimpan data yang ingin dianalisis.

Kita akan menggunakan SingleStore, penyedia basis data SQL yang populer dan ramah pengguna, untuk mengelola data kita. Ikuti langkah-langkah berikut:

  1. Mulailah dengan menuju ke situs SingleStore.
  2. Daftarkan akun baru di SingleStore. 
  3. Setelah akun SingleStore aktif, langkah berikutnya adalah mengunggah dataset yang akan kita gunakan. Untuk contoh ini, kita menggunakan dataset tentang kebiasaan media sosial siswa, yang dapat ditemukan di Kaggle. Pastikan Anda mengunduh file dataset dari Kaggle dan mengunggahnya ke SingleStore.

Memuat file ke SingleStore

  1. Setelah dataset diunggah, SingleStore akan secara otomatis membuat tabel basis data darinya. Tabel ini akan menjadi dasar analisis data kita, sehingga informasinya siap untuk diakses agen AI Flowise.

Langkah 3: Masuk ke bagian chatflows

Setelah masuk, buka dasbor dan temukan bagian "Chatflows". Klik "Add New" untuk mulai membuat alur kerja baru.

Membuat chatflow baru di Flowise

Langkah 4: Buat fungsi kustom untuk memuat informasi tabel

Langkah ini melibatkan penulisan fungsi kustom untuk mengambil informasi tentang tabel, seperti deskripsi dan nama kolomnya. Data ini penting agar agen AI kita memahami struktur dataset yang akan diquery.

  1. Buat blok fungsi kustom.

Menambahkan blok fungsi kustom

  1. Tempelkan kode berikut ke editor blok fungsi:
const mysql = require('mysql2/promise');

const tableName = $tableName;
const tableDescription = $tableDescription;
const connectionUrl = "<PASTE_YOUR_CONNECTION_STRING_HERE>" 

async function main() {
  try {
    const pool = mysql.createPool(connectionUrl);
    const q = 
    DESCRIBE ${tableName};
    ;
    const [rows] = await pool.query(q);
    const fields = rows.map((row) => ${row.Field} of type ${row.Type}).join("\n");
    const tableInformation = Table name: ${tableName}\nTable description:\n${tableDescription.trim()}\nColumns:\n${fields.trim()};
    return tableInformation;
  } catch(error) {
    return String(error);
  }  
}

return main();

Di bagian atas fungsi, kita perlu menetapkan nilai connectionUrl. Ini dapat ditemukan di SingleStore, pada tab Deployments.

Mendapatkan informasi koneksi basis data

String koneksi terlihat seperti ini:

françois-19ecc:<françois-19ecc Password>@svc-3482219c-a389-4079-b18b-d50662524e8a-shared-dml.aws-virginia-6.svc.SingleStore.com:3333/db_franois_88ec0

Bagian pertama, françois-19ecc dalam kasus saya, adalah nama pengguna. Setelah itu, ada placeholder untuk kata sandi, <françois-19ecc Password>, yang perlu kita ganti.

Fungsi ini terhubung ke basis data SingleStore dan mengambil informasi kolom untuk tabel. Fungsi ini memiliki dua masukan:

  • tableName: Nama tabel
  • tableDescription: Deskripsi tabel.

Keduanya harus dikonfigurasi dengan mengklik tombol “Input Variables” pada node kode kustom. Variabel dapat diakses di dalam kode dengan menambahkan prefiks $ pada namanya.

Mengakses variabel.

Dalam kasus saya, tabel diberi nama dataset saat dibuat di SingleStore. Anda harus menggunakan nama apa pun yang ditetapkan saat Anda mengunggah file CSV.

Memeriksa nama tabel di SingleStore.

Langkah 5: Buat node templat prompt

Node ini adalah tempat kita menyusun pertanyaan yang memandu agen AI. Hubungkan node ini ke fungsi kustom Anda.

  1. Buat node templat prompt.

Membuat node templat prompt di Flowise

  1. Masukkan prompt berikut:
Based on the SQL table information and the user's questions, return a SQL query that answers that question.
TABLE INFORMATION: {tableInformation}
QUESTION: {question}

Menghubungkan fungsi kustom ke templat prompt di Flowise

Prompt memiliki dua placeholder: {tableInformation} dan {question}. question adalah prompt yang dikirim pengguna, sedangkan tableInformation adalah keluaran dari fungsi yang kita definisikan pada langkah sebelumnya.

Nilai placeholder ini harus dikonfigurasi dengan mengklik tombol “Format Prompt Values” pada node templat prompt.

Mengonfigurasi variabel prompt di Flowise

Langkah 6: Tautkan ke blok LLM chain

Sekarang, kita menghubungkan node templat prompt ke blok LLM chain, yang akan menafsirkan prompt dan menghasilkan query SQL darinya. Berikut langkah-langkah yang perlu diikuti:

  1. Tambahkan blok LLM chain.
  2. Sertakan blok model yang dikonfigurasi untuk menggunakan OpenAI, dan hubungkan ke blok LLM chain pada input “Language Model”.
  3. Untuk mengonfigurasi model OpenAI, Anda perlu menyiapkan kunci API OpenAI. Jika belum punya, Anda dapat membuatnya di sini.
  4. Hubungkan blok templat prompt ke input “Prompt”.

Mengonfigurasi node LLM Chain di Flowise

Langkah 7: Gunakan blok set variable

Untuk menyimpan query SQL yang dihasilkan agar dapat digunakan lebih lanjut, buat blok set variable dan tautkan ke keluaran dari blok LLM chain.

Menyimpan nilai menggunakan blok set variable di Flowise

Langkah 8: Eksekusi query SQL

Kirim query SQL ke blok kode kustom baru untuk mengeksekusinya pada basis data.

  1. Buat blok kode kustom lainnya.
  2. Masukkan kode berikut:
const mysql = require('mysql2/promise');

const connectionUrl = "<PASTE_THE_SAME_URL_USED_BEFORE>";

function formatQuery() {
  // This function is used to clean the query provided by ChatGPT 
  // by removing markdown quotes
  const q = $query;
  let lines = q.trim().split(/\r\n|\r|\n/);
  if(lines[0].startsWith("")) {
    lines = lines.slice(1, lines.length - 1);
  }
  return lines.join("\n").trim()
}

const q = formatQuery();
try {
  const pool = mysql.createPool(connectionUrl);
  const [rows] = await pool.query(q);
  return rows;
} catch(error) {
  return Query: ${q}\nError:${String(error)}`
}

Ingat untuk menetapkan nilai connectionUrl. Ini sama seperti yang kita gunakan sebelumnya.

Fungsi ini memiliki satu masukan, yaitu query yang ingin kita eksekusi, dan diakses dalam kode menggunakan $query.  

Mengakses variabel di node fungsi kustom

Langkah 9: Buat templat prompt lain

Templat ini digunakan untuk memformat jawaban yang akan disajikan agen AI kepada pengguna berdasarkan hasil query.

  1. Buat templat prompt baru.
  2. Gunakan prompt berikut:
Based on the question and the query result, provide an answer to the user's question. Always show the query to the user.
QUERY: {query}
QUERY RESULT: {queryResult}
QUESTION: {question}

Prompt ini memiliki tiga placeholder:

  • query: Query SQL yang dihasilkan oleh LLM, yang diperoleh dengan menghubungkan node variabel.
  • queryResult: Hasil query, yang dihitung oleh node fungsi kustom sebelumnya.
  • question: Prompt awal dari pengguna.

Koneksi ke templat prompt kedua untuk menghasilkan query SQL di Flowise

Langkah 10: Blok LLM chain terakhir

Terakhir, hubungkan templat prompt ini ke blok LLM chain baru, yang akan menggunakan prompt tersebut untuk merumuskan respons. Anda dapat menghubungkannya ke blok model OpenAI yang sama seperti sebelumnya.

Berikut alur akhir agen:

Alur akhir di Flowise

Dengan langkah-langkah ini selesai, agen AI kita siap digunakan. Agen dapat menerima pertanyaan, menghasilkan query SQL untuk mengambil data yang relevan, dan memberikan jawaban yang jelas dan ringkas.

Mengobrol dengan Agen Analis Data

Agen sekarang siap digunakan. Untuk mengobrol dengannya, klik tombol chat berwarna ungu di pojok kanan atas:

Mengobrol dengan agen AI

Mari kita uji dengan menanyakan berapa banyak respons yang diperoleh survei:

Contoh agen AI menggunakan Flowise

Perhatikan bahwa agen menyertakan query dalam balasan karena cara prompt terakhir dirancang. Mari minta beberapa statistik tentang data:

Contoh agen AI menggunakan Flowise

Berikut contoh lainnya:

Contoh agen AI menggunakan Flowise

Pendapat Saya tentang Flowise

Setelah bereksperimen dengan beberapa alat pembuat agen AI, pengalaman saya dengan Flowise terasa agak membuat frustrasi. Masalah berulang yang saya hadapi adalah tanpa sengaja menghapus beberapa konfigurasi variabel, yang membuat agen berperilaku tidak semestinya tanpa penjelasan yang jelas. Hal ini sering membuat proses pemecahan masalah menjadi melelahkan.

Selain itu, Flowise tidak memiliki titik awal yang jelas untuk alur agen, sehingga menantang untuk diikuti dan dipahami bagaimana agen berfungsi. Ini bisa jadi cukup berat bagi mereka yang baru dalam membangun sistem AI. Flowise juga kurang memadai dalam hal melihat hasil antara dengan mudah atau menguji node secara terpisah. Hal ini menyulitkan untuk menemukan masalah atau menyempurnakan alur kerja secara efektif.

Saya juga merasa sulit melihat konfigurasi node sekilas. Misalnya, node kode kustom yang kita gunakan mendefinisikan variabel input, tetapi hal itu tidak terlihat. Kita harus mengklik bagian node tersebut untuk melihatnya. Ini membuat sulit memahami alur hanya dengan melihatnya.

Kesimpulan

Walaupun Flowise menawarkan antarmuka low-code yang menjanjikan untuk membuat agen AI, ada beberapa masalah kegunaan yang membuatnya lebih sulit digunakan dibandingkan alat serupa, terutama bagi mereka yang mencari pengalaman yang lebih mulus dan intuitif. Terlepas dari tantangan ini, konsep Flowise memiliki potensi, dan dengan beberapa perbaikan, Flowise dapat menjadi alat yang hebat untuk membangun solusi AI.

François Aubry

Penulis

François Aubry

Insinyur full-stack & pendiri di CheapGPT. Mengajar selalu menjadi passion saya. Sejak masa awal sebagai mahasiswa, saya aktif mencari peluang untuk membimbing dan membantu mahasiswa lain. Passion ini mendorong saya menempuh studi PhD, di mana saya juga menjadi asisten pengajar untuk mendukung kegiatan akademik saya. Selama tahun-tahun itu, saya menemukan kepuasan besar dalam suasana kelas tradisional, membangun koneksi dan memfasilitasi proses belajar. Namun, dengan hadirnya platform pembelajaran daring, saya melihat potensi transformatif pendidikan digital. Bahkan, saya terlibat aktif dalam pengembangan salah satu platform tersebut di universitas kami. Saya sangat berkomitmen untuk mengintegrasikan prinsip-prinsip pengajaran tradisional dengan metodologi digital yang inovatif. Tujuan saya adalah menciptakan kursus yang tidak hanya menarik dan informatif, tetapi juga mudah diakses oleh para pembelajar di era digital ini.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai