ChatterBot - 02 ChatBot类 机器人
1. ChatBot 类
class chatterbot.ChatBot
(name, ***kwargs*)
参数:
name ([str]) – 机器人名称,
必填
-无默认值.preprocessors ([str]) – 前期处理器列表,[chatterbot.preprocessors.clean_whitespace].
storage_adapter ([str]) – 存储适配器,chatterbot.storage.SQLStorageAdapter.
logic_adapters ([list]) – 逻辑适配器列表,[chatterbot.logic.BestMatch].
input_adapter ([str]) – 输入适配器,chatterbot.input.VariableInputTypeAdapter.
output_adapter ([str]) – 输出适配器,chatterbot.output.OutputAdapter.
trainer ([str]) – 训练师,chatterbot.trainers.Trainer.
filters ([list]) – 过滤器列表,tuple().
logger ([logging.Logger]) – 日志对象,logging.getLogger(__name__).
read_only ([bool]) – 是否只读,False.
classmethod
from_config
(config_file_path)
通过 json
配置文件创建ChatBot实例
generate_response
(input_statement, session_id)
根据给定的输入语句,返回一个会话回复
get_response
(input_item, session_id=None)
根据输入返回机器人回复, 返回类型 [Statement]
initialize
()
初始化
learn_response
(statement, previous_statement)
学习
set_trainer
(training_class, ***kwargs*)
设置训练师
train
()
代理方法,调用训练师的训练方法
参数示例:
ChatBot(
'Leander Jenkins',
storage_adapter={
'import_path': 'my.storage.AdapterClass',
'database_name': 'my-database'
},
logic_adapters=[
{
'import_path': 'my.logic.AdapterClass1',
'statement_comparison_function': 'chatterbot.comparisons.levenshtein_distance'
'response_selection_method': 'chatterbot.response_selection.get_first_response'
},
{
'import_path': 'my.logic.AdapterClass2',
'statement_comparison_function': 'my.custom.comparison_function'
'response_selection_method': 'my.custom.selection_method'
}
],
input_adapter={
'import_path': 'my.input.AdapterClass',
'api_key': '0000-1111-2222-3333-DDDD'
},
output_adapter={
'import_path': 'my.output.AdapterClass',
'api_key': '0000-1111-2222-3333-DDDD'
}
)
2. 设置日志级别
import logging
logging.basicConfig(level=logging.INFO)
ChatBot(
# ...
)
可用级别:CRITICAL
, ERROR
, WARNING
, INFO
, DEBUG
, NOTSET
3. 适配器
-
适配器类型:
- Storage adapters - 存储适配器,机器人通过该适配器接口访问数据库系统。
- Input adapters - 输入适配器,机器人通过该适配器的方法获取输入数据。
- Output adapters - 输出适配器,机器人通过该适配器的方法返回回复数据。
- Logic adapters - 逻辑适配器,定义了机器人处理输入数据到给出回复得逻辑。
-
适配器访问机器人实例
每个适配器都有一个属性:
chatbot
,适配器在初始化的时候会被赋值,使得每个适配器访问其他适配器成为可能。每个适配器访问机器人实例的引用为:self.chatbot
,引用其他适配器方式为:self.chatbot.storage
,获取存储适配器self.chatbot.input
,获取输入适配器self.chatbot.output
,获取输出适配器self.chatbot.logic
,获取逻辑适配器列表