Docfile commited on
Commit
2e531d4
·
verified ·
1 Parent(s): 829ff12

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -32
app.py CHANGED
@@ -76,15 +76,30 @@ st.title("Mariam AI - Chat Intelligent")
76
  if "chat" not in st.session_state:
77
  st.session_state.chat = model.start_chat(history=[])
78
 
79
- # CSS personnalisé (simplifié)
80
  st.markdown("""
81
  <style>
82
- /* Conteneur principal pour la zone de saisie et l'upload */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  .input-area {
84
  display: flex;
85
  align-items: center;
86
  gap: 10px;
87
- margin-bottom: 10px;
88
  }
89
 
90
  /* Style pour la zone de saisie */
@@ -92,41 +107,46 @@ st.markdown("""
92
  flex-grow: 1; /* Permet à la zone de saisie de prendre l'espace disponible */
93
  }
94
 
95
- /* Style pour l'icône (ajustez la taille si nécessaire) */
96
  .upload-icon {
97
  font-size: 1.5em;
98
  }
99
  </style>
100
  """, unsafe_allow_html=True)
101
 
102
- # Afficher l'historique des messages
103
- for message in st.session_state.chat.history:
104
- with st.chat_message(role_to_streamlit(message.role)):
105
- st.markdown(message.parts[0].text)
106
- if len(message.parts) > 1:
107
- for part in message.parts[1:]:
108
- if hasattr(part, 'image'):
109
- st.image(part.image)
110
-
111
- # Créer le conteneur principal pour la zone de saisie et l'upload
112
- input_area = st.container()
113
-
114
- with input_area:
115
- # Zone de saisie
116
- prompt = st.chat_input("Que puis-je faire pour vous ?", key="chat_input")
117
-
118
- # Colonnes pour l'icône et l'uploader (réduit à 2 colonnes)
119
- ucol1, ucol2 = st.columns([1, 5]) # Ajustez la largeur relative si nécessaire
120
-
121
- with ucol1:
122
- # Icône d'upload de fichiers
123
- st.markdown("<span class='upload-icon'>📁</span>", unsafe_allow_html=True)
124
-
125
- with ucol2:
126
- # Upload de fichiers (tous types)
127
- uploaded_file = st.file_uploader("", type=["txt", "mp4", "mp3", "pdf", "png", "jpg", "jpeg", "gif"],
128
- accept_multiple_files=True, key="files",
129
- label_visibility="collapsed")
 
 
 
 
 
130
 
131
  # Appliquer les styles aux éléments (simplifié)
132
  st.markdown(f"""
 
76
  if "chat" not in st.session_state:
77
  st.session_state.chat = model.start_chat(history=[])
78
 
79
+ # CSS personnalisé (pour la fixation des éléments)
80
  st.markdown("""
81
  <style>
82
+ /* Conteneur principal pour fixer les éléments en haut et en bas */
83
+ .main-container {
84
+ display: flex;
85
+ flex-direction: column;
86
+ height: 95vh; /* Ajustez selon vos besoins */
87
+ }
88
+
89
+ /* Conteneur pour l'historique du chat */
90
+ .chat-history {
91
+ flex-grow: 1;
92
+ overflow-y: auto;
93
+ display: flex;
94
+ flex-direction: column-reverse;
95
+ }
96
+
97
+ /* Conteneur pour la zone de saisie et l'upload */
98
  .input-area {
99
  display: flex;
100
  align-items: center;
101
  gap: 10px;
102
+ margin-top: 10px; /* Espace entre l'historique et la zone de saisie */
103
  }
104
 
105
  /* Style pour la zone de saisie */
 
107
  flex-grow: 1; /* Permet à la zone de saisie de prendre l'espace disponible */
108
  }
109
 
110
+ /* Style pour l'icône */
111
  .upload-icon {
112
  font-size: 1.5em;
113
  }
114
  </style>
115
  """, unsafe_allow_html=True)
116
 
117
+ # Conteneur principal
118
+ main_container = st.container()
119
+
120
+ with main_container:
121
+ # Conteneur pour l'historique du chat (maintenant inversé avec column-reverse)
122
+ chat_history_container = st.container()
123
+ with chat_history_container:
124
+ # Afficher l'historique des messages
125
+ for message in st.session_state.chat.history:
126
+ with st.chat_message(role_to_streamlit(message.role)):
127
+ st.markdown(message.parts[0].text)
128
+ if len(message.parts) > 1:
129
+ for part in message.parts[1:]:
130
+ if hasattr(part, 'image'):
131
+ st.image(part.image)
132
+ # Conteneur pour la zone de saisie et l'upload (en bas)
133
+ input_area = st.container()
134
+ with input_area:
135
+ # Colonnes pour l'icône et l'uploader
136
+ ucol1, ucol2 = st.columns([1, 5])
137
+
138
+ with ucol1:
139
+ # Icône d'upload de fichiers
140
+ st.markdown("<span class='upload-icon'>📁</span>", unsafe_allow_html=True)
141
+
142
+ with ucol2:
143
+ # Upload de fichiers (tous types)
144
+ uploaded_file = st.file_uploader("", type=["txt", "mp4", "mp3", "pdf", "png", "jpg", "jpeg", "gif"],
145
+ accept_multiple_files=True, key="files",
146
+ label_visibility="collapsed")
147
+
148
+ # Zone de saisie (placée après l'uploader pour qu'elle soit en bas)
149
+ prompt = st.chat_input("Que puis-je faire pour vous ?", key="chat_input")
150
 
151
  # Appliquer les styles aux éléments (simplifié)
152
  st.markdown(f"""