Spaces:
Running
Running
cd@bziiit.com commited on
Commit ·
6be2a9d
1
Parent(s): 10cc803
Fiw stream nicely, without reloading page
Browse files
app.py
CHANGED
|
@@ -31,6 +31,9 @@ def check_indexes_ready():
|
|
| 31 |
def process_query(query, architecture: Literal["A", "B"]):
|
| 32 |
"""Traite la requête de l'utilisateur avec l'architecture A."""
|
| 33 |
|
|
|
|
|
|
|
|
|
|
| 34 |
config = { "metadata": { "architecture": architecture }, "tags": ["arch_"+architecture] }
|
| 35 |
|
| 36 |
if architecture == "A":
|
|
@@ -40,27 +43,32 @@ def process_query(query, architecture: Literal["A", "B"]):
|
|
| 40 |
|
| 41 |
st.session_state.chat_history.append({"role": "user", "content": query})
|
| 42 |
|
| 43 |
-
with st.spinner("Recherche en cours..."):
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
-
# Conteneur pour le streaming
|
| 47 |
-
message_placeholder = st.empty()
|
| 48 |
-
response = ""
|
| 49 |
|
| 50 |
-
events = agent.stream(initial_state, config=config, stream_mode="messages")
|
| 51 |
-
|
| 52 |
-
# Affichage en temps réel des messages
|
| 53 |
for event in events:
|
| 54 |
for message in event:
|
| 55 |
|
| 56 |
if isinstance(message, AIMessageChunk):
|
| 57 |
# Vérifiez le type de message et affichez son contenu
|
| 58 |
if hasattr(message, 'content'):
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
|
| 65 |
def display_sidebar():
|
| 66 |
"""Affiche la barre latérale."""
|
|
@@ -106,8 +114,8 @@ def main():
|
|
| 106 |
["Basic", "Intermédiaire", "Avancée"],
|
| 107 |
on_change=st.session_state.chat_history.clear
|
| 108 |
)
|
|
|
|
| 109 |
display_sidebar()
|
| 110 |
-
display_chat_history()
|
| 111 |
|
| 112 |
query = st.chat_input("Posez votre question ici:")
|
| 113 |
if query:
|
|
@@ -118,7 +126,5 @@ def main():
|
|
| 118 |
|
| 119 |
process_query(query, architecture)
|
| 120 |
|
| 121 |
-
st.rerun()
|
| 122 |
-
|
| 123 |
if __name__ == "__main__":
|
| 124 |
main()
|
|
|
|
| 31 |
def process_query(query, architecture: Literal["A", "B"]):
|
| 32 |
"""Traite la requête de l'utilisateur avec l'architecture A."""
|
| 33 |
|
| 34 |
+
# Reload conversation
|
| 35 |
+
display_chat_history()
|
| 36 |
+
|
| 37 |
config = { "metadata": { "architecture": architecture }, "tags": ["arch_"+architecture] }
|
| 38 |
|
| 39 |
if architecture == "A":
|
|
|
|
| 43 |
|
| 44 |
st.session_state.chat_history.append({"role": "user", "content": query})
|
| 45 |
|
| 46 |
+
# with st.spinner("Recherche en cours..."):
|
| 47 |
+
initial_state = {"query": query, "messages": [], "relevant_docs": [], "response": ""}
|
| 48 |
+
|
| 49 |
+
with st.chat_message("user"):
|
| 50 |
+
st.markdown(query)
|
| 51 |
+
|
| 52 |
+
full_response = ""
|
| 53 |
+
|
| 54 |
+
events = agent.stream(initial_state, config=config, stream_mode="messages")
|
| 55 |
+
|
| 56 |
+
# Ajouter le message du chatbot avec streaming
|
| 57 |
+
with st.chat_message("assistant"):
|
| 58 |
+
response_placeholder = st.empty()
|
| 59 |
|
|
|
|
|
|
|
|
|
|
| 60 |
|
|
|
|
|
|
|
|
|
|
| 61 |
for event in events:
|
| 62 |
for message in event:
|
| 63 |
|
| 64 |
if isinstance(message, AIMessageChunk):
|
| 65 |
# Vérifiez le type de message et affichez son contenu
|
| 66 |
if hasattr(message, 'content'):
|
| 67 |
+
full_response += message.content
|
| 68 |
+
response_placeholder.markdown(full_response)
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
st.session_state.chat_history.append({"role": "assistant", "content": full_response})
|
| 72 |
|
| 73 |
def display_sidebar():
|
| 74 |
"""Affiche la barre latérale."""
|
|
|
|
| 114 |
["Basic", "Intermédiaire", "Avancée"],
|
| 115 |
on_change=st.session_state.chat_history.clear
|
| 116 |
)
|
| 117 |
+
|
| 118 |
display_sidebar()
|
|
|
|
| 119 |
|
| 120 |
query = st.chat_input("Posez votre question ici:")
|
| 121 |
if query:
|
|
|
|
| 126 |
|
| 127 |
process_query(query, architecture)
|
| 128 |
|
|
|
|
|
|
|
| 129 |
if __name__ == "__main__":
|
| 130 |
main()
|