Spaces:
Sleeping
Sleeping
| import os | |
| from huggingface_hub import InferenceClient | |
| HF_TOKEN = os.getenv("HF_TOKEN", "") | |
| MODEL_NAME = os.getenv("HF_MODEL", "Qwen/Qwen2.5-72B-Instruct") | |
| LEVEL_DESCRIPTIONS = { | |
| "beginner": "de manière très simple, comme si tu expliquais à un lycéen, avec des analogies du quotidien", | |
| "intermediate": "de manière claire avec les concepts essentiels, pour un étudiant universitaire", | |
| "advanced": "de manière approfondie et technique, pour un expert du domaine", | |
| } | |
| _client = None | |
| def _get_client() -> InferenceClient: | |
| global _client | |
| if _client is None: | |
| _client = InferenceClient(token=HF_TOKEN or None) | |
| return _client | |
| def _call_hf(system: str, user: str, max_tokens: int = 1024, temperature: float = 0.5) -> str: | |
| client = _get_client() | |
| response = client.chat_completion( | |
| model=MODEL_NAME, | |
| messages=[ | |
| {"role": "system", "content": system}, | |
| {"role": "user", "content": user}, | |
| ], | |
| max_tokens=max_tokens, | |
| temperature=temperature, | |
| ) | |
| return response.choices[0].message.content.strip() | |
| def simple_explain(concept: str, level: str = "intermediate") -> str: | |
| level_desc = LEVEL_DESCRIPTIONS.get(level, LEVEL_DESCRIPTIONS["intermediate"]) | |
| system = ( | |
| "Tu es un professeur pédagogue expert. " | |
| "Réponds dans la même langue que le concept demandé." | |
| ) | |
| user = ( | |
| f"Explique le concept suivant {level_desc}.\n\n" | |
| "Structure ta réponse avec :\n" | |
| "1. Une définition courte et claire\n" | |
| "2. Les points clés à retenir\n" | |
| "3. Un exemple concret\n" | |
| "4. Les applications pratiques\n\n" | |
| f"Concept : {concept}" | |
| ) | |
| return _call_hf(system, user, max_tokens=1024) |