Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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/
|
| 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 |
# ------------------------------------------------------
|