Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| # 1. Carrega o modelo (Isso já estava funcionando) | |
| pipe = pipeline("text-generation", model="Qwen/Qwen2.5-0.5B-Instruct", device_map="cpu") | |
| def predict(message, history): | |
| """ | |
| Com type="messages", o 'history' já vem no formato correto: | |
| [{'role': 'user', 'content': 'oi'}, {'role': 'assistant', 'content': 'olá'}] | |
| """ | |
| # Criamos a lista de mensagens adicionando a mensagem atual ao histórico | |
| # O history vem do Gradio, o message é o input atual | |
| if message is None: | |
| message = "" | |
| print(f"DEBUG INPUT: message={repr(message)}") | |
| print(f"DEBUG INPUT: history={repr(history)}") | |
| new_messages = history + [{"role": "user", "content": message}] | |
| # Sanitize messages to ensure no None content | |
| messages = [] | |
| for msg in new_messages: | |
| content = msg.get("content") | |
| if content is None: | |
| content = "" | |
| messages.append({"role": msg.get("role"), "content": content}) | |
| print(f"DEBUG FINAL MESSAGES: {messages}") | |
| # Gera a resposta | |
| results = pipe(messages, max_new_tokens=512) | |
| # Retorna apenas o texto novo gerado | |
| return results[0]['generated_text'][-1]['content'] | |
| # 2. Configuração da Interface | |
| # Adicionamos type="messages" para corrigir o aviso e padronizar com o OpenClaw/MCP | |
| demo = gr.ChatInterface( | |
| fn=predict, | |
| type="messages", # <--- ESTA LINHA CORRIGE O AVISO E MUDA O FORMATO DO HISTÓRICO | |
| title="Qwen Agent Node", | |
| description="Bot rodando Qwen 2.5 via CPU no Hugging Face." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(ssr_mode=False) |