CoolFace
Apppublic

vsazevedo/teste

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py65 linesDownload Raw Back to root
1import os2import gradio as gr3from transformers import pipeline4 5# Ajuste aqui (ou use a variável de ambiente SYSTEM_PROMPT no Space)6SYSTEM_PROMPT = os.getenv(7    "SYSTEM_PROMPT",8    "Você é uma persona de IA educada, útil e objetiva. Responda sempre em português do Brasil, com clareza e exemplos quando fizer sentido."9)10 11# Modelo leve que roda no CPU free do HF Spaces12MODEL_ID = os.getenv("MODEL_ID", "google/flan-t5-base")13 14generator = pipeline(15    task="text2text-generation",16    model=MODEL_ID17)18 19def build_prompt(user_msg, history):20    # Constrói um prompt simples que “lembra” do histórico21    history_txt = ""22    for u, a in history:23        history_txt += f"Usuário: {u}\nAssistente: {a}\n"24    prompt = (25        f"{SYSTEM_PROMPT}\n\n"26        f"Histórico da conversa:\n{history_txt}\n"27        f"Usuário: {user_msg}\n"28        f"Assistente:"29    )30    return prompt31 32def respond(user_msg, history):33    if history is None:34        history = []35 36    prompt = build_prompt(user_msg, history)37    output = generator(prompt, max_new_tokens=256, do_sample=True, temperature=0.7)[0]["generated_text"]38 39    # Pega somente o que vem depois de "Assistente:" (caso o modelo replique o prompt)40    if "Assistente:" in output:41        bot_msg = output.split("Assistente:", 1)[-1].strip()42    else:43        bot_msg = output.strip()44 45    history.append((user_msg, bot_msg))46    return "", history47 48with gr.Blocks(title="Minha Persona IA") as demo:49    gr.Markdown("# 🤖 Minha Persona IA (gratuita)\nConverse com a persona definida no prompt do sistema.")50 51    chatbot = gr.Chatbot(height=450)52    txt = gr.Textbox(placeholder="Digite sua mensagem e pressione Enter...", label="Mensagem")53    state = gr.State([])54 55    txt.submit(respond, [txt, state], [txt, chatbot])56 57    with gr.Row():58        clear_btn = gr.Button("Limpar conversa")59 60    def clear():61        return "", []62 63    clear_btn.click(clear, outputs=[txt, chatbot], queue=False)64 65demo.launch()