| import gradio as gr |
| from huggingface_hub import InferenceClient |
|
|
| |
| |
| model_name = "Qwen/Qwen2.5-7B-Instruct" |
| client = InferenceClient(model_name) |
|
|
| |
| 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): |
| |
| messages = [{"role": "system", "content": SYSTEM_PROMPT}] |
| |
| |
| for msg in history: |
| messages.append(msg) |
| |
| |
| messages.append({"role": "user", "content": message}) |
|
|
| response = "" |
| try: |
| |
| 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)})" |
|
|
| |
| 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() |