gpt4 book ai didi

python - 如何将 CHATBOT 未回答的问题存储在文本文件中

转载 作者:行者123 更新时间:2023-12-01 06:28:14 25 4
gpt4 key购买 nike

我是python的新手,正在使用chatterbot库构建一个聊天机器人,我想存储那些聊天机器人无法回答的用户提出的问题(我的意思是将未回答的问题存储在文本文件或数据库中,以便我们稍后可以放置他们的答案。这是chatterbot构造函数的代码

self.chatbot = ChatBot(
"GUI Bot",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
logic_adapters=[{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': 'I am sorry, but I do not understand.',
'maximum_similarity_threshold': 0.75
} ]
)

这里是类的完整代码

class TkinterGUIExample(tk.Tk):

def __init__(self, *args, **kwargs):
"""
Create & set window variables.
"""
tk.Tk.__init__(self, *args, **kwargs)

self.chatbot = ChatBot(
"GUI Bot",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
logic_adapters=[{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': 'I am sorry, but I do not understand.',
'maximum_similarity_threshold': 0.75
} ]
)


for files in os.listdir('C:/Users/HP/Desktop/FYP BOT/training_data/'):
con=open('C:/Users/HP/Desktop/FYP BOT/training_data/'+files,'r').readlines()
trainer = ListTrainer(self.chatbot)
trainer.train(con)
self.title("Chatterbot")

self.initialize()

最佳答案

必须有一种方法可以知道聊天机器人中使用了哪个逻辑适配器,或者是否没有使用它们。我能想到的最简单的方法是使用 default_response

设置default_response = '-2E-' 或其他内容。接下来,添加 if else 条件以查看 str(bot.get_response(userText)) 的值是否等于 -2E-。如果它们匹配,则意味着未使用任何逻辑适配器,并且未找到与用户输入匹配的内容。

未使用逻辑适配器意味着它是一个没有答案的输入。您现在可以将存储在 userText 中的用户输入附加到文本文件中。

代码:

## initialize chatter bot
bot = ChatBot(
'robot',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
preprocessors=[
'chatterbot.preprocessors.clean_whitespace',
],
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': '-2E-',
'maximum_similarity_threshold': 0.90,
'statement_comparison_function': chatterbot.comparisons.levenshtein_distance,
'response_selection_method': chatterbot.response_selection.get_first_response
},
'chatterbot.logic.MathematicalEvaluation'
],
database_uri='sqlite:///database.db',
read_only=True
)

下面是在代码中使用的示例逻辑。您应该根据自己的需求修改此逻辑。

## Open a file to write unknown user inputs
with open("unanswered.txt", "a") as f:

## Loop and get user input
## Check to see if none of the logic adapters was used
if str(bot.get_response(userText)) == "-2E-":
f.write(userText)
return "Sorry, I do not understand."

关于python - 如何将 CHATBOT 未回答的问题存储在文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60024786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com