from ctransformers import AutoModelForCausalLM import gradio as gr # Chargement du modèle depuis Hugging Face, sans "config={...}" llm = AutoModelForCausalLM.from_pretrained( "TheBloke/Mistral-7B-Instruct-v0.2-GGUF", model_file="mistral-7b-instruct-v0.2.Q4_K_M.gguf", model_type="mistral", max_new_tokens=256, temperature=0.7, top_p=0.9, top_k=50, repetition_penalty=1.1, stop=["\n\n", "Élève", "Prof", "Question"] ) # Prompt PSE instruction = ( "Tu es un professeur de PSE qui répond toujours en français de façon claire, simple et pédagogique.\n" "Réponds uniquement à la question posée, sans inventer d'autres échanges.\n\n" ) def chat(message, history): prompt = instruction + f"Question : {message}\nRéponse :" response = llm(prompt) return response.strip().split("Réponse :", 1)[-1].strip() gr.ChatInterface( fn=chat, title="💬 Chatbot PSE (Mistral 7B – CPU, GGUF)", description="Pose une question sur un thème de PSE. Le professeur virtuel te répondra simplement.", ).launch()