|
|
import gradio as gr |
|
|
from huggingface_hub import hf_hub_download |
|
|
from llama_cpp import Llama |
|
|
|
|
|
|
|
|
model_path = hf_hub_download( |
|
|
repo_id="google/gemma-2b-it-GGUF", |
|
|
filename="gemma-2b-it-Q4_K_M.gguf", |
|
|
cache_dir="./model_cache" |
|
|
) |
|
|
|
|
|
|
|
|
llm = Llama(model_path=model_path, n_ctx=2048, n_threads=2) |
|
|
|
|
|
def chatbot(message, history): |
|
|
prompt = ( |
|
|
"Tu es un coach santé virtuel et empathique. " |
|
|
"Ton rôle est de créer un planning quotidien personnalisé pour aider " |
|
|
"l'utilisateur à rester en bonne santé. " |
|
|
"Le planning doit inclure : horaires de repas, suggestions alimentaires équilibrées, " |
|
|
"exercices adaptés, conseils de sommeil et hydratation. " |
|
|
"Ne fais pas de diagnostic médical et précise toujours que l'utilisateur doit consulter " |
|
|
"un médecin pour tout problème grave. Réponds avec bienveillance et clarté.\n\n" |
|
|
) |
|
|
|
|
|
for human, bot in history: |
|
|
prompt += f"Utilisateur: {human}\nAssistant: {bot}\n" |
|
|
prompt += f"Utilisateur: {message}\nAssistant:" |
|
|
|
|
|
output = llm(prompt, max_tokens=300) |
|
|
return output["choices"][0]["text"] |
|
|
|
|
|
gr.ChatInterface(chatbot, title="Coach Santé Virtuel").launch() |