Я сделал простой чатбот, который может отвечать на статические запросы. Пока он работает нормально. Но проблема в том, что когда запрашивается запрос, которого нет в обучающих данных, он просто выбирает любое случайное утверждение. Я хочу, чтобы Chatbot ответил на какое-то заявление по умолчанию, например: «Я не подготовлен для этого», «Я не знаю» ... и т. Д. мой код выглядит следующим образом:
bot = ChatBot(
"ChatBot",
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch'
},
{
'import_path': 'chatterbot.logic.BestMatch',
'threshold': 0.65,
'default_response': 'default_value'
}
],
response_selection_method=get_most_frequent_response,
input_adapter="chatterbot.input.VariableInputTypeAdapter",
output_adapter="chatterbot.output.OutputAdapter",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
database="db.sqlite3"
)
def get_bot_response():
userText = request.args.get('msg')
botReply = str(bot.get_response(userText))
if botReply is "default_value":
botReply = str(bot.get_response('default_response'))
в моих тренировочных данных, я установил ответы для «default_response» как «Я не знаю», «Мне нужно подумать об этом» и т. д.
Но это не работает, так как botReply уже анализируется перед переходом к оператору if.
Может кто-нибудь помочь с тем, как получить default_response, а не давать Случайные ответы?