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()