from transformers import AutoModelForCausalLM, AutoTokenizer import torch tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium") model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium") import pandas as pd df_status_pedidos = pd.DataFrame({ "numero_pedido": [12345, 67890, 54321], "status": ["Em processamento", "Enviado", "Entregue"] }) def verificar_status_pedido(numero_pedido): try: numero_pedido = int(numero_pedido) print(f"Procurando o status para o pedido número: {numero_pedido}") if numero_pedido in df_status_pedidos["numero_pedido"].values: status = df_status_pedidos[df_status_pedidos["numero_pedido"] == numero_pedido]["status"].iloc[0] return f"O status do pedido {numero_pedido} é: {status}" else: return "Número do pedido não encontrado. Verifique e tente novamente." except ValueError: return "Número do pedido inválido. Insira um valor numérico." palavras_chave_status = ["order", "order status", "status of my order", "check my order", "track my order", "order update"] esperando_numero_pedido = False def chatbot_response(usuario): global esperando_numero_pedido if usuario.lower() in ["quit", "exit", "bye", "stop"]: return "Goodbye!" if esperando_numero_pedido: resposta = verificar_status_pedido(usuario) esperando_numero_pedido = False return resposta if any(keyword in usuario.lower() for keyword in palavras_chave_status): esperando_numero_pedido = True return "Por favor, forneça o número do pedido." historico_chat = None novo_usuario_input_ids = tokenizer.encode(usuario + tokenizer.eos_token, return_tensors='pt') if historico_chat is not None: bot_input_ids = torch.cat([historico_chat, novo_usuario_input_ids], dim=-1) else: bot_input_ids = novo_usuario_input_ids historico_chat = model.generate( bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id ) resposta = tokenizer.decode(historico_chat[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True) return resposta import gradio as gr app = gr.Interface( fn=chatbot_response, inputs="text", outputs="text", title="Chatbot com Verificação de Status", description="Digite sua mensagem para conversar com o bot. Pergunte sobre o status do pedido ou faça outra pergunta." ) if __name__ == "__main__": app.launch()