MathieuGAL commited on
Commit
7215f02
·
verified ·
1 Parent(s): 8491d5b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -7
app.py CHANGED
@@ -5,7 +5,7 @@ from google import genai
5
  from sentence_transformers import SentenceTransformer, CrossEncoder
6
  from typing import List, Dict
7
  from flask import Flask, request, jsonify
8
- from flask_cors import CORS 
9
  from datetime import datetime
10
 
11
  # ======================================================================
@@ -16,7 +16,7 @@ DATA_FILE_PATH = "data/QR.csv"
16
 
17
  # CORRECTION CRITIQUE: Déplacement de la DB vers /tmp
18
  # Ce répertoire est le seul garanti en écriture sur Hugging Face Spaces.
19
- CHROMA_DB_PATH = "/tmp/bdd_ChromaDB" 
20
  COLLECTION_NAME = "qr_data_dual_embeddings"
21
 
22
  Q_COLUMN_NAME = "Question"
@@ -32,7 +32,7 @@ N_RESULTS_RERANK = 3
32
 
33
  # Récupération de la clé depuis l'environnement (Hugging Face Secrets)
34
  # Si non trouvée, utilise la clé de placeholder.
35
- GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "AIzaSyDXXY7uSXryTxZ51jQFsSLcPnC_Ivt9V1g") 
36
  GEMINI_MODEL = "gemini-2.5-flash"
37
 
38
  MAX_CONVERSATION_HISTORY = 10
@@ -64,11 +64,11 @@ def load_models():
64
      try:
65
          # Tente de charger localement, sinon télécharge (le cache se fera dans /tmp)
66
          cross_encoder = CrossEncoder(
67
-             SRC_CROSS_ENCODER if os.path.exists(SRC_CROSS_ENCODER) 
68
              else "cross-encoder/mmarco-mMiniLMv2-L12-H384-v1"
69
          )
70
          paraphrase = SentenceTransformer(
71
-             SRC_PARAPHRASE if os.path.exists(SRC_PARAPHRASE) 
72
              else "sentence-transformers/paraphrase-mpnet-base-v2"
73
          )
74
          print("✅ Modèles chargés avec succès.")
@@ -227,7 +227,7 @@ def generate_rag_prompt(query_text, df_results, conversation_history):
227
          history_str = "HISTORIQUE:\n"
228
          # Ajout du contexte pour le LLM, mais on ne veut pas l'historique complet
229
          # On va limiter l'historique à l'affichage si on dépasse MAX_CONVERSATION_HISTORY
230
-         display_history = conversation_history[-(MAX_CONVERSATION_HISTORY * 2):] 
231
          for msg in display_history:
232
              role = "USER" if msg["role"] == "user" else "ASSISTANT"
233
              # On utilise 'content' pour le texte du message
@@ -341,7 +341,7 @@ def initialize_global_resources():
341
 
342
  app = Flask(__name__)
343
  # CORS activé, permet les requêtes depuis n'importe quelle origine
344
- CORS(app) 
345
 
346
  @app.route('/status', methods=['GET'])
347
  def api_status():
 
5
  from sentence_transformers import SentenceTransformer, CrossEncoder
6
  from typing import List, Dict
7
  from flask import Flask, request, jsonify
8
+ from flask_cors import CORS
9
  from datetime import datetime
10
 
11
  # ======================================================================
 
16
 
17
  # CORRECTION CRITIQUE: Déplacement de la DB vers /tmp
18
  # Ce répertoire est le seul garanti en écriture sur Hugging Face Spaces.
19
+ CHROMA_DB_PATH = "/tmp/bdd_ChromaDB"
20
  COLLECTION_NAME = "qr_data_dual_embeddings"
21
 
22
  Q_COLUMN_NAME = "Question"
 
32
 
33
  # Récupération de la clé depuis l'environnement (Hugging Face Secrets)
34
  # Si non trouvée, utilise la clé de placeholder.
35
+ GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "AIzaSyDXXY7uSXryTxZ51jQFsSLcPnC_Ivt9V1g")
36
  GEMINI_MODEL = "gemini-2.5-flash"
37
 
38
  MAX_CONVERSATION_HISTORY = 10
 
64
      try:
65
          # Tente de charger localement, sinon télécharge (le cache se fera dans /tmp)
66
          cross_encoder = CrossEncoder(
67
+             SRC_CROSS_ENCODER if os.path.exists(SRC_CROSS_ENCODER)
68
              else "cross-encoder/mmarco-mMiniLMv2-L12-H384-v1"
69
          )
70
          paraphrase = SentenceTransformer(
71
+             SRC_PARAPHRASE if os.path.exists(SRC_PARAPHRASE)
72
              else "sentence-transformers/paraphrase-mpnet-base-v2"
73
          )
74
          print("✅ Modèles chargés avec succès.")
 
227
          history_str = "HISTORIQUE:\n"
228
          # Ajout du contexte pour le LLM, mais on ne veut pas l'historique complet
229
          # On va limiter l'historique à l'affichage si on dépasse MAX_CONVERSATION_HISTORY
230
+         display_history = conversation_history[-(MAX_CONVERSATION_HISTORY * 2):]
231
          for msg in display_history:
232
              role = "USER" if msg["role"] == "user" else "ASSISTANT"
233
              # On utilise 'content' pour le texte du message
 
341
 
342
  app = Flask(__name__)
343
  # CORS activé, permet les requêtes depuis n'importe quelle origine
344
+ CORS(app)
345
 
346
  @app.route('/status', methods=['GET'])
347
  def api_status():