Skip to content
··3 menit baca

Mengembangkan Chatbot Saya: Sprint Satu Minggu Menuju Interaksi yang Lebih Cerdas

Saya membangun ulang chatbot saya dalam satu minggu, mengupgrade dari ringkasan postingan dasar ke pencarian teks penuh dengan chunking, keamanan, dan metadata — begini yang saya pelajari tentang menyeimbangkan kekuatan AI dengan biaya.

Update (2026): Chatbot ini berevolusi menjadi Sydney! Setelah banyak iterasi, Sydney sekarang tinggal di /ask/ dan fokus pada konten blog dan produk.


Ketika saya pertama kali meluncurkan versi 0.1 dari chatbot DIY saya minggu lalu, tujuan saya adalah membuat agen percakapan yang bisa mensintesis informasi dari postingan blog saya untuk menjawab pertanyaan. Meskipun v0.1 merupakan langkah besar pertama sebagai pemula coding, ia punya keterbatasan signifikan. Basis pengetahuan hanya mencakup ringkasan postingan saya, dan chatbot kesulitan mengambil detail spesifik seperti angka atau tanggal dengan akurat. Motivasi saya adalah meningkatkan kemampuan chatbot secara bertahap melalui pembelajaran hands-on. Postingan ini memberikan update setelah satu minggu optimasi. Fokus saya adalah memperluas basis pengetahuan untuk mencakup konten artikel penuh, memperkuat langkah-langkah keamanan, dan mengoptimasi model AI untuk efektivitas biaya. Meskipun chatbot masih punya jalan panjang, upgrade awal ini mewakili kemajuan yang menjanjikan.

Berikut apa yang sudah dilakukan sejak versi terakhir:

1. Fungsionalitas

Chatbot mencakup semua postingan terbaru hingga akhir Oktober 2023

Saya mempublikasikan enam postingan blog di bulan Oktober, semuanya sekarang termasuk dalam basis pengetahuan chatbot. Misalnya, kamu bisa bertanya seperti: "Ceritakan insight kunci tentang Coursera yang ditulis Chandler" dan chatbot bisa memberikan jawaban berdasarkan artikel yang saya tulis di Oktober 2023.

Basis pengetahuan mencakup postingan blog penuh vs hanya ringkasan

Untuk versi pertama, karena kurangnya pengetahuan/pengalaman saya bekerja dengan batasan panjang context window dari OpenAI API, saya harus membuat ringkasan setiap postingan blog lalu meng-embed-nya menggunakan endpoint embedding API OpenAI. Saya tidak tahu cara memotong artikel penuh menjadi bagian-bagian lebih kecil dan meng-embed setiap bagian sambil menjaga konteks tetap utuh (yaitu metadata, URL, judul, dll...).

Iterasi pertama chunking sudah selesai minggu ini. Basis pengetahuan chatbot sekarang memiliki postingan blog penuh vs hanya ringkasan. Masih ada ruang untuk perbaikan seiring saya terus menyempurnakan batas dan pendekatan chunking ideal untuk artikel panjang. Saat ini, saya memecah artikel panjang menjadi bagian-bagian lebih kecil dengan tidak lebih dari 800 token dan menggunakan "paragraf" sebagai titik potong alami.

Dengan cara ini di versi berikutnya, chatbot bisa menjawab pertanyaan tentang angka spesifik yang ditulis dengan lebih mudah.

Tanggal publikasi, judul, dan URL postingan blog sudah disertakan

Setelah pengguna memasukkan pertanyaan, selama proses retrieval, judul postingan blog, tanggal publikasi, dan URL diberikan ke chatbot juga. Jadi chatbot sekarang bisa memberikan URL spesifik atau tanggal publikasi kembali ke pengguna jika diminta.

Ini akan membantu validasi kalau pengguna ingin double-check atau membaca seluruh postingan blog.

2. Keamanan

Langkah-langkah keamanan super dasar sudah diimplementasikan seperti:

  • Memvalidasi input sebelum dikirim ke API
  • Fungsi rate limiter dasar yaitu berapa banyak pertanyaan yang bisa kamu tanyakan per menit ke chatbot
  • Query dan respons chatbot divalidasi dengan moderation API OpenAI

3. GPT-4 vs GPT-3.5

Saya akan terus menggunakan model GPT-3.5 untuk chatbot karena biaya. Jawaban GPT-4 jauh lebih baik dari GPT-3.5. Namun, karena saya belum menemukan cara terbaik untuk bekerja dengan panjang context window sambil mempertahankan riwayat percakapan, untuk pertanyaan kompleks yang chatbot perlu melihat beberapa postingan, biaya per jawaban tinggi seperti $0.15 atau 0.2 per jawaban dari GPT-4. Saya belum mampu itu untuk proyek sampingan ini. T.T

Itu saja untuk sekarang. Kalau kamu ingin mencoba chatbot, ini dia lagi. Ini adalah link ke postingan saya sebelumnya tentang chatbot. Selamat akhir pekan.

Kalau kamu pernah membangun chatbot sendiri atau bekerja dengan embeddings dan chunking, saya penasaran — ukuran chunk dan pendekatan apa yang paling berhasil untukmu? Saya masih bereksperimen :)

Selanjutnya dalam perjalanan chatbot: Beberapa bulan kemudian, saya membangun ulang seluruh chatbot dari nol menggunakan LangChain dan FAISS — How I Emerged From Coding Quicksand With an AI Agent.

Salam,

Chandler

P.S.: Kursus baru tentang Generative AI for Everyone, diajar oleh Andrew Ng, tidak mengecewakan. Ini adalah kursus Gratis, yang akan memberi pengetahuan umum tentang Generative AI, bagaimana software atau aplikasi web Gen AI pada umumnya dibangun, dll... Cukup singkat juga jadi kamu bisa menonton semua videonya dalam satu akhir pekan.

Lanjutkan Membaca

Perjalanan Saya
Terhubung
Bahasa
Preferensi