Chatterbot指定MongoDB不生效 默认读写chatterbot_database问题求助
问题原因排查
- 未启用MongoDB存储适配器
ChatterBot默认使用SQLite作为存储后端,你代码中storage_adapter="chatterbot.storage.MongoDatabaseAdapter"配置行被注释,程序不会调用MongoDB相关逻辑,你填写的database_uri参数完全不生效,因此会默认读写chatterbot_database。 - 配置参数格式错误
你现有代码中database_uri参数的缩进不符合语法要求,不属于ChatBot初始化的有效传参,相当于没有传递该配置。 - 只读模式阻止数据写入
你设置了bot.read_only=True,该模式下ChatterBot会禁止所有写入存储的操作,即使数据库配置正确,训练数据也无法写入库中。
修复方法
将ChatBot初始化部分替换为以下代码即可:
bot = ChatBot( "ChatBot", logic_adapters=[ { 'import_path': 'chatterbot.logic.BestMatch' }, { 'import_path': 'chatterbot.logic.LowConfidenceAdapter', 'threshold': confidenceLevel, 'default_response': 'IDKresponse' } ], response_selection_method=get_random_response, storage_adapter="chatterbot.storage.MongoDatabaseAdapter", database_uri='mongodb://localhost:27017/ora_database' )
训练时需要先将bot.read_only=True注释或者改为False,训练完成后如果不需要机器人在对话过程中自主学习,再改回True即可。
内容的提问来源于stack exchange,提问作者Angie
相关产品推荐
相关产品推荐

