Spaces:
Sleeping
Sleeping
File size: 2,169 Bytes
a734881 e8dc0d1 fee15be 5f92534 e8dc0d1 fee15be f7b7ba3 fee15be 5f92534 279575e fee15be f7b7ba3 f588f50 fee15be e8dc0d1 fee15be f7b7ba3 5f92534 f7b7ba3 5827a18 f7b7ba3 5f92534 f7b7ba3 5f92534 e8dc0d1 5f92534 fee15be 5f92534 e8dc0d1 a734881 fee15be | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 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()
|