gopuOS / app.py
Mauricio-100's picture
Update app.py
4c6e87c verified
import gradio as gr
import requests, sqlite3, secrets
API_URL = "https://Mauricio-100-agent-ai.hf.space/infer"
# --- Fonctions de base ---
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):
# Ici tu pourrais envoyer l’image à un service externe (OCR, vision, etc.)
return f"[Image reçue] {image.name if image else 'aucune'}"
def handle_video(video, system_prompt):
# Placeholder : analyse vidéo ou résumé
return f"[Vidéo reçue] {video.name if video else 'aucune'}"
def handle_web(query):
# Placeholder : appel à une API de recherche web
return f"Résultats simulés pour la recherche: {query}"
def handle_audio(audio):
# Placeholder : transcription ou TTS
return f"[Audio reçu] {audio}"
# --- Interface Gradio ---
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)
# Hugging Face Spaces attend une variable "app" ou "demo"
app = demo