import gradio as gr from huggingface_hub import InferenceClient # --- CONFIGURATION DU MODÈLE HUGGING FACE --- # Qwen 2.5 est ultra-performant et stable sur HF model_name = "Qwen/Qwen2.5-7B-Instruct" client = InferenceClient(model_name) # --- LE CERVEAU D'ILA LIKA (VERSION EXPERT COMPLÈTE) --- SYSTEM_PROMPT = """ Tu es "Ila Lika", l'IA ultime pour l'ingénierie musicale sur Suno AI. Ta mission est de transformer une idée simple en un prompt technique de haute précision. ### TES RÈGLES D'OR : 1. **Style Prompt en ANGLAIS** : Toujours (ex: "Algerian Raï, modern trap beat"). 2. **Paroles dans la langue de l'utilisateur** : (Français, Arabe, Kabyle, etc.). 3. **Technicité Maximale** : Précise toujours le BPM, les instruments clés et les effets de production (Reverb, Wide Stereo). ### STRUCTURE DE RÉPONSE OBLIGATOIRE : Tu dois répondre UNIQUEMENT avec ce format : --- 🎵 **Titre Suggéré :** [Titre] 🎹 **Style Prompt (À copier dans Suno) :** [Genre précis], [Instruments], [Vibe], [BPM], [Type de voix] 📝 **Lyrics & Structure (À copier dans Suno) :** [Intro] (Instructions instrumentales détaillées) [Verse 1] ... [Chorus] ... [Bridge] ... [Outro] [End] --- """ def respond(message, history): # Construction du message pour l'IA messages = [{"role": "system", "content": SYSTEM_PROMPT}] # Ajout de l'historique for msg in history: messages.append(msg) # Ajout du message actuel messages.append({"role": "user", "content": message}) response = "" try: # Génération via Hugging Face Inference API for message_chunk in client.chat_completion( messages, max_tokens=1500, stream=True, temperature=0.7, top_p=0.9, ): token = message_chunk.choices[0].delta.content if token: response += token yield response except Exception as e: yield f"Désolé, j'ai une petite panne de micro. Réessaie ! (Erreur : {str(e)})" # --- INTERFACE GRADIO MODERNE --- with gr.Blocks(theme=gr.themes.Soft(), css="h1 { color: #f97316; }") as demo: gr.Markdown("# ⚡ ILA LIKA v1.0") gr.Markdown("### Ton ingénieur musical expert pour Suno AI") chat_interface = gr.ChatInterface( fn=respond, type="messages", examples=[ "Générique d'émission algérienne moderne", "Une chanson de Raï mélancolique au piano", "Du Rap français agressif style Drill", "Musique de film épique pour un désert" ], cache_examples=False, ) if __name__ == "__main__": demo.launch()