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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|