| import gradio as gr | |
| html_code = """ | |
| <h1 style="text-align:center;color:#fff;">GP4_TO_V1 – IA Ultra Light</h1> | |
| <p style="text-align:center;color:#bbb;">IA légère qui répond sans API ni token.</p> | |
| <div id="chatbox" style="height:300px;overflow-y:auto;border:1px solid #444; | |
| padding:10px;border-radius:10px;background:#111;color:white;"> | |
| </div> | |
| <input id="userInput" placeholder="Écris ici..." | |
| style="width:100%;padding:10px;border-radius:10px;margin-top:10px; | |
| background:#222;color:white;border:1px solid #555;"> | |
| <button id="sendBtn" | |
| style="margin-top:10px;width:100%;padding:10px;background:#5b3df5; | |
| border:none;border-radius:10px;color:white;">Envoyer</button> | |
| <script src="https://cdn.jsdelivr.net/npm/@xenova/transformers/dist/transformers.min.js"></script> | |
| <script> | |
| async function loadModel() { | |
| const { pipeline } = window.transformers; | |
| window.generator = await pipeline("text-generation", "Xenova/gpt2"); | |
| } | |
| loadModel(); | |
| async function sendMessage() { | |
| const box = document.getElementById("chatbox"); | |
| const input = document.getElementById("userInput"); | |
| let text = input.value.trim(); | |
| if (!text) return; | |
| box.innerHTML += "<div><b>Toi :</b> " + text + "</div>"; | |
| input.value = ""; | |
| const prompt = | |
| "GP4_TO_V1, une IA gentille et simple. Réponds en français : " + text; | |
| const output = await window.generator(prompt, { | |
| max_new_tokens: 50, | |
| temperature: 0.9 | |
| }); | |
| let reply = output[0].generated_text.replace(prompt, "").trim(); | |
| box.innerHTML += | |
| "<div style='margin-top:5px;color:#5b3df5;'><b>GP4_TO_V1 :</b> " | |
| + reply + "</div>"; | |
| box.scrollTop = box.scrollHeight; | |
| } | |
| document.addEventListener("DOMContentLoaded", function() { | |
| document.getElementById("sendBtn").onclick = sendMessage; | |
| }); | |
| </script> | |
| """ | |
| with gr.Blocks(css="body { background: #000; }") as demo: | |
| gr.HTML(html_code) | |
| demo.launch() |