PessegoPRO / app.py
Tedi-group's picture
Update app.py
5f92534 verified
Raw History Blame Contribute Delete
2.17 kB
import gradio as gr
from huggingface_hub import InferenceClient
import os
# 1. Conecta com a API de inferência de forma segura
# Tenta pegar qualquer variação de token injetada pelo próprio Hugging Face
cat_token = os.environ.get("HF_TOKEN") or os.environ.get("HF_ACCESS_TOKEN") or True
# Inicializa o cliente com o provedor correto e o token validado
client = InferenceClient(provider="hf-inference", token=cat_token)
def responder_chat(mensagem, historico):
# Inicializa a lista com as diretrizes do sistema
mensagens = [{"role": "system", "content": "Você é um assistente de IA prestativo e amigável em português."}]
# Processa o histórico no formato compatível com o Gradio
for user_msg, bot_msg in historico:
if user_msg:
mensagens.append({"role": "user", "content": user_msg})
if bot_msg:
mensagens.append({"role": "assistant", "content": bot_msg})
# Adiciona a mensagem atual digitada pelo usuário
mensagens.append({"role": "user", "content": mensagem})
resposta_completa = ""
try:
# Faz a chamada para o modelo Qwen de 7B (mais estável na API gratuita)
for resposta_stream in client.chat_completion(
model="Qwen/Qwen2.5-7B-Instruct",
messages=mensagens,
max_tokens=512,
stream=True,
temperature=0.7
):
# Acessa com segurança o conteúdo do token no stream de dados
token = resposta_stream.choices[0].delta.content
if token:
resposta_completa += token
yield resposta_completa # Envia o texto aos poucos para a tela
except Exception as e:
yield f"Erro na API do Hugging Face: {str(e)}\n\n💡 Dica: Verifique se o seu Space está configurado com permissões públicas de leitura nas configurações."
# 2. Configura a interface de chat do Gradio
demo = gr.ChatInterface(
fn=responder_chat,
title="Meu Chatbot Avançado com Qwen 2.5",
description="Interface de Inteligência Artificial conversacional rodando na nuvem."
)
if __name__ == "__main__":
demo.launch()