コード例 #1
0
    def __init__(self, **kwargs):
        super(LogicAdapter, self).__init__(**kwargs)
        from chatterbot.conversation.comparisons import levenshtein_distance
        from chatterbot.conversation.response_selection import get_first_response

        if 'tie_breaking_method' in kwargs:
            raise DeprecationWarning(
                'The parameter "tie_breaking_method" has been removed. ' +
                'Instead, pass a callable to "response_selection_method". ' +
                'See documentation for details: ' +
                'http://chatterbot.readthedocs.io/en/latest/adapters/response_selection.html#setting-the-response-selection-method'
            )

        # Import string module parameters
        if 'statement_comparison_function' in kwargs:
            import_path = kwargs.get('statement_comparison_function')
            if isinstance(import_path, str):
                kwargs['statement_comparison_function'] = import_module(import_path)

        if 'response_selection_method' in kwargs:
            import_path = kwargs.get('response_selection_method')
            if isinstance(import_path, str):
                kwargs['response_selection_method'] = import_module(import_path)

        # By default, compare statements using Levenshtein distance
        self.compare_statements = kwargs.get(
            'statement_comparison_function',
            levenshtein_distance
        )

        # By default, select the first available response
        self.select_response = kwargs.get(
            'response_selection_method',
            get_first_response
        )
コード例 #2
0
    def __init__(self, **kwargs):
        super(LogicAdapter, self).__init__(**kwargs)
        from chatterbot.conversation.comparisons import levenshtein_distance
        from chatterbot.conversation.response_selection import get_first_response

        if 'tie_breaking_method' in kwargs:
            raise DeprecationWarning(
                'The parameter "tie_breaking_method" has been removed. ' +
                'Instead, pass a callable to "response_selection_method". ' +
                'See documentation for details: ' +
                'http://chatterbot.readthedocs.io/en/latest/adapters/response_selection.html#setting-the-response-selection-method'
            )

        # Import string module parameters
        if 'statement_comparison_function' in kwargs:
            import_path = kwargs.get('statement_comparison_function')
            if isinstance(import_path, str):
                kwargs['statement_comparison_function'] = import_module(
                    import_path)

        if 'response_selection_method' in kwargs:
            import_path = kwargs.get('response_selection_method')
            if isinstance(import_path, str):
                kwargs['response_selection_method'] = import_module(
                    import_path)

        # By default, compare statements using Levenshtein distance
        self.compare_statements = kwargs.get('statement_comparison_function',
                                             levenshtein_distance)

        # By default, select the first available response
        self.select_response = kwargs.get('response_selection_method',
                                          get_first_response)
コード例 #3
0
    def __init__(self, **kwargs):
        super(ActionAdapter, self).__init__(**kwargs)
        delegate_adapter_path = kwargs.get("delegate_adapter")
        self.delegate_adapter = import_module(delegate_adapter_path)(
            **kwargs) or TerminalAdapter(**kwargs)

        self.action_map = kwargs.get("action_map", {})
コード例 #4
0
ファイル: adaptation.py プロジェクト: QuiCM/ChatterBot
    def add_adapter(self, name, adapter):
        NewAdapter = import_module(adapter)

        adapter = NewAdapter(self.context, **self.kwargs)
        setattr(self.context, name, adapter)

        return adapter
コード例 #5
0
ファイル: storage.py プロジェクト: Pholey/ChatterBot
    def __init__(self, adapter, database_name):

        if (type(adapter) == str):
            StorageAdapter = import_module(adapter)
        else:
            StorageAdapter = adapter

        self.storage_adapter = StorageAdapter(database_name)

        self.recent_statements = []
コード例 #6
0
 def __init__(self, name, **kwargs):
     kwargs['input_adapter'] = (
         'chatterbot.adapters.input.VariableInputTypeAdapter')
     kwargs['output_adapter'] = (
         'chatterbot.adapters.output.OutputFormatAdapter')
     kwargs['output_format'] = 'text'
     connector_name = kwargs.get('connector', 'connectors.CurlConnector')
     super(FlaskChatBot, self).__init__(name, **kwargs)
     self.host = kwargs.get("host", "127.0.0.1")
     self.port = kwargs.get("port", 5000)
     self.app = Flask(__name__)
     ConnectorClass = import_module(connector_name)
     self.connector = ConnectorClass(self)
コード例 #7
0
ファイル: adaptation.py プロジェクト: joab40/ChatterBot
    def add_adapter(self, adapter, **kwargs):
        NewAdapter = import_module(adapter)

        adapter = NewAdapter(**kwargs)

        if issubclass(NewAdapter, StorageAdapter):
            self.storage_adapters.append(adapter)
        elif issubclass(NewAdapter, LogicAdapter):
            self.logic.add_adapter(adapter)
        elif issubclass(NewAdapter, IOAdapter):
            self.io_adapters.append(adapter)
        else:
            raise UnknownAdapterTypeException()
コード例 #8
0
    def process_response(self, statement):
        text = statement.text
        if not text:
            return self.delegate_adapter.process_response(statement)

        tokens = text.split()
        for token in tokens:
            if token[0] == "{" and token[-1] == "}":
                action_token = token[1:-1]
                action_executor_s = self.action_map.get(action_token)
                if action_executor_s:
                    action_executor = import_module(action_executor_s)
                    token_response = action_executor()
                    text = text.replace(token, token_response)

        return self.delegate_adapter.process_response(Statement(text))
コード例 #9
0
ファイル: utils.py プロジェクト: hostintruder/ChatterBot
def load_corpus(corpus_path):
    """
    Return the data contained within a specified corpus.
    """
    from chatterbot.utils.module_loading import import_module
    from types import ModuleType

    corpus = import_module(corpus_path)

    if isinstance(corpus, ModuleType):
        corpora = []
        for module in corpus.modules:
            for key in list(module.keys()):
                corpora.append(module[key])
        return corpora

    return [corpus]
コード例 #10
0
 def __init__(self, name, **kwargs):
     kwargs['input_adapter'] = (
         'chatterbot.adapters.input.VariableInputTypeAdapter')
     kwargs['output_adapter'] = (
         'chatterbot.adapters.output.OutputFormatAdapter')
     kwargs['output_format'] = 'text'
     connector_name = kwargs.get(
         'connector',
         'connectors.CurlConnector'
     )
     super(FlaskChatBot, self).__init__(name, **kwargs)
     self.host = kwargs.get(
         "host",
         "127.0.0.1"
     )
     self.port = kwargs.get(
         "port",
         5000
     )
     self.app = Flask(__name__)
     ConnectorClass = import_module(connector_name)
     self.connector = ConnectorClass(self)
コード例 #11
0
 def test_import_module(self):
     datetime = import_module('datetime.datetime')
     self.assertTrue(hasattr(datetime, 'now'))
コード例 #12
0
ファイル: test_utils.py プロジェクト: Jonathan1024/ChatterBot
 def test_import_module(self):
     datetime = import_module("datetime.datetime")
     self.assertTrue(hasattr(datetime, 'now'))
コード例 #13
0
ファイル: storage.py プロジェクト: kartik71/ChatterBot
    def __init__(self, adapter, database_name):

        StorageAdapter = import_module(adapter)
        self.storage_adapter = StorageAdapter(database_name)

        self.recent_statements = []
コード例 #14
0
    def __init__(self, adapter, database_name):

        StorageAdapter = import_module(adapter)
        self.storage_adapter = StorageAdapter(database_name)

        self.recent_statements = []