|
|
import gradio as gr |
|
|
import requests, sqlite3, secrets |
|
|
|
|
|
API_URL = "https://Mauricio-100-agent-ai.hf.space/infer" |
|
|
|
|
|
|
|
|
def call_model(system_prompt, user_prompt, temperature, max_new_tokens, top_p): |
|
|
payload = { |
|
|
"input": user_prompt, |
|
|
"system_prompt": system_prompt, |
|
|
"temperature": temperature, |
|
|
"max_new_tokens": int(max_new_tokens), |
|
|
"top_p": top_p |
|
|
} |
|
|
r = requests.post(API_URL, json=payload) |
|
|
return r.json().get("generated_text", "") if r.status_code == 200 else f"[Erreur {r.status_code}]" |
|
|
|
|
|
def handle_text(system_prompt, user_prompt, temperature, max_new_tokens, top_p): |
|
|
return call_model(system_prompt, user_prompt, temperature, max_new_tokens, top_p) |
|
|
|
|
|
def handle_image(image, system_prompt, temperature, max_new_tokens, top_p): |
|
|
|
|
|
return f"[Image reçue] {image.name if image else 'aucune'}" |
|
|
|
|
|
def handle_video(video, system_prompt): |
|
|
|
|
|
return f"[Vidéo reçue] {video.name if video else 'aucune'}" |
|
|
|
|
|
def handle_web(query): |
|
|
|
|
|
return f"Résultats simulés pour la recherche: {query}" |
|
|
|
|
|
def handle_audio(audio): |
|
|
|
|
|
return f"[Audio reçu] {audio}" |
|
|
|
|
|
|
|
|
with gr.Blocks(title="⚡ GopuOS Multimodal Hub") as demo: |
|
|
gr.Markdown("## ⚡ GopuOS Multimodal Hub") |
|
|
|
|
|
with gr.Tab("💬 Texte"): |
|
|
sys_prompt = gr.Textbox(label="Prompt système") |
|
|
user_prompt = gr.Textbox(label="Texte utilisateur") |
|
|
temp = gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Température") |
|
|
max_tok = gr.Slider(50, 500, value=200, step=10, label="Max new tokens") |
|
|
top_p = gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p") |
|
|
out_text = gr.Textbox(label="Réponse") |
|
|
btn = gr.Button("Envoyer") |
|
|
btn.click(fn=handle_text, inputs=[sys_prompt, user_prompt, temp, max_tok, top_p], outputs=out_text) |
|
|
|
|
|
with gr.Tab("🖼️ Image"): |
|
|
img = gr.Image(type="file", label="Uploader une image") |
|
|
sys_prompt_img = gr.Textbox(label="Prompt système") |
|
|
out_img = gr.Textbox(label="Réponse") |
|
|
btn_img = gr.Button("Analyser") |
|
|
btn_img.click(fn=handle_image, inputs=[img, sys_prompt_img, temp, max_tok, top_p], outputs=out_img) |
|
|
|
|
|
with gr.Tab("🎥 Vidéo"): |
|
|
vid = gr.File(label="Uploader une vidéo") |
|
|
sys_prompt_vid = gr.Textbox(label="Prompt système") |
|
|
out_vid = gr.Textbox(label="Réponse") |
|
|
btn_vid = gr.Button("Analyser") |
|
|
btn_vid.click(fn=handle_video, inputs=[vid, sys_prompt_vid], outputs=out_vid) |
|
|
|
|
|
with gr.Tab("🌐 Web"): |
|
|
query = gr.Textbox(label="Requête de recherche") |
|
|
out_web = gr.Textbox(label="Résultats") |
|
|
btn_web = gr.Button("Rechercher") |
|
|
btn_web.click(fn=handle_web, inputs=query, outputs=out_web) |
|
|
|
|
|
with gr.Tab("🎙️ Voix"): |
|
|
audio = gr.Audio(type="filepath", label="Uploader un fichier audio") |
|
|
out_audio = gr.Textbox(label="Résultat") |
|
|
btn_audio = gr.Button("Transcrire / Répondre") |
|
|
btn_audio.click(fn=handle_audio, inputs=audio, outputs=out_audio) |
|
|
|
|
|
|
|
|
app = demo |
|
|
|