Elouarn commited on
Commit
c8e4add
·
verified ·
1 Parent(s): 9501b83

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -4
app.py CHANGED
@@ -68,7 +68,6 @@ global_iteration = 0
68
  # Variable globale pour stocker le contexte
69
  global_context = {
70
  "static_context": "Tu es le forgeron du village de Montaillou, un homme fort et travailleur, vivant au 14ème siècle dans l'univers des cathares dans les Pyrénées. Tu ne parles qu'en français avec un langage direct et franc. Tu es accueillant et jovial, mais tu peux te montrer méfiant envers les étrangers et les nobles. Tu ne sors jamais de ton contexte époque et tes connaissances se limitent à ta situation sociale et à ton époque. Tu dois être immersif et cohérent pour la personne qui va te parler. Prends toujours en compte l'historique de la conversation. Sois toujours concis et vise une longueur de réponse comprise entre 50 et 200 caractères (espaces compris) pour les réponses courtes et simples, et entre 200 et 500 caractères pour les réponses plus détaillées et complexes.",
71
- "dynamic_context": "",
72
  "sensitive_info_filter": ["contexte caché", "hidden_context", "[BOT]"],
73
  }
74
 
@@ -86,13 +85,28 @@ def update_dynamic_context(user_input):
86
  "comportement": "Le troubadour s'est montré agité et nerveux ces derniers temps. Il pourrait cacher quelque chose.",
87
  "lame": "Tu as trouvé une lame tachée de sang près de la forge récemment. Tu l'as cachée, mais tu pourrais donner des indices à son sujet.",
88
  }
 
 
 
 
 
 
 
89
 
90
-
91
  for keyword in keywords:
92
  if keyword in user_input.lower():
93
- global_context["dynamic_context"] += f" {keywords[keyword]}"
94
  break
95
 
 
 
 
 
 
 
 
 
96
 
97
  def filter_sensitive_info(text):
98
  for word in global_context["sensitive_info_filter"]:
@@ -122,6 +136,14 @@ def format_prompt(message, history, user_id=""):
122
  content = f"[BOT] {content}"
123
  prompt += f"{content} [/BOT]"
124
 
 
 
 
 
 
 
 
 
125
  prompt += f"</s>[INST][USER] {message} [/USER][/INST]"
126
 
127
  # Ajouter le contexte statique et dynamique à chaque fois que l'utilisateur pose une question
@@ -168,7 +190,7 @@ def generate(
168
  else:
169
  user_id = ""
170
 
171
- update_dynamic_context(prompt)
172
 
173
  formatted_prompt = format_prompt(prompt, history, user_id)
174
  global global_iteration
 
68
  # Variable globale pour stocker le contexte
69
  global_context = {
70
  "static_context": "Tu es le forgeron du village de Montaillou, un homme fort et travailleur, vivant au 14ème siècle dans l'univers des cathares dans les Pyrénées. Tu ne parles qu'en français avec un langage direct et franc. Tu es accueillant et jovial, mais tu peux te montrer méfiant envers les étrangers et les nobles. Tu ne sors jamais de ton contexte époque et tes connaissances se limitent à ta situation sociale et à ton époque. Tu dois être immersif et cohérent pour la personne qui va te parler. Prends toujours en compte l'historique de la conversation. Sois toujours concis et vise une longueur de réponse comprise entre 50 et 200 caractères (espaces compris) pour les réponses courtes et simples, et entre 200 et 500 caractères pour les réponses plus détaillées et complexes.",
 
71
  "sensitive_info_filter": ["contexte caché", "hidden_context", "[BOT]"],
72
  }
73
 
 
85
  "comportement": "Le troubadour s'est montré agité et nerveux ces derniers temps. Il pourrait cacher quelque chose.",
86
  "lame": "Tu as trouvé une lame tachée de sang près de la forge récemment. Tu l'as cachée, mais tu pourrais donner des indices à son sujet.",
87
  }
88
+ # Récupérer le contexte dynamique de l'utilisateur
89
+ doc_ref = db.collection("conversations-forgeron").document(user_id)
90
+ doc = doc_ref.get()
91
+ if doc.exists:
92
+ dynamic_context = doc.to_dict().get("dynamic_context", "")
93
+ else:
94
+ dynamic_context = ""
95
 
96
+ # Mettre à jour le contexte dynamique de l'utilisateur
97
  for keyword in keywords:
98
  if keyword in user_input.lower():
99
+ dynamic_context += f" {keywords[keyword]}"
100
  break
101
 
102
+ # Enregistrer le contexte dynamique mis à jour dans Firestore
103
+ doc_ref.set(
104
+ {
105
+ "dynamic_context": dynamic_context,
106
+ },
107
+ merge=True,
108
+ )
109
+
110
 
111
  def filter_sensitive_info(text):
112
  for word in global_context["sensitive_info_filter"]:
 
136
  content = f"[BOT] {content}"
137
  prompt += f"{content} [/BOT]"
138
 
139
+ # Récupérer le contexte dynamique de l'utilisateur
140
+ doc_ref = db.collection("conversations-forgeron").document(user_id)
141
+ doc = doc_ref.get()
142
+ if doc.exists:
143
+ dynamic_context = doc.to_dict().get("dynamic_context", "")
144
+ else:
145
+ dynamic_context = ""
146
+
147
  prompt += f"</s>[INST][USER] {message} [/USER][/INST]"
148
 
149
  # Ajouter le contexte statique et dynamique à chaque fois que l'utilisateur pose une question
 
190
  else:
191
  user_id = ""
192
 
193
+ update_dynamic_context(user_id,prompt)
194
 
195
  formatted_prompt = format_prompt(prompt, history, user_id)
196
  global global_iteration