Spaces:
Sleeping
Sleeping
Commit ·
a327224
1
Parent(s): 7baa921
inititalizing of the token
Browse files
app.py
CHANGED
|
@@ -333,7 +333,9 @@ def initialize_system():
|
|
| 333 |
HF_API_KEY = os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACEHUB_API_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN")
|
| 334 |
|
| 335 |
# Configuration de l'API HuggingFace Inference
|
| 336 |
-
|
|
|
|
|
|
|
| 337 |
headers = {"Authorization": f"Bearer {HF_API_KEY}"} if HF_API_KEY else {}
|
| 338 |
|
| 339 |
# Initialiser le client d'inférence HuggingFace
|
|
@@ -399,29 +401,57 @@ AI:
|
|
| 399 |
"""
|
| 400 |
|
| 401 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 402 |
# Appeler l'API HuggingFace pour générer la réponse
|
| 403 |
-
# Utilisation de
|
| 404 |
-
response = llm_client.
|
| 405 |
-
|
| 406 |
-
model=
|
| 407 |
-
|
| 408 |
temperature=0.7,
|
| 409 |
-
top_p=0.95
|
| 410 |
-
do_sample=True
|
| 411 |
)
|
| 412 |
|
|
|
|
|
|
|
|
|
|
| 413 |
# Nettoyer la réponse
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
|
| 419 |
-
return
|
| 420 |
except Exception as e:
|
| 421 |
print(f"Erreur lors de la génération: {str(e)}")
|
| 422 |
import traceback
|
| 423 |
traceback.print_exc()
|
| 424 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 425 |
|
| 426 |
# Créer l instance de gestion d historique
|
| 427 |
ch = ConversationHistoryLoader(k=3)
|
|
@@ -474,7 +504,8 @@ iface = gr.Interface(
|
|
| 474 |
"Quels sont les principaux impacts du réchauffement climatique ?",
|
| 475 |
"Comment les océans sont-ils affectés par le changement climatique ?",
|
| 476 |
"Quelles sont les solutions pour réduire les émissions ?"
|
| 477 |
-
]
|
|
|
|
| 478 |
)
|
| 479 |
|
| 480 |
# Lancer l application
|
|
|
|
| 333 |
HF_API_KEY = os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACEHUB_API_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN")
|
| 334 |
|
| 335 |
# Configuration de l'API HuggingFace Inference
|
| 336 |
+
# Utiliser un modèle plus petit et compatible avec le tier gratuit
|
| 337 |
+
MODEL_NAME = "mistralai/Mistral-7B-Instruct-v0.2"
|
| 338 |
+
API_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
|
| 339 |
headers = {"Authorization": f"Bearer {HF_API_KEY}"} if HF_API_KEY else {}
|
| 340 |
|
| 341 |
# Initialiser le client d'inférence HuggingFace
|
|
|
|
| 401 |
"""
|
| 402 |
|
| 403 |
try:
|
| 404 |
+
# Construire les messages pour le chat
|
| 405 |
+
system_message = f"""Tu es un assistant expert sur le changement climatique. Réponds aux questions en français en utilisant le contexte fourni des rapports IPCC.
|
| 406 |
+
|
| 407 |
+
Contexte: {context}"""
|
| 408 |
+
|
| 409 |
+
messages = [
|
| 410 |
+
{"role": "system", "content": system_message}
|
| 411 |
+
]
|
| 412 |
+
|
| 413 |
+
# Ajouter l'historique si présent
|
| 414 |
+
if chat_history:
|
| 415 |
+
messages.append({"role": "assistant", "content": f"Historique:\n{chat_history}"})
|
| 416 |
+
|
| 417 |
+
# Ajouter la question
|
| 418 |
+
messages.append({"role": "user", "content": instruction})
|
| 419 |
+
|
| 420 |
# Appeler l'API HuggingFace pour générer la réponse
|
| 421 |
+
# Utilisation de Mistral avec chat_completion
|
| 422 |
+
response = llm_client.chat_completion(
|
| 423 |
+
messages=messages,
|
| 424 |
+
model=MODEL_NAME,
|
| 425 |
+
max_tokens=300,
|
| 426 |
temperature=0.7,
|
| 427 |
+
top_p=0.95
|
|
|
|
| 428 |
)
|
| 429 |
|
| 430 |
+
# Extraire le contenu de la réponse
|
| 431 |
+
answer = response.choices[0].message.content
|
| 432 |
+
|
| 433 |
# Nettoyer la réponse
|
| 434 |
+
answer = answer.strip()
|
| 435 |
+
answer = re.sub(r"\[context\..*?\]", "", answer)
|
| 436 |
+
answer = re.sub(r"Al:\s*", "", answer)
|
| 437 |
+
answer = re.sub(r"AI:\s*", "", answer)
|
| 438 |
|
| 439 |
+
return answer
|
| 440 |
except Exception as e:
|
| 441 |
print(f"Erreur lors de la génération: {str(e)}")
|
| 442 |
import traceback
|
| 443 |
traceback.print_exc()
|
| 444 |
+
error_msg = str(e)
|
| 445 |
+
|
| 446 |
+
# Messages d'aide selon le type d'erreur
|
| 447 |
+
if "rate limit" in error_msg.lower():
|
| 448 |
+
return f"⏱️ Rate limit atteint. Veuillez réessayer dans quelques instants.\n\nDétails: {error_msg}"
|
| 449 |
+
elif "loading" in error_msg.lower() or "is currently loading" in error_msg.lower():
|
| 450 |
+
return f"⏳ Le modèle est en cours de chargement. Veuillez patienter 20-30 secondes et réessayer.\n\nDétails: {error_msg}"
|
| 451 |
+
elif "authorization" in error_msg.lower() or "token" in error_msg.lower():
|
| 452 |
+
return f"🔒 Problème d'authentification.\n\nDétails: {error_msg}\n\n⚠️ Vérifiez que le token HF_TOKEN dans Settings a les permissions 'read' ou 'inference'."
|
| 453 |
+
else:
|
| 454 |
+
return f"❌ Erreur: {error_msg}\n\nConsultez les logs de votre Space pour plus de détails."
|
| 455 |
|
| 456 |
# Créer l instance de gestion d historique
|
| 457 |
ch = ConversationHistoryLoader(k=3)
|
|
|
|
| 504 |
"Quels sont les principaux impacts du réchauffement climatique ?",
|
| 505 |
"Comment les océans sont-ils affectés par le changement climatique ?",
|
| 506 |
"Quelles sont les solutions pour réduire les émissions ?"
|
| 507 |
+
],
|
| 508 |
+
cache_examples=False # Désactive le cache pour éviter l'initialisation au démarrage
|
| 509 |
)
|
| 510 |
|
| 511 |
# Lancer l application
|