MathieuGAL commited on
Commit
aa33b2f
·
verified ·
1 Parent(s): 732c97b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -21,6 +21,10 @@ TELEGRAM_TOKEN = "8584350410:AAEuXqopGMfgdZ1BvLntA-e6FpoZl5uunEk"
21
  TELEGRAM_CHAT_ID = "1278265595"
22
  # Activer/Désactiver l'envoi de notifications
23
  TELEGRAM_NOTIFICATIONS_ENABLED = True
 
 
 
 
24
 
25
 
26
  # ======================================================================
@@ -67,34 +71,45 @@ conversation_histories: Dict[str, List[Dict[str, str]]] = {}
67
  conversation_start_times: Dict[str, str] = {}
68
 
69
  # ======================================================================
70
- # 🤖 FONCTION D'ENVOI TÉLÉGRAM
71
  # ======================================================================
72
 
73
  def send_telegram_message(message: str, token: str, chat_id: str):
74
  """
75
  Fonction générique pour envoyer un message à Telegram.
 
76
  """
77
  if not TELEGRAM_NOTIFICATIONS_ENABLED:
78
  return
79
 
80
- url = f"https://api.telegram.org/bot{token}/sendMessage"
 
 
 
 
81
  params = {
82
  "chat_id": chat_id,
83
  "text": message,
84
  "parse_mode": "Markdown"
85
  }
86
 
 
 
 
 
 
 
87
  try:
88
- response = requests.post(url, params=params, timeout=5)
89
  response.raise_for_status()
90
 
91
  if response.json().get("ok"):
92
- print(f"✅ Message Telegram envoyé.")
93
  else:
94
  print(f"❌ Échec envoi Telegram: {response.json().get('description')}")
95
 
96
  except requests.exceptions.RequestException as e:
97
- print(f"❌ Erreur connexion Telegram (Vérifiez le TOKEN/Réseau) : {e}")
98
  except Exception as e:
99
  print(f"❌ Erreur inattendue Telegram : {e}")
100
 
@@ -464,8 +479,8 @@ def api_clear_history():
464
  if __name__ == '__main__':
465
  print("start app.py")
466
  if initialize_global_resources():
467
-
468
- # ➡️ ENVOI DE LA NOTIFICATION TÉLÉGRAM AU DÉMARRAGE
469
  startup_message = f"🚀 **Application RAG Démarrée**\nHeure: {time.strftime('%Y-%m-%d %H:%M:%S')}\nToutes les ressources sont chargées."
470
  send_telegram_message(startup_message, TELEGRAM_TOKEN, TELEGRAM_CHAT_ID)
471
  # ------------------------------------------------------
 
21
  TELEGRAM_CHAT_ID = "1278265595"
22
  # Activer/Désactiver l'envoi de notifications
23
  TELEGRAM_NOTIFICATIONS_ENABLED = True
24
+ # 🚨 FIX POUR NAME RESOLUTION ERROR: Utilisation d'une IP connue de Telegram
25
+ # La vraie solution est de fixer le DNS dans l'environnement du conteneur.
26
+ TELEGRAM_API_HOST = "149.154.167.220"
27
+ TELEGRAM_API_DOMAIN = "api.telegram.org"
28
 
29
 
30
  # ======================================================================
 
71
  conversation_start_times: Dict[str, str] = {}
72
 
73
  # ======================================================================
74
+ # 🤖 FONCTION D'ENVOI TÉLÉGRAM (MODIFIÉE)
75
  # ======================================================================
76
 
77
  def send_telegram_message(message: str, token: str, chat_id: str):
78
  """
79
  Fonction générique pour envoyer un message à Telegram.
80
+ Utilise l'IP pour contourner la NameResolutionError.
81
  """
82
  if not TELEGRAM_NOTIFICATIONS_ENABLED:
83
  return
84
 
85
+ # Construction de l'URL pour la méthode 'sendMessage' en utilisant l'IP de l'hôte
86
+ # NOTE: Nous utilisons l'IP mais nous devons injecter le nom d'hôte dans le header
87
+ # pour que le serveur Telegram sache à quel domaine la requête est destinée.
88
+ url = f"https://{TELEGRAM_API_HOST}/bot{token}/sendMessage"
89
+
90
  params = {
91
  "chat_id": chat_id,
92
  "text": message,
93
  "parse_mode": "Markdown"
94
  }
95
 
96
+ # IMPORTANT: Nous ajoutons le header Host pour que la requête soit bien traitée
97
+ # par l'hôte virtuel sur le serveur Telegram, malgré l'utilisation de l'IP.
98
+ headers = {
99
+ "Host": TELEGRAM_API_DOMAIN
100
+ }
101
+
102
  try:
103
+ response = requests.post(url, params=params, headers=headers, timeout=5)
104
  response.raise_for_status()
105
 
106
  if response.json().get("ok"):
107
+ print(f"✅ Message Telegram envoyé (via IP: {TELEGRAM_API_HOST}).")
108
  else:
109
  print(f"❌ Échec envoi Telegram: {response.json().get('description')}")
110
 
111
  except requests.exceptions.RequestException as e:
112
+ print(f"❌ Erreur connexion Telegram (Vérifiez le TOKEN/IP de secours) : {e}")
113
  except Exception as e:
114
  print(f"❌ Erreur inattendue Telegram : {e}")
115
 
 
479
  if __name__ == '__main__':
480
  print("start app.py")
481
  if initialize_global_resources():
482
+
483
+ # ➡️ ENVOI DE LA NOTIFICATION TÉLÉGRAM AU DÉMARRAGE (même appel que la fonction générique)
484
  startup_message = f"🚀 **Application RAG Démarrée**\nHeure: {time.strftime('%Y-%m-%d %H:%M:%S')}\nToutes les ressources sont chargées."
485
  send_telegram_message(startup_message, TELEGRAM_TOKEN, TELEGRAM_CHAT_ID)
486
  # ------------------------------------------------------