- Çoğu şirket içeride değerli veriler barındırır
- Müşterilerin ürünle nasıl etkileşime girdiğine dair analiz verileri
- Ürün içinde gerçekleşen işlemlerin denetim günlükleri (özelliklerin ne zaman etkinleştirildiği anlaşılabilir)
- Küçük bir startup bile faydalı verilere sahiptir
- Destek talepleri üzerinden üründe en çok dikkat gerektiren alanlar görülebilir ve buna özellik istekleri de dahildir
- LLM'lerden (büyük dil modelleri) önce, veriden içgörü çıkarmak zordu
- Kendi modelinizi eğitmeniz gerekiyordu; bu da özellik mühendisliği ve NLP, model seçimi ve en zoru olan eğitim verisini toplamayı içeriyordu
- Artık bunu basit bir prompt ile yapmak mümkün
- Örnek prompt: "Aşağıdaki talepleri şu kategorilere ayırın: Uptime, Security, Bug, Feature Request, Other"
- Sonuçta basit bir sınıflandırıcı elde edilir ve küçük düzenlemelerle bile yeterli performans sağlar
- Streamlit kullanarak, herkesin LLM'leri veri kümelerine uygulayıp deney yapabileceği şirket içi araçlar kolayca geliştirilebilir
Neler yapılacak
- Kullanıcılar şu işlemleri yapabilecek
- Giriş yapma
- Prompt yazma: talep sınıflandırma sistemi için
- Prompt'u bazı örnek veriler üzerinde test edip çıktıyı (hatalar dahil) görme
- Başkalarının da kullanabilmesi için prompt'u kaydetme
Streamlit'e kısa bir giriş
- Streamlit, veri uygulamalarını hızlıca geliştirmek için mükemmel bir araçtır
- Streamlit ile uygulamalar basit kodlarla yazılabilir
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)
- Kodun çalıştırılma sonucu: Streamlit otomatik olarak etkileşimli bir frontend oluşturur
- Kullanıcı
text_area içindeki prompt metnini güncellediğinde, Python kodunun geri kalanı otomatik olarak yeniden çalıştırılır
Streamlit'in güçlü yanları
- Streamlit, dashboard benzeri etkileşimli araçlar oluşturmak için son derece güçlüdür
- Çeşitli bileşenler kullanılabilir: Pandas veri çerçevelerini tablo olarak render edebilir veya butonlarla eylemleri tetikleyebilirsiniz
- Harici veri yükleme, gizli bilgi yönetimi ve veri önbellekleme yardımcıları ile gelir; bu da veriyle etkileşimi çok daha güçlü hale getirir
Adım 1: Veriyi yükleme ve görselleştirme
- Streamlit kullanarak sabit kodlanmış veriler yüklenir ve tablo olarak render edilir
.streamlit/secrets.toml dosyası üzerinden Streamlit'e PostgreSQL veritabanına nasıl bağlanacağı öğretilir
psycopg2-binary kurulur ve load_data_sample() fonksiyonu PostgreSQL'den veri yükleyecek şekilde güncellenir
- Streamlit, Snowflake ve Google Sheets gibi çeşitli veri kaynaklarına bağlanabilir
- Önbellekleme için
st.cache_resource genelde bağlantılar için, st.cache_data ise maliyetli sorgu sonuçları için kullanılır
Adım 2: Prompt ile veriyi çalıştırma
- Kullanıcıdan bir prompt alınır ve yüklenen verilere uygulanır
- Prompt,
{"urgent": false, "categories": ["CategoryA", "CategoryB"]} biçiminde geçerli JSON üretmelidir
- Veri çerçevesi dönüştürülerek
urgent, categories ve error (hata oluştuğunda) sütunları eklenir
- Zaman ve maliyetten tasarruf etmek için OpenAI çağrıları önbelleğe alınır
- Prompt'u veri üzerinde yeniden çalıştırmak için bir buton eklenir
Adım 3: Kimlik doğrulama ekleme
- PropelAuth kullanılarak Streamlit'e kimlik doğrulama eklenir
propelauth.py dosyası oluşturulur ve auth nesnesi dışa aktarılır
- Betiğin en üstünde kullanıcı yüklenir veya betiğin çalışması durdurulur
- Veri sorgularında kullanıcı kimliği kullanılarak yalnızca erişim yetkisi olan veriler gösterilebilir
Adım 4: Prompt kaydetme
- Kullanıcının prompt'u kaydedebilmesi için bir buton eklenir
- Veritabanı bağlantısı yüklenir ve prompt
prompts tablosuna eklenir
- Prompt kaydetmek için kullanıcı kimliği ve prompt parametre olarak iletilir
1 yorum
Ben de 2020 yılında Streamlit - Python kodunu kolayca özel ML araçlarına dönüştürmek diye kısaca tanıtmıştım; 2022'de ise Snowflake, Streamlit'i 800 milyon dolara satın aldı.
Kısa süre önce Streamlit kullanarak yazdığınız bir araç da Show GN'de bir kez paylaşılmıştı.
MP3 Tag Editor (Python Streamlit +FastAPI) on Docker