- Sebagian besar perusahaan memiliki data berharga di dalam organisasi
- Data analitik tentang bagaimana pelanggan berinteraksi dengan produk
- Log audit atas aktivitas yang terjadi di dalam produk (dapat mengetahui kapan suatu fitur diaktifkan)
- Bahkan startup kecil pun memiliki data yang berguna
- Melalui tiket dukungan, kita bisa melihat bagian produk yang paling membutuhkan perhatian, sekaligus permintaan fitur yang diajukan
- Sebelum era LLM (large language model), mengekstrak insight dari data adalah hal yang sulit
- Kita harus melatih model sendiri, yang mencakup feature engineering dan NLP, pemilihan model, serta yang paling sulit, pengumpulan data pelatihan
- Sekarang hal ini bisa dilakukan dengan prompt sederhana
- Contoh prompt: "Klasifikasikan tiket berikut ke dalam kategori berikut: Uptime, Security, Bug, Feature Request, Other"
- Hasilnya, sebuah classifier sederhana dapat dibuat, dan dengan sedikit penyesuaian saja sudah bisa memberikan performa yang memadai
- Dengan Streamlit, kita bisa dengan mudah membangun alat internal yang memungkinkan siapa pun bereksperimen menerapkan LLM ke dataset
Yang akan dibuat
- Pengguna dapat melakukan hal-hal berikut
- Login
- Menulis prompt: untuk sistem klasifikasi tiket
- Menguji prompt pada beberapa data sampel dan memeriksa outputnya (termasuk error)
- Menyimpan prompt agar dapat digunakan oleh orang lain
Pengenalan singkat Streamlit
- Streamlit adalah alat yang sangat baik untuk membangun aplikasi data dengan cepat
- Di Streamlit, aplikasi dapat ditulis dengan kode yang sederhana
import streamlit as st
prompt = st.text_area(
"Prompt to test (use {text} to indicate where the text should be inserted):",
"This is an example prompt:\\n\\n{text}",
)
prompt_with_data = f"{prompt}".format(
text="`Example data to be placed into prompt`"
)
st.write(prompt_with_data)
- Hasil eksekusi kode: Streamlit secara otomatis membuat frontend interaktif
- Saat pengguna memperbarui teks prompt di
text_area, sisa kode Python akan otomatis dijalankan ulang
Fitur kuat Streamlit
- Streamlit adalah alat yang sangat kuat untuk membuat alat interaktif seperti dashboard
- Bisa menggunakan berbagai komponen: merender dataframe Pandas sebagai tabel atau memicu aksi melalui tombol
- Juga menyediakan utilitas untuk memuat data eksternal, mengelola secret, dan caching data, sehingga interaksi dengan data menjadi jauh lebih kuat
Langkah 1: Memuat dan memvisualisasikan data
- Menggunakan Streamlit untuk memuat data yang di-hardcode dan merendernya sebagai tabel
- Melalui file
.streamlit/secrets.toml, memberi tahu Streamlit cara terhubung ke database PostgreSQL
- Memasang
psycopg2-binary dan memperbarui fungsi load_data_sample() untuk memuat data dari PostgreSQL
- Streamlit dapat terhubung ke berbagai sumber data seperti Snowflake dan Google Sheets
- Untuk caching,
st.cache_resource umumnya digunakan untuk koneksi, dan st.cache_data untuk hasil query yang mahal
Langkah 2: Menjalankan data menggunakan prompt
- Menerima prompt dari pengguna lalu menerapkannya ke data yang sudah dimuat
- Prompt harus menghasilkan JSON valid dalam format
{"urgent": false, "categories": ["CategoryA", "CategoryB"]}
- Mentransformasi dataframe untuk menambahkan kolom
urgent, categories, dan error (jika terjadi error)
- Melakukan cache pada pemanggilan OpenAI untuk menghemat waktu dan biaya
- Menambahkan tombol untuk menjalankan ulang prompt terhadap data
Langkah 3: Menambahkan autentikasi
- Menambahkan autentikasi ke Streamlit menggunakan PropelAuth
- Membuat file
propelauth.py dan mengekspor objek auth
- Memuat pengguna di bagian atas skrip atau menghentikan eksekusi skrip
- Menggunakan ID pengguna dalam query data sehingga hanya data yang memiliki izin akses yang dapat dilihat
Langkah 4: Menyimpan prompt
- Menambahkan tombol agar pengguna dapat menyimpan prompt
- Memuat koneksi database dan menyisipkan prompt ke tabel
prompts
- Menyimpan prompt dengan meneruskan ID pengguna dan prompt sebagai parameter
1 komentar
Saya pernah memperkenalkannya secara singkat pada 2020 lewat Streamlit - Mudah membuat alat ML kustom dari kode Python, lalu pada 2022 Snowflake mengakuisisi Streamlit seharga $800M.
Belum lama ini, alat yang dibuat menggunakan Streamlit juga sempat muncul di Show GN.
MP3 Tag Editor (Python Streamlit +FastAPI) on Docker