Korzystam z zestawu SDK programu budującego boty MS.js. Przed jedną z ostatnich aktualizacji, gdy próba została ponowiona, wysyłał do użytkownika ten sam tekst wiadomości, co monit o ponowienie.
Jednak teraz wysyła domyślny tekstkomunikat w systemie, który brzmi: „Nie rozumiem. Spróbuj ponownie”. Chcę jednak, aby ponawianie prób było zawsze takie samo jak w oryginalnej wiadomości i jeśli to możliwe, chcę zastosować to globalnie, co oznacza, że nie chcę dostosowywać ponów próbę dla każdego monitu, który wysyłam do użytkownika.
Rozglądałem się, ale nie mogłem znaleźć sposobu.
Dzięki!
Odpowiedzi:
4 dla odpowiedzi № 1Możesz zmodyfikować podpowiedzi, aby automatycznie ustawiać podpowiedzi jako monit o ponowienie. The Prompts
berło pokazuje, w jaki sposób argumenty są przekazywane do bazy Prompt
klasy, abyśmy mogli zmodyfikować to zachowanie, uzyskując dostęp do metody w Prompts
.
Oto przykład, jak to zrobić Prompts.confirm
const promptPrefix = "BotBuilder:prompt-";
bot.dialog("/", [
(session) => {
builder.Prompts.confirm(session, "Say yes or no");
},
(session, args) => {
session.endConversation("You said: " + session.message.text);
}
]);
builder.Prompts.confirm = (session, prompt, options) => {
var args = options || {};
args.prompt = prompt || args.prompt;
// If options.retryPrompt was passed in use this, otherwise use prompt
args.retryPrompt = args.retryPrompt || args.prompt;
session.beginDialog(promptPrefix + "confirm", args);
};
Zmodyfikowany Prompts.confirm w akcji:
1 dla odpowiedzi nr 2
Jedną z opcji jest wysłanie monitu ponownej próby jako opcji do monitu. Na przykład:
builder.Prompts.number(session, "What"s the number?", {
retryPrompt: "What"s the number?"
});
Ale będziesz musiał to skonfigurować przy każdym monicie.