first commit
Browse files- src/app.py +14 -7
src/app.py
CHANGED
|
@@ -208,11 +208,11 @@ if query:
|
|
| 208 |
# 2. Reranking des documents pour améliorer la pertinence
|
| 209 |
if docs:
|
| 210 |
rerank_result = st.session_state.reranker.rerank(query, passages)
|
|
|
|
|
|
|
| 211 |
if rerank_result is not None:
|
| 212 |
st.session_state.last_rerank = rerank_result.model_dump()
|
| 213 |
st.code(rerank_result)
|
| 214 |
-
else:
|
| 215 |
-
st.error("Le rerank n'a pas produit de résultat valide.")
|
| 216 |
|
| 217 |
# Vérification si un feedback est requis
|
| 218 |
if rerank_result.feedback_required:
|
|
@@ -220,12 +220,9 @@ if query:
|
|
| 220 |
"role": "assistant",
|
| 221 |
"content": rerank_result.message
|
| 222 |
})
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
# Utiliser st.rerun() au lieu de continue
|
| 226 |
-
|
| 227 |
# Filtrage et réorganisation des documents selon le reranking
|
| 228 |
-
|
| 229 |
if rerank_result.top_indexes:
|
| 230 |
reranked_docs = [docs[i] for i in rerank_result.top_indexes if i < len(docs)]
|
| 231 |
docs = reranked_docs
|
|
@@ -236,6 +233,16 @@ if query:
|
|
| 236 |
})
|
| 237 |
st.stop()
|
| 238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
|
| 240 |
# 3. Génération de la réponse avec les documents reranked
|
| 241 |
if docs: # Vérifier que nous avons des documents avant de continuer
|
|
|
|
| 208 |
# 2. Reranking des documents pour améliorer la pertinence
|
| 209 |
if docs:
|
| 210 |
rerank_result = st.session_state.reranker.rerank(query, passages)
|
| 211 |
+
|
| 212 |
+
# Si le reranker a bien retourné un résultat
|
| 213 |
if rerank_result is not None:
|
| 214 |
st.session_state.last_rerank = rerank_result.model_dump()
|
| 215 |
st.code(rerank_result)
|
|
|
|
|
|
|
| 216 |
|
| 217 |
# Vérification si un feedback est requis
|
| 218 |
if rerank_result.feedback_required:
|
|
|
|
| 220 |
"role": "assistant",
|
| 221 |
"content": rerank_result.message
|
| 222 |
})
|
| 223 |
+
st.rerun() # Arrête ici pour laisser l'utilisateur reformuler
|
| 224 |
+
|
|
|
|
|
|
|
| 225 |
# Filtrage et réorganisation des documents selon le reranking
|
|
|
|
| 226 |
if rerank_result.top_indexes:
|
| 227 |
reranked_docs = [docs[i] for i in rerank_result.top_indexes if i < len(docs)]
|
| 228 |
docs = reranked_docs
|
|
|
|
| 233 |
})
|
| 234 |
st.stop()
|
| 235 |
|
| 236 |
+
# Si le reranker a échoué
|
| 237 |
+
else:
|
| 238 |
+
st.error("❌ Le reranker a échoué et n'a renvoyé aucun résultat.")
|
| 239 |
+
st.session_state.messages.append({
|
| 240 |
+
"role": "assistant",
|
| 241 |
+
"content": "Une erreur est survenue pendant le tri des documents. Veuillez réessayer."
|
| 242 |
+
})
|
| 243 |
+
st.stop()
|
| 244 |
+
|
| 245 |
+
|
| 246 |
|
| 247 |
# 3. Génération de la réponse avec les documents reranked
|
| 248 |
if docs: # Vérifier que nous avons des documents avant de continuer
|