memn commited on
Commit
dace9ad
1 Parent(s): 9494071

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +158 -58
app.py CHANGED
@@ -1,58 +1,158 @@
1
- import gradio as gr
2
- from transformers import pipeline
3
-
4
- # Initialize the model and tokenizer
5
- model_name = "gpt-3.5-turbo" # Using GPT-3.5 for better performance
6
- chatbot = pipeline("text-generation", model=model_name)
7
-
8
- # Knowledge base for the chatbot
9
- knowledge_base = """
10
- Zusammenfassung des Workshops über das weibliche Hormonsystem und Zyklen
11
-
12
- Überblick
13
- Das weibliche Hormonsystem ist äußerst empfindlich und zyklisch. Es unterscheidet sich stark vom männlichen System, welches oft in Studien bevorzugt wird. Hormongesundheit ist ein integraler Bestandteil des allgemeinen Wohlbefindens und sollte speziell bei Frauen beachtet werden.
14
-
15
- Wichtige Hormone
16
- FSH (Follikelstimulierendes Hormon): Stimuliert die Follikel in den Eierstöcken, die sich zu Eizellen entwickeln.
17
- Östrogen: Essenziell für eine gesunde Frau, beeinflusst das Aussehen und Wohlbefinden.
18
- LH (Luteinisierendes Hormon): Wichtig für den Eisprung und die Bildung des Gelbkörpers.
19
- Progesteron: Unterstützt den Körper nach dem Eisprung, wirkt beruhigend und ausgleichend.
20
-
21
- Zyklusphasen
22
- Menstruationsphase (Winter): Ruhephase, ideale Zeit für Reflexion und Zielsetzung. Ernährung: Eisenreiches Gemüse und Obst, vorzugsweise warm.
23
- Follikelphase (Frühling): Planungsphase, ideal für das Ausarbeiten von Projekten. Ernährung: Gemüse, Obst, Makronährstoffe wie Fette, Proteine, Omega-3-Fettsäuren, und Vitamin D.
24
- Ovulationsphase (Sommer): Zeit für soziale Aktivitäten und geringeren Appetit. Ernährung: Regelmäßige, leichte Mahlzeiten.
25
- Lutealphase (Herbst): Abschlussphase, erhöhtes Kalorienbedürfnis (+280 Kalorien/Tag). Ernährung: Essig, ballaststoffreiche Lebensmittel wie Quinoa.
26
-
27
- Weitere wichtige Aspekte
28
- Sekrete: Essenziell für die Unterstützung der Spermien und zum Schutz vor Infektionen.
29
- Ayurveda: Betont die zyklische Natur des weiblichen Körpers und teilt den Zyklus in vier Jahreszeiten ein.
30
- Cortisol: Stresshormon, wichtig für die Stressbewältigung, beeinflusst den Blutzuckerspiegel und die hormonelle Balance.
31
-
32
- Empfehlungen
33
- Energie-Management: Fokussiere dich auf die Verwaltung deiner Energie anstatt deiner Zeit.
34
- Ernährungstipps: Apfelessig im Salat und ballaststoffreiche Nahrungsmittel.
35
- Journaling: Reflektiere über deine Ziele und plane für den nächsten Zyklus.
36
- Diese Zusammenfassung gibt einen Überblick über die Sensibilität und die Komplexität des weiblichen Hormonsystems und betont die Bedeutung von Ernährung und Energie-Management im Einklang mit den natürlichen Zyklen des Körpers.
37
- """
38
-
39
- def generate_response(user_input):
40
- prompt = f"User: {user_input}\nBot:"
41
- response = chatbot(prompt, max_length=500, num_return_sequences=1)
42
- return response[0]['generated_text'].split('Bot:')[-1].strip()
43
-
44
- # Gradio interface
45
- def chat_interface(user_input, chat_history=[]):
46
- chat_history.append(("User", user_input))
47
- bot_response = generate_response(user_input)
48
- chat_history.append(("Bot", bot_response))
49
- return "", chat_history
50
-
51
- with gr.Blocks() as demo:
52
- gr.Markdown("# CycleO - Female Zyklus and Hormone Health Assistant")
53
- gr.Markdown("Stellen Sie Fragen zu Ihrem Zyklus und Hormonhaushalt und erhalten Sie Antworten basierend auf unserem Wissen über das weibliche Hormonsystem.")
54
- chatbot_interface = gr.Chatbot()
55
- user_input = gr.Textbox(label="Frage eingeben", placeholder="Schreibe eine Frage...")
56
- user_input.submit(chat_interface, inputs=[user_input, chatbot_interface], outputs=[user_input, chatbot_interface])
57
-
58
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import streamlit_authenticator as stauth
3
+ import pandas as pd
4
+
5
+ # Benutzerkonfiguration für die Authentifizierung
6
+ users = [
7
+ {"name": "Max Mustermann", "username": "mmustermann", "password": stauth.Hasher(["password"]).generate()}
8
+ ]
9
+
10
+ authenticator = stauth.Authenticate(
11
+ usernames={user["username"]: user for user in users},
12
+ secret_key="your_secret_key",
13
+ cookie_name="streamlit-auth",
14
+ cookie_expiry_days=30
15
+ )
16
+
17
+ name, authentication_status, username = authenticator.login("Login", "main")
18
+
19
+ if authentication_status:
20
+ st.sidebar.success(f"Willkommen {name}")
21
+
22
+ st.title("🔄 Hormonzyklus-Tracker 🔄")
23
+
24
+ st.header("Zusammenfassung des Workshops über das weibliche Hormonsystem und Zyklen")
25
+ st.write("""
26
+ ### Überblick
27
+ Das weibliche Hormonsystem ist äußerst empfindlich und zyklisch. Es unterscheidet sich stark vom männlichen System, welches oft in Studien bevorzugt wird. Hormongesundheit ist ein integraler Bestandteil des allgemeinen Wohlbefindens und sollte speziell bei Frauen beachtet werden. Unser Körper funktioniert als ein zusammenhängendes System, bei dem alle Teile miteinander interagieren.
28
+
29
+ ### Wichtige Hormone
30
+ - **FSH (Follikelstimulierendes Hormon)**: Stimuliert die Follikel in den Eierstöcken, die sich zu Eizellen entwickeln. Essenziell für den Beginn des Menstruationszyklus.
31
+ - **Östrogen**: Ein wesentliches weibliches Hormon, das viele körperliche Funktionen beeinflusst, einschließlich der Fortpflanzung und des Aussehens. Ein Ungleichgewicht kann zu gesundheitlichen Problemen führen.
32
+ - **LH (Luteinisierendes Hormon)**: Wichtig für den Eisprung und die Bildung des Gelbkörpers. Unterstützt die Freisetzung der Eizelle.
33
+ - **Progesteron**: Wird nach dem Eisprung vom Gelbkörper produziert und unterstützt die Gebärmutter bei der Vorbereitung auf eine mögliche Schwangerschaft. Ein Mangel kann zu Stimmungsschwankungen und Heißhunger führen.
34
+ """)
35
+
36
+ st.write("""
37
+ ### Zyklusphasen
38
+ - **Menstruationsphase (Winter)**:
39
+ - Dauer: 3-7 Tage
40
+ - Beschreibung: Ruhephase, ideale Zeit für Reflexion und Zielsetzung.
41
+ - Empfehlungen: Rückzug und Selbstreflexion, Journaling, um Ziele und Pläne für den nächsten Zyklus festzulegen.
42
+ - Ernährung: Eisenreiches Gemüse und Obst, vorzugsweise warm, um den Blutverlust auszugleichen.
43
+
44
+ - **Follikelphase (Frühling)**:
45
+ - Dauer: Ca. 7-10 Tage
46
+ - Beschreibung: Aufbauphase, der Körper bereitet sich auf den Eisprung vor.
47
+ - Empfehlungen: Ideal für die Planung und den Beginn neuer Projekte. Langsam in die Aktion kommen.
48
+ - Ernährung: Viel Gemüse und Obst, Makronährstoffe wie Fette, Proteine, Omega-3-Fettsäuren (z.B. Fisch), Magnesium und Vitamin D.
49
+
50
+ - **Ovulationsphase (Sommer)**:
51
+ - Dauer: 1-2 Tage
52
+ - Beschreibung: Fruchtbares Fenster, Zeit der höchsten Energie und sozialen Interaktion.
53
+ - Empfehlungen: Ideal für Networking, Dating und intensive soziale Aktivitäten.
54
+ - Ernährung: Leichte, regelmäßige Mahlzeiten, da der Appetit tendenziell geringer ist.
55
+
56
+ - **Lutealphase (Herbst)**:
57
+ - Dauer: Ca. 14 Tage
58
+ - Beschreibung: Vorbereitung auf die Menstruation, erhöhte Kalorienbedürfnisse.
59
+ - Empfehlungen: Abschluss von Projekten und Aufgaben, die zusätzliche Energie erfordern. Achte auf Anzeichen von Stress und hormonellen Veränderungen.
60
+ - Ernährung: Erhöhte Kalorienaufnahme (+280 Kalorien/Tag), ballaststoffreiche Lebensmittel wie Quinoa, Apfelessig im Salat zur Unterstützung der Verdauung.
61
+ """)
62
+
63
+ st.write("""
64
+ ### Weitere wichtige Aspekte
65
+ - **Sekrete**: Essenziell für die Unterstützung der Spermien und zum Schutz vor Infektionen, besonders in der Lutealphase.
66
+ - **Ayurveda**: Betont die zyklische Natur des weiblichen Körpers und teilt den Zyklus in vier Jahreszeiten ein, um die Phasen besser zu verstehen und zu managen.
67
+ - **Cortisol**: Stresshormon, das in der Nebennierenrinde produziert wird und den Blutzuckerspiegel sowie die hormonelle Balance beeinflusst. Wichtig für die Stressbewältigung, insbesondere während der Lutealphase.
68
+
69
+ ### Empfehlungen
70
+ - **Energie-Management**: Fokussiere dich darauf, deine Energie zu managen, nicht nur deine Zeit. Unterschiedliche Phasen erfordern unterschiedliche Energieeinsätze.
71
+ - **Ernährungstipps**: Integriere Apfelessig in deine Ernährung, um die Verdauung zu unterstützen, und konsumiere ballaststoffreiche Lebensmittel, um die hormonelle Balance zu fördern.
72
+ - **Journaling**: Nutze das Journaling zur Reflexion und Planung. Setze dir Ziele für den nächsten Zyklus und überprüfe regelmäßig deine Fortschritte.
73
+ """)
74
+
75
+ # Definieren Sie die Spalten für den Tracker
76
+ columns = [
77
+ "Cycle Day", "Flow", "Cervical Mucus", "Products Used", "Basal Temp", "Ovulation",
78
+ "Acne", "Appetite", "Breast Pain", "Cramps", "Fatigue", "Fluid Retention", "Food Cravings",
79
+ "Gas", "Headache", "Migraine", "Nausea",
80
+ "Allergies", "Anxiety", "Asthma", "Depression", "Dry Eye", "Eczema", "Endometriosis",
81
+ "Epilepsy", "Fibromyalgia", "GERD", "IBS", "Mania", "MS", "OCD", "PCOS", "PMDD", "Social Anxiety"
82
+ ]
83
+
84
+ # Erstellen Sie ein leeres DataFrame, um die Daten zu speichern
85
+ if 'data' not in st.session_state:
86
+ st.session_state.data = pd.DataFrame(columns=columns)
87
+
88
+ # Eingabebereich
89
+ st.subheader("Daten eingeben")
90
+
91
+ cycle_day = st.number_input("Zyklustag", min_value=1, max_value=31)
92
+ flow = st.selectbox("Fluss", ["none", "spotting", "light", "moderate", "heavy"])
93
+ cervical_mucus = st.selectbox("Zervixschleim", ["D", "S", "C", "W", "EW"])
94
+ products_used = st.number_input("Anzahl der verwendeten Produkte oder Tassen", min_value=0)
95
+ basal_temp = st.number_input("Basaltemperatur", format="%.2f")
96
+ ovulation = st.selectbox("Ovulation", ["Yes", "No"])
97
+
98
+ # Allgemeine Symptome
99
+ st.subheader("Allgemeine Symptome")
100
+ acne = st.slider("Akne", 0, 10)
101
+ appetite = st.slider("Appetit", 0, 10)
102
+ breast_pain = st.slider("Brustschmerzen", 0, 10)
103
+ cramps = st.slider("Krämpfe", 0, 10)
104
+ fatigue = st.slider("Müdigkeit", 0, 10)
105
+ fluid_retention = st.slider("Flüssigkeitsretention", 0, 10)
106
+ food_cravings = st.slider("Heißhunger", 0, 10)
107
+ gas = st.slider("Gasbildung", 0, 10)
108
+ headache = st.slider("Kopfschmerzen", 0, 10)
109
+ migraine = st.slider("Migräne", 0, 10)
110
+ nausea = st.slider("Übelkeit", 0, 10)
111
+
112
+ # Medizinische Symptome
113
+ st.subheader("Medizinische Symptome")
114
+ allergies = st.slider("Allergien", 0, 10)
115
+ anxiety = st.slider("Angst", 0, 10)
116
+ asthma = st.slider("Asthma", 0, 10)
117
+ depression = st.slider("Depression", 0, 10)
118
+ dry_eye = st.slider("Trockene Augen", 0, 10)
119
+ eczema = st.slider("Ekzem", 0, 10)
120
+ endometriosis = st.slider("Endometriose", 0, 10)
121
+ epilepsy = st.slider("Epilepsie", 0, 10)
122
+ fibromyalgia = st.slider("Fibromyalgie", 0, 10)
123
+ gerd = st.slider("GERD", 0, 10)
124
+ ibs = st.slider("IBS", 0, 10)
125
+ mania = st.slider("Manie", 0, 10)
126
+ ms = st.slider("MS", 0, 10)
127
+ ocd = st.slider("OCD", 0, 10)
128
+ pcos = st.slider("PCOS", 0, 10)
129
+ pmdd = st.slider("PMDD", 0, 10)
130
+ social_anxiety = st.slider("Soziale Angst", 0, 10)
131
+
132
+ # Daten zum DataFrame hinzufügen
133
+ if st.button("Daten hinzufügen"):
134
+ new_data = {
135
+ "Cycle Day": cycle_day, "Flow": flow, "Cervical Mucus": cervical_mucus, "Products Used": products_used,
136
+ "Basal Temp": basal_temp, "Ovulation": ovulation, "Acne": acne, "Appetite": appetite, "Breast Pain": breast_pain,
137
+ "Cramps": cramps, "Fatigue": fatigue, "Fluid Retention": fluid_retention, "Food Cravings": food_cravings,
138
+ "Gas": gas, "Headache": headache, "Migraine": migraine, "Nausea": nausea, "Allergies": allergies,
139
+ "Anxiety": anxiety, "Asthma": asthma, "Depression": depression, "Dry Eye": dry_eye, "Eczema": eczema,
140
+ "Endometriosis": endometriosis, "Epilepsy": epilepsy, "Fibromyalgia": fibromyalgia, "GERD": gerd, "IBS": ibs,
141
+ "Mania": mania, "MS": ms, "OCD": ocd, "PCOS": pcos, "PMDD": pmdd, "Social Anxiety": social_anxiety
142
+ }
143
+ st.session_state.data = st.session_state.data.append(new_data, ignore_index=True)
144
+ st.success("Daten wurden hinzugefügt.")
145
+
146
+ # Daten anzeigen
147
+ st.subheader("Erfasste Daten")
148
+ st.dataframe(st.session_state.data)
149
+
150
+ # Option zum Löschen von Daten
151
+ if st.button("Daten löschen"):
152
+ st.session_state.data = st.session_state.data[st.session_state.data["Cycle Day"] != cycle_day]
153
+ st.success("Daten wurden gelöscht.")
154
+
155
+ elif authentication_status == False:
156
+ st.error("Benutzername/Passwort ist falsch")
157
+ elif authentication_status == None:
158
+ st.warning("Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein")