You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手开发ChatterBot遇两类错误,寻求解决方案

解决ChatterBot在高版本Python中的兼容性错误及代码修正

核心问题:版本兼容性

ChatterBot的最新稳定版本(1.0.4)停更于2019年,和Python 3.8+存在API适配问题,这是你遇到time.clock和collections.Hashable报错的根本原因。

具体错误修复方案

1. 快速解决:降级Python版本

直接切换到Python 3.7版本,该版本完全兼容旧版ChatterBot,无需修改任何源码或代码,适合新手快速入门。

2. 适配高版本Python(不降级)

如果坚持用Python 3.8+,需要手动修改ChatterBot的源码:

  • 修复time.clock报错:找到ChatterBot安装目录下的chatterbot/utils.py文件,将所有time.clock()调用替换为time.perf_counter()或time.time()。
  • 修复collections.Hashable报错:搜索ChatterBot所有源码文件,把from collections import Hashable改为from collections.abc import Hashable;如果是直接使用collections.Hashable的代码,替换为collections.abc.Hashable。

代码中的语法错误修正

你的代码存在语法和逻辑冗余问题,修正后如下:

import time
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

# 临时适配Python 3.8+的time.clock问题
time.clock = time.time

# 只创建一次完整配置的ChatBot实例,避免重复初始化
bot = ChatBot(
    'Bob',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///database.sqlite3',
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.MathematicalEvaluation',
        'chatterbot.logic.TimeLogicAdapter'
    ]
)

# 训练英文语料库,修复原代码的单引号缺失错误
trainer = ChatterBotCorpusTrainer(bot)
trainer.train('chatterbot.corpus.english')

# 测试初始响应
response = bot.get_response('Greetings.')
print("Bot Response:", response)

name = input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
    request = input(f"{name}: ")
    # 统一转为小写判断,简化逻辑
    if request.lower() == 'bye':
        print('Bot: Bye')
        break
    else:
        response = bot.get_response(request)
        print('Bot:', response)

自定义语料库使用说明

创建自定义语料库时,遵循ChatterBot的YAML格式即可,例如创建custom_corpus.yml:

categories:
- custom_greetings
conversations:
- - 你好
  - 嗨,很高兴认识你!
- - 你叫什么名字?
  - 我是Bob,你的专属聊天机器人~

训练时指定文件路径:

trainer.train('./custom_corpus.yml')

只要完成了前面的版本兼容修复,自定义语料库不会再出现之前的Hashable错误。

内容的提问来源于stack exchange,提问作者C-IDC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:46:05