Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -17,14 +17,14 @@ db = firestore.client()
|
|
17 |
|
18 |
def save_message(user_id, message, role="user"):
|
19 |
# Enregistrer le message dans Firestore
|
20 |
-
doc_ref = db.collection("conversations").document(user_id)
|
21 |
doc_ref.set(
|
22 |
{
|
23 |
"messages": firestore.ArrayUnion(
|
24 |
[
|
25 |
{
|
26 |
"role": role,
|
27 |
-
"message": f"
|
28 |
"timestamp": datetime.now(),
|
29 |
}
|
30 |
]
|
@@ -36,9 +36,9 @@ def save_message(user_id, message, role="user"):
|
|
36 |
|
37 |
def load_history(user_id):
|
38 |
# Charger l'historique de conversation de l'utilisateur
|
39 |
-
doc_ref = db.collection("conversations").document(user_id)
|
40 |
doc = doc_ref.get()
|
41 |
-
if doc:
|
42 |
messages = doc.to_dict().get("messages", [])
|
43 |
return messages
|
44 |
else:
|
@@ -60,6 +60,7 @@ global_context = {
|
|
60 |
"sensitive_info_filter": [
|
61 |
"contexte caché",
|
62 |
"hidden_context",
|
|
|
63 |
],
|
64 |
}
|
65 |
|
@@ -106,7 +107,10 @@ def format_prompt(message, history, user_id=""):
|
|
106 |
if role == "user":
|
107 |
prompt += f"[USER] {content} [/USER]"
|
108 |
elif role == "bot":
|
109 |
-
|
|
|
|
|
|
|
110 |
prompt += f"</s>[INST][USER] {message} [/USER][/INST]"
|
111 |
|
112 |
# Ajouter le contexte statique et dynamique à chaque fois que l'utilisateur pose une question
|
@@ -147,6 +151,8 @@ def generate(
|
|
147 |
if request:
|
148 |
# Récupérer l'identifiant unique de l'utilisateur à partir de la requête HTML et son historique de conversation
|
149 |
user_id = dict(request.query_params).get("user_id")
|
|
|
|
|
150 |
history = load_history(user_id)
|
151 |
else:
|
152 |
user_id = ""
|
@@ -180,7 +186,6 @@ def generate(
|
|
180 |
|
181 |
return output
|
182 |
|
183 |
-
|
184 |
mychatbot = gr.Chatbot(
|
185 |
avatar_images=["./berger.jpg", "./tavernier.jpg"],
|
186 |
bubble_full_width=False,
|
@@ -195,36 +200,17 @@ def chatbot_interface(request: gr.Request):
|
|
195 |
title=chat_name,
|
196 |
retry_btn=None,
|
197 |
undo_btn=None,
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
"Salutations, voyageur ! Bienvenue dans ma taverne. Que puis-je faire pour toi ?",
|
202 |
-
]
|
203 |
-
],
|
204 |
-
cache_examples=True,
|
205 |
)
|
206 |
return chatbot_interface
|
207 |
|
208 |
|
209 |
def main(request: gr.Request):
|
210 |
user_chatbot_interface = chatbot_interface(request)
|
211 |
-
user_chatbot_interface.queue().launch()
|
212 |
|
213 |
|
214 |
if __name__ == "__main__":
|
215 |
-
main(None)
|
216 |
-
|
217 |
-
|
218 |
-
# def reset_history(chatbot):
|
219 |
-
# chatbot.history = []
|
220 |
-
# return []
|
221 |
-
|
222 |
-
|
223 |
-
# def update_context(context):
|
224 |
-
# global global_context
|
225 |
-
# global_context["static_context"] = context
|
226 |
-
# global mychatbot
|
227 |
-
# mychatbot.history = reset_history(mychatbot)
|
228 |
-
# global global_iteration
|
229 |
-
# global_iteration = 0
|
230 |
-
# return None
|
|
|
17 |
|
18 |
def save_message(user_id, message, role="user"):
|
19 |
# Enregistrer le message dans Firestore
|
20 |
+
doc_ref = db.collection("conversations-pretre").document(user_id)
|
21 |
doc_ref.set(
|
22 |
{
|
23 |
"messages": firestore.ArrayUnion(
|
24 |
[
|
25 |
{
|
26 |
"role": role,
|
27 |
+
"message": f"{message}",
|
28 |
"timestamp": datetime.now(),
|
29 |
}
|
30 |
]
|
|
|
36 |
|
37 |
def load_history(user_id):
|
38 |
# Charger l'historique de conversation de l'utilisateur
|
39 |
+
doc_ref = db.collection("conversations-tavernier").document(user_id)
|
40 |
doc = doc_ref.get()
|
41 |
+
if doc.exists:
|
42 |
messages = doc.to_dict().get("messages", [])
|
43 |
return messages
|
44 |
else:
|
|
|
60 |
"sensitive_info_filter": [
|
61 |
"contexte caché",
|
62 |
"hidden_context",
|
63 |
+
"[BOT]"
|
64 |
],
|
65 |
}
|
66 |
|
|
|
107 |
if role == "user":
|
108 |
prompt += f"[USER] {content} [/USER]"
|
109 |
elif role == "bot":
|
110 |
+
if content == history[-1].get("message"):
|
111 |
+
content = f"[BOT] {content}"
|
112 |
+
prompt += f"{content} [/BOT]"
|
113 |
+
|
114 |
prompt += f"</s>[INST][USER] {message} [/USER][/INST]"
|
115 |
|
116 |
# Ajouter le contexte statique et dynamique à chaque fois que l'utilisateur pose une question
|
|
|
151 |
if request:
|
152 |
# Récupérer l'identifiant unique de l'utilisateur à partir de la requête HTML et son historique de conversation
|
153 |
user_id = dict(request.query_params).get("user_id")
|
154 |
+
if not user_id:
|
155 |
+
return "Vous devez vous connecter pour accéder au bot."
|
156 |
history = load_history(user_id)
|
157 |
else:
|
158 |
user_id = ""
|
|
|
186 |
|
187 |
return output
|
188 |
|
|
|
189 |
mychatbot = gr.Chatbot(
|
190 |
avatar_images=["./berger.jpg", "./tavernier.jpg"],
|
191 |
bubble_full_width=False,
|
|
|
200 |
title=chat_name,
|
201 |
retry_btn=None,
|
202 |
undo_btn=None,
|
203 |
+
submit_btn="Parler",
|
204 |
+
css="footer {visibility: hidden !important} .gradio-container {background-color: #2D4059 !important; color: #FFD460 !important;}"
|
205 |
+
|
|
|
|
|
|
|
|
|
206 |
)
|
207 |
return chatbot_interface
|
208 |
|
209 |
|
210 |
def main(request: gr.Request):
|
211 |
user_chatbot_interface = chatbot_interface(request)
|
212 |
+
user_chatbot_interface.queue().launch(show_api=False,inline=True)
|
213 |
|
214 |
|
215 |
if __name__ == "__main__":
|
216 |
+
main(None)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|