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. 适配器

  1. 适配器类型:

    • Storage adapters - 存储适配器,机器人通过该适配器接口访问数据库系统。
    • Input adapters - 输入适配器,机器人通过该适配器的方法获取输入数据。
    • Output adapters - 输出适配器,机器人通过该适配器的方法返回回复数据。
    • Logic adapters - 逻辑适配器,定义了机器人处理输入数据到给出回复得逻辑。
  2. 适配器访问机器人实例

    每个适配器都有一个属性:chatbot,适配器在初始化的时候会被赋值,使得每个适配器访问其他适配器成为可能。每个适配器访问机器人实例的引用为:self.chatbot,引用其他适配器方式为:

    • self.chatbot.storage,获取存储适配器
    • self.chatbot.input,获取输入适配器
    • self.chatbot.output,获取输出适配器
    • self.chatbot.logic,获取逻辑适配器列表
posted @ 2017-11-05 15:28  zhuhc  阅读(898)  评论(0编辑  收藏  举报