Update app.py
Browse files
app.py
CHANGED
@@ -54,6 +54,8 @@ Pour moi, une bonne IA éducative ne doit pas chercher à enseigner. Cette tâch
|
|
54 |
|
55 |
is_first_interaction = True
|
56 |
|
|
|
|
|
57 |
def determine_response_type(message):
|
58 |
# Liste améliorée de mots-clés pour les réponses courtes
|
59 |
short_response_keywords = [
|
@@ -171,13 +173,15 @@ def generate(
|
|
171 |
temperature: float = 0.7,
|
172 |
top_p: float = 0.95,
|
173 |
) -> Iterator[str]:
|
174 |
-
global is_first_interaction
|
175 |
|
176 |
if is_first_interaction:
|
177 |
warning_message = """⚠️ Attention : Je suis un modèle en version alpha (V.0.0.3.5) et je peux générer des réponses incohérentes ou inexactes. Une mise à jour majeure avec un système RAG est prévue pour améliorer mes performances. Merci de votre compréhension ! 😊
|
178 |
"""
|
179 |
yield warning_message
|
180 |
is_first_interaction = False
|
|
|
|
|
181 |
|
182 |
response_type = determine_response_type(message)
|
183 |
|
@@ -192,10 +196,13 @@ def generate(
|
|
192 |
enhanced_system_prompt = f"{system_prompt}\n\n{LUCAS_KNOWLEDGE_BASE}"
|
193 |
conversation.append({"role": "system", "content": enhanced_system_prompt})
|
194 |
|
195 |
-
|
196 |
-
|
|
|
|
|
|
|
|
|
197 |
|
198 |
-
conversation.append({"role": "user", "content": message})
|
199 |
|
200 |
input_ids = tokenizer.apply_chat_template(conversation, return_tensors="pt")
|
201 |
if input_ids.shape[1] > MAX_INPUT_TOKEN_LENGTH:
|
@@ -352,6 +359,12 @@ def generate_statistics():
|
|
352 |
history.reverse() # Afficher les interactions les plus récentes en premier
|
353 |
|
354 |
return f"Nombre total d'interactions : {total_interactions}", fig_likes, fig_evolution, history
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
|
356 |
|
357 |
with gr.Blocks() as demo:
|
@@ -412,6 +425,15 @@ with gr.Blocks() as demo:
|
|
412 |
inputs=[],
|
413 |
outputs=[total_interactions, likes_chart, evolution_chart, history_dataframe]
|
414 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
415 |
|
416 |
with gr.Tab("À propos"):
|
417 |
gr.Markdown(Path(current_dir / "about.md").read_text())
|
|
|
54 |
|
55 |
is_first_interaction = True
|
56 |
|
57 |
+
model_context = []
|
58 |
+
|
59 |
def determine_response_type(message):
|
60 |
# Liste améliorée de mots-clés pour les réponses courtes
|
61 |
short_response_keywords = [
|
|
|
173 |
temperature: float = 0.7,
|
174 |
top_p: float = 0.95,
|
175 |
) -> Iterator[str]:
|
176 |
+
global model_context, is_first_interaction
|
177 |
|
178 |
if is_first_interaction:
|
179 |
warning_message = """⚠️ Attention : Je suis un modèle en version alpha (V.0.0.3.5) et je peux générer des réponses incohérentes ou inexactes. Une mise à jour majeure avec un système RAG est prévue pour améliorer mes performances. Merci de votre compréhension ! 😊
|
180 |
"""
|
181 |
yield warning_message
|
182 |
is_first_interaction = False
|
183 |
+
|
184 |
+
model_context = chat_history[-context_length:]
|
185 |
|
186 |
response_type = determine_response_type(message)
|
187 |
|
|
|
196 |
enhanced_system_prompt = f"{system_prompt}\n\n{LUCAS_KNOWLEDGE_BASE}"
|
197 |
conversation.append({"role": "system", "content": enhanced_system_prompt})
|
198 |
|
199 |
+
|
200 |
+
for user_msg, bot_msg in model_context:
|
201 |
+
if user_msg:
|
202 |
+
conversation.append({"role": "user", "content": user_msg})
|
203 |
+
if bot_msg:
|
204 |
+
conversation.append({"role": "assistant", "content": bot_msg})
|
205 |
|
|
|
206 |
|
207 |
input_ids = tokenizer.apply_chat_template(conversation, return_tensors="pt")
|
208 |
if input_ids.shape[1] > MAX_INPUT_TOKEN_LENGTH:
|
|
|
359 |
history.reverse() # Afficher les interactions les plus récentes en premier
|
360 |
|
361 |
return f"Nombre total d'interactions : {total_interactions}", fig_likes, fig_evolution, history
|
362 |
+
|
363 |
+
context_str = "\n".join([f"User: {msg[0]}\nLucas: {msg[1]}" for msg in model_context])
|
364 |
+
if not context_str:
|
365 |
+
context_str = "Aucun contexte disponible."
|
366 |
+
|
367 |
+
return f"Nombre total d'interactions : {total_interactions}", fig_likes, fig_evolution, history, context_str
|
368 |
|
369 |
|
370 |
with gr.Blocks() as demo:
|
|
|
425 |
inputs=[],
|
426 |
outputs=[total_interactions, likes_chart, evolution_chart, history_dataframe]
|
427 |
)
|
428 |
+
|
429 |
+
gr.Markdown("## Contexte actuel du modèle")
|
430 |
+
model_context_display = gr.Textbox(label="Contexte du modèle", lines=10)
|
431 |
+
|
432 |
+
stats_button.click(
|
433 |
+
generate_statistics,
|
434 |
+
inputs=[],
|
435 |
+
outputs=[total_interactions, likes_chart, evolution_chart, history_dataframe, model_context_display]
|
436 |
+
)
|
437 |
|
438 |
with gr.Tab("À propos"):
|
439 |
gr.Markdown(Path(current_dir / "about.md").read_text())
|