Files
ChatBot/Program.cs
T

132 lines
4.9 KiB
C#

Dictionary<string, string> dialogs = new()
{
{ "pedido", "Qual é o problema com o pedido?" },
{
"atraso",
"Certo, o pedido está em atraso...\nHá alguma ocorrência de atraso com esse número de pedido?"
},
{
"falta",
"Hum... houve falta nesse pedido. Certo, esse produto foi faturado na nota fiscal?"
},
{
"resposta atraso sim",
"Verifique as tarefas desta ocorrência e veja se alguma delas está dentro do prazo ou se estão todas encerradas. Se estiverem, encaminhe o caso para o suporte e aguarde a resposta."
},
{
"resposta atraso nao",
"Verifique com o cliente se ele ainda deseja receber o pedido.\nSe sim, abra uma ocorrência de atraso na entrega, descrevendo que o cliente deseja receber o pedido. Informe o SLA e o número de protocolo ao cliente.\nTabulação \nPrmeira categoria:Transporte \nSegunda categoria:Atraso na entrega \nMotivo:Pedido não entregue"
},
{
"resposta falta sim",
"Abra uma ocorrência de falta de produto:\nCategoria: Pós-compra\nSubcategoria: Falta\nMotivo: Produto faturado."
},
{ "resposta falta nao", "Então o produto não consta na nota fiscal? Ou ele foi cortado?" },
{
"resposta nao consta",
"Se o produto não consta na nota fiscal, então ele não foi pedido. Não é possível abrir uma ocorrência de falta de algo que não foi comprado."
},
{
"resposta cortado",
"Certo. Abra uma ocorrência de falta de produto:\nCategoria: Pós-compra\nSubcategoria: Falta\nMotivo: Produto não faturado."
},
{ "Cadastro", "Cliente está com problema no cadastro? Qual a mensagem de erro?" },
{
"Cadastro, CPF já cadastrado",
"Quando ocorre esse erro Você tem quem reprocessar no GPP \nCaso não apareceça em 5 minutos \nPrencha esse formulário \nMatricula: \nCPF: \n Nome Completo: \nData de nascimento: \n Cep: \nEndereço completo: \nE-mail: \nTelefone de contato:"
},
{
"help",
"Voce pode me perguntar sobre Pedidos, sobre o que fazer quando tem Atraso, se esta em Falta ou ate mesmo sobre o cadastro do cliente, caso deseje finalizar nossa conversa digite 'sair' para encerrar."
},
};
Dictionary<string, string> otherDialogs = new()
{
{ "erro", "Desculpe, não entendi. Pode reformular?" },
{ "farewells", "Até mais! Volte sempre que precisar. 😊" },
{ "welcome", "Olá! Meu nome é Rey. Com o que o cliente está tendo problema?" },
};
void ConsoleResponse(string texto)
{
Console.WriteLine("ChatBot: " + texto);
}
void ChatBot()
{
ConsoleResponse(otherDialogs["welcome"]);
string lastResponse = string.Empty;
string response = string.Empty;
while (true)
{
Console.Write("Você: ");
string userInput = Console.ReadLine()!;
if (userInput.Contains("sair", StringComparison.OrdinalIgnoreCase))
{
ConsoleResponse(otherDialogs["farewells"]);
break;
}
else if (lastResponse == dialogs["atraso"])
{
if (userInput.Contains("sim", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta atraso sim"];
}
else if (userInput.Contains("nao", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta atraso nao"];
}
else
{
response = otherDialogs["erro"];
}
}
else if (lastResponse == dialogs["falta"])
{
if (userInput.Contains("sim", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta falta sim"];
}
else if (userInput.Contains("nao", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta falta nao"];
}
else
{
response = otherDialogs["erro"];
}
}
else if (lastResponse == dialogs["resposta falta nao"])
{
if (userInput.Contains("sim", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta nao consta"];
}
else if (userInput.Contains("nao", StringComparison.OrdinalIgnoreCase))
{
response = dialogs["resposta cortado"];
}
else
{
response = otherDialogs["erro"];
}
}
else
{
foreach (string keyword in dialogs.Keys)
{
if (userInput.Contains(keyword, StringComparison.OrdinalIgnoreCase))
{
response = dialogs[keyword];
break;
}
else
{
response = otherDialogs["erro"];
}
}
}
ConsoleResponse(response);
lastResponse = response;
}
}
ChatBot();