Blog
PKU Protein Puzzle: Ein containerisierter Streamlit-Ansatz

Ich hoffe, der Titel hat Ihr Interesse geweckt, aber vielleicht sind Sie immer noch verwirrt, worum es in diesem Blog genau geht. Lassen Sie mich das erklären. PKU (Phenylketonurie) ist eine seltene Stoffwechselstörung, die eine sorgfältige Ernährungsplanung erfordert. Die Betroffenen müssen eine strenge, eiweißarme Diät einhalten, um schwere gesundheitliche Probleme zu vermeiden. Um das Bewusstsein für PKU zu schärfen und Geld für die Bekämpfung von Stoffwechselstörungen zu sammeln, habe ich mit Streamlit eine containerisierte Web-App erstellt: das PKU Protein Puzzle.
Um das Rätsel zu spielen, folgen Sie diesem Link. Um mehr über die technischen Details zu erfahren, lesen Sie bitte weiter. Die App enthält die folgenden Komponenten:
- Benutzeroberfläche: Streamlit stellt die Webschnittstelle für die Benutzerinteraktion bereit.
- Kernfunktionalität: Python-Logik zur Verarbeitung der Benutzereingaben.
- KI-Integration:
- Azure OpenAI, um KI-generiertes Feedback zum Menü zu geben.
- Benutzerdefinierte Eingabeaufforderungen, um die KI bei der Erstellung nützlicher Vorschläge zu unterstützen.
- Protokollierung und Überwachung: Application Insights und Opentelemetry zur Protokollierung wichtiger Metriken und Überwachung der App-Nutzung.
- Backend und Infrastruktur:
- Docker zur Containerisierung der Anwendung für eine konsistente Bereitstellung in verschiedenen Umgebungen.
- Azure Container Registry zum Speichern von Docker-Images für einfachen Zugriff während der Bereitstellung.
- Azure Container Apps zum Hosten und Skalieren der Anwendung in einer Cloud-Umgebung.
- Automatisierung und Bereitstellung: Makefile zur Automatisierung von Build-, Tag-, Push- und Deployment-Prozessen.
Wir werden diese Themen in den nächsten Abschnitten näher beleuchten.
Benutzeroberfläche
Die PKU Protein Puzzle App nutzt Streamlit, um auf einfache Weise eine interaktive und benutzerfreundliche Weboberfläche zu erstellen. Mit Streamlit ist es sehr einfach, benutzerdefinierte Webanwendungen zu erstellen und einzusetzen. Es gibt viele Bausteine, die Sie verwenden können, so dass es sich hervorragend für das Prototyping oder einfache Anwendungen eignet.
Kernfunktionalität
Die App bietet eine Liste von Lebensmitteln mit ihrem Proteingehalt. Der Benutzer kann diese Lebensmittel auswählen und die Mengen für jede Mahlzeit (Frühstück, Mittag- und Abendessen) angeben. Anhand einer bearbeitbaren Tabelle kann der Benutzer mit verschiedenen Lebensmittelkombinationen experimentieren, um die Ernährungsanforderungen für PKU zu erfüllen.
Um sicherzustellen, dass der tägliche Speiseplan die PKU-Ernährungsrichtlinien einhält, berechnet die App die Gesamtproteinmenge und das Gewicht der Lebensmittel auf der Grundlage der Benutzereingaben. Die Berechnungen werden direkt angezeigt, um sofortiges Feedback zu geben. Dies hilft dem Benutzer, die notwendigen Anpassungen vorzunehmen, um die genaue Proteinzufuhr zu erreichen, die für eine PKU-freundliche Ernährung erforderlich ist.
KI-Integration
Die App ist mit Azure OpenAI integriert, um KI-generiertes Feedback zum Menü zu geben. Durch die Analyse der ausgewählten Lebensmittel und ihres Nährstoffgehalts schlägt die KI Anpassungen vor, um die genauen Ernährungsanforderungen einer PKU-Diät zu erfüllen. Diese Funktion bringt ein wenig Spaß in die App. Da es sich nur um eine textuelle Rückmeldung handelt, macht es nichts, dass die KI nicht 100%ig genau ist (was Sie vielleicht bemerken).
Protokollierung und Überwachung
Um sicherzustellen, dass die App reibungslos läuft und um die Nutzung zu verfolgen, enthält die App Azure Monitor für die Protokollierung und Gesundheitskontrolle. Azure Monitor erfasst wichtige Metriken wie Sitzungs-IDs, Gesamtprotein und Nahrungsgewicht und ob KI-Feedback angefordert wurde. Diese Echtzeit-Überwachung ermöglicht eine schnelle Identifizierung und Behebung von Problemen und gewährleistet ein zuverlässiges Benutzererlebnis.
Unten sehen Sie eine Beispielabfrage, mit der ich einige Einblicke in die Anzahl der Personen erhalte, die das Spiel gespielt haben, und wie hoch z.B. die durchschnittliche Proteinmenge war.
Backend und Infrastruktur
Die App wird mithilfe von Docker containerisiert, was eine konsistente Bereitstellung in verschiedenen Umgebungen gewährleistet. Docker vereinfacht den Prozess der Erstellung, des Versands und der Ausführung von Anwendungen, indem es die App und ihre Abhängigkeiten in einen Container packt. Dieser Ansatz beseitigt das Problem "das funktioniert auf meinem Rechner" und bietet eine konsistente Laufzeitumgebung. Sie können die Anwendung auf Ihrem eigenen Laptop testen und sie dann auf Azure bereitstellen, wenn Sie bereit sind.
Die Docker-Images werden in Azure Container Registry gespeichert und die App wird als Azure Container App bereitgestellt. Azure Container Apps bieten ein serverloses Container-Erlebnis, so dass die App je nach Bedarf skaliert werden kann und Sie nur bezahlen, wenn die App genutzt wird.
Automatisierung und Bereitstellung
Ein Makefile wird verwendet, um den Build-, Tag-, Push- und Deployment-Prozess zu automatisieren. Diese Automatisierung sorgt dafür, dass es einfach ist, die App auf dem neuesten Stand zu halten und minimiert das Risiko manueller Fehler.
Dadurch ist es einfach, den Container lokal auf Ihrem eigenen Laptop auszuführen und zu testen und ihn automatisch zu verteilen, wenn Sie mit den Änderungen zufrieden sind.
Einpacken
Ich habe diese App als Spaßprojekt für einen ernsten Zweck entwickelt. Wenn sie Ihnen gefällt, können Sie hier spenden.
Den Code und die Anweisungen zur Einrichtung finden Sie hier im GitHub-Repository.
Verfasst von

Roel
Unsere Ideen
Weitere Blogs
Contact