- Die meisten Unternehmen verfügen intern über wertvolle Daten
- Analysedaten darüber, wie Kunden mit dem Produkt interagieren
- Audit-Logs der im Produkt ausgeführten Aktionen (damit lässt sich nachvollziehen, wann Funktionen aktiviert wurden)
- Selbst kleine Startups verfügen über nützliche Daten
- Anhand von Support-Tickets lässt sich erkennen, welche Teile des Produkts die meiste Aufmerksamkeit benötigen; außerdem enthalten sie Feature-Anfragen
- Vor LLMs (Large Language Models) war es schwierig, aus Daten Erkenntnisse zu gewinnen
- Man musste ein eigenes Modell trainieren, einschließlich Feature Engineering und NLP, Modellauswahl und der am schwierigsten zu beschaffenden Trainingsdaten
- Jetzt lässt sich das mit einfachen Prompts erledigen
- Beispiel-Prompt: "Klassifizieren Sie das folgende Ticket in die folgenden Kategorien: Uptime, Security, Bug, Feature Request, Other"
- Das Ergebnis ist effektiv ein einfacher Klassifikator, der schon mit kleinen Anpassungen brauchbare Leistung liefert
- Mit Streamlit lässt sich leicht ein internes Tool bauen, mit dem jeder experimentieren kann, indem er LLMs auf Datensätze anwendet
Was wir bauen werden
- Nutzer können Folgendes tun
- sich anmelden
- einen Prompt schreiben: für ein Ticket-Klassifikationssystem
- den Prompt an einigen Beispieldaten testen und die Ausgabe einschließlich Fehlern prüfen
- den Prompt speichern, damit andere ihn verwenden können
Kurze Einführung in Streamlit
- Streamlit ist ein großartiges Tool, um schnell Datenanwendungen zu bauen
- In Streamlit kann man Anwendungen mit einfachem Code schreiben
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)
- Ergebnis der Codeausführung: Streamlit erzeugt automatisch ein interaktives Frontend
- Wenn der Nutzer den Prompt-Text in
text_area aktualisiert, wird der restliche Python-Code automatisch erneut ausgeführt
Leistungsstarke Funktionen von Streamlit
- Streamlit ist ein sehr leistungsfähiges Tool zum Erstellen interaktiver Werkzeuge wie Dashboards
- Verschiedene Komponenten sind verfügbar: Pandas-DataFrames lassen sich als Tabellen rendern oder per Button Aktionen auslösen
- Utilities zum Laden externer Daten, zum Verwalten von Secrets und zum Caching von Daten sind enthalten, wodurch die Interaktion mit Daten deutlich leistungsfähiger wird
Schritt 1: Daten laden und visualisieren
- Mit Streamlit werden hart codierte Daten geladen und als Tabelle gerendert
- Über die Datei
.streamlit/secrets.toml wird Streamlit mitgeteilt, wie eine Verbindung zu einer PostgreSQL-Datenbank hergestellt wird
psycopg2-binary wird installiert und die Funktion load_data_sample() aktualisiert, damit Daten aus PostgreSQL geladen werden
- Streamlit kann sich mit verschiedenen Datenquellen verbinden, etwa Snowflake und Google Sheets
- Für das Caching wird
st.cache_resource typischerweise für Verbindungen und st.cache_data für teure Abfrageergebnisse verwendet
Schritt 2: Daten mit einem Prompt ausführen
- Ein Prompt wird vom Nutzer entgegengenommen und auf die geladenen Daten angewendet
- Der Prompt muss gültiges JSON im Format
{"urgent": false, "categories": ["CategoryA", "CategoryB"]} ausgeben
- Der DataFrame wird transformiert und um die Spalten
urgent, categories und error (bei Fehlern) erweitert
- OpenAI-Aufrufe werden gecacht, um Zeit und Kosten zu sparen
- Es wird ein Button hinzugefügt, um den Prompt erneut auf die Daten auszuführen
Schritt 3: Authentifizierung hinzufügen
- Mit PropelAuth wird Streamlit um Authentifizierung erweitert
- Es wird eine Datei
propelauth.py erstellt, die ein auth-Objekt exportiert
- Oben im Skript wird der Nutzer geladen oder die Skriptausführung gestoppt
- In der Datenabfrage kann die Nutzer-ID verwendet werden, damit nur Daten sichtbar sind, auf die Zugriff besteht
Schritt 4: Prompt speichern
- Es wird ein Button hinzugefügt, mit dem Nutzer ihren Prompt speichern können
- Die Datenbankverbindung wird geladen und der Prompt in die Tabelle
prompts eingefügt
- Der Prompt wird gespeichert, indem Nutzer-ID und Prompt als Parameter übergeben werden
1 Kommentare
Ich hatte es 2020 kurz unter Streamlit - Python-Code einfach in Custom-ML-Tools verwandeln vorgestellt, und 2022 hat Snowflake Streamlit für 800 Mio. US-Dollar übernommen.
Vor Kurzem wurde auch ein mit Streamlit erstelltes Tool einmal bei Show GN vorgestellt.
MP3 Tag Editor (Python Streamlit +FastAPI) on Docker