Esempio n. 1
0
def train_dialogue(domain_file = 'customer_domain.yml',
                    model_path = './models/dialogue',
                    training_data_file = 'stories.md'):
    '''
    This function uses the intent clasifier to build responses to sent messages

    input : 
          domain_file : containing the actions, templates , entities necessary for underdtanding the dialogue.The file
                        is located in the dialogue system
          model_path  : directory for saving trained dialogue system 
          training_data_file :  contains the story file. It is training file needed to train rasa core dialogue system   


    '''
    featurizer = MaxHistoryTrackerFeaturizer(BinarySingleStateFeaturizer(), max_history=5) # define featurizer  for learning
    # define a bot agent 
    agent = Agent(domain_file, policies = [MemoizationPolicy(), KerasPolicy(featurizer, epochs=300, batch_size=10)])
    
    # asyncio is needed for concurrent wait during training
    loop = asyncio.get_event_loop() # define asyncio
    data = loop.run_until_complete( agent.load_data(training_data_file )) # embedded data in asyncio
    
    # let agent train
    agent.train(
                data, validation=0.2)
    # persistent saving of model
    agent.persist(model_path)
    # return agent
    return agent
Esempio n. 2
0
async def test_infer():
    default_domain = Domain.load(DEFAULT_DOMAIN_PATH_WITH_SLOTS)
    print("action names: {}".format(default_domain.action_names))

    trackers = await training.load_data(DEFAULT_STORIES_FILE,
                                        default_domain,
                                        augmentation_factor=4,
                                        debug_plots=True)
    policy = KerasPolicy.load("{}/models/keras".format(prj_dir))
    for tracker in trackers:
        y_pred = policy.predict_action_probabilities(tracker, default_domain)
        index = y_pred.index(max(y_pred))
        print(default_domain.action_names[index])
Esempio n. 3
0
def train_dialogue(domain_file='domain.yml',
                   model_path='./models/dialogue',
                   training_data_file='./data/stories.md'):
    agent = Agent(domain_file, policies=[MemoizationPolicy(), KerasPolicy()])

    agent.train(training_data_file,
                max_history=3,
                epochs=300,
                batch_size=50,
                validation_split=0.2,
                augmentation_factor=50)

    agent.persist(model_path)
    return agent
Esempio n. 4
0
def run_weather_online(interpreter,
                       domain_file="weather_domain.yml",
                       training_data_file='data/stories.md'):
    agent = Agent(domain_file,
                  policies=[MemoizationPolicy(), KerasPolicy()],
                  interpreter=interpreter)

    agent.train(training_data_file,
                max_history=2,
                batch_size=50,
                epochs=200,
                max_training_samples=300)

    return agent
Esempio n. 5
0
async def test_train_keras_policy():
    default_domain = Domain.load(DEFAULT_DOMAIN_PATH_WITH_SLOTS)
    trackers = await training.load_data(DEFAULT_STORIES_FILE,
                                        default_domain,
                                        augmentation_factor=0,
                                        debug_plots=False)
    policy = KerasPolicy(featurizer=featurizer(), priority=1)
    policy.train(trackers, default_domain)
    policy.persist("{}/models/keras".format(prj_dir))
Esempio n. 6
0
def train_dialogue(domain_file='./data/criminal_domain.yml',
                   model_path='./models/dialogue',
                   training_data_file='./data/stories.md'):

    agent = Agent(domain_file,
                  policies=[
                      MemoizationPolicy(),
                      KerasPolicy(max_history=3, epochs=200, batch_size=50)
                  ])
    data = agent.load_data(training_data_file)

    agent.train(data)

    agent.persist(model_path)
    return agent
Esempio n. 7
0
def train_dialogue(domain_file='domain.yml',
                   model_path='./models/dialogue',
                   training_data_file='./data/stories.md'):
    fallback = FallbackPolicy(fallback_action_name="utter_unclear",
                              core_threshold=0.3,
                              nlu_threshold=0.75)
    agent = Agent(domain_file,
                  policies=[
                      MemoizationPolicy(max_history=7),
                      KerasPolicy(current_epoch=100, max_history=7), fallback
                  ])
    data = asyncio.run(agent.load_data(training_data_file))
    agent.train(data)
    # agent.train(
    #     data,
    #     epochs=500,
    #     batch_size=50,
    #     validation_split=0.2)
    agent.persist(model_path)
    return agent
async def train_core(domain_file: Text = "domain.yml",
                     model_directory: Text = "models",
                     model_name: Text = "core",
                     training_data_file: Text = "data/stories.md",):

    logging.basicConfig(filename=logfile, level=logging.DEBUG)

    agent = Agent(
        domain_file,
        policies=[
            MemoizationPolicy(max_history=3),
            KerasPolicy(batch_size=100, epochs=400, validation_split=0.2)
        ]
    )
    training_data = await agent.load_data(training_data_file)
    agent.train(training_data)

    # Attention: agent.persist stores the model and all meta data into a folder.
    # The folder itself is not zipped.
    model_path = os.path.join(model_directory, model_name)
    agent.persist(model_path)
Esempio n. 9
0
async def train_core(domain_file, training_data_file, model_directory):
    agent = Agent(domain_file, policies=[MemoizationPolicy(max_history=3), MappingPolicy(), KerasPolicy(epochs=500)])
    training_data = await agent.load_data(training_data_file, augmentation_factor=10)
    agent.train(training_data)

    # Attention: agent.persist stores the model and all meta data into a folder.
    # The folder itself is not zipped.
    model_path = os.path.join(model_directory, "core")
    agent.persist(model_path)

    logger.info(f"Model trained. Stored in '{model_path}'.")

    return model_path
Esempio n. 10
0
 def create_policy(self, featurizer, priority):
     p = KerasPolicy(featurizer, priority, **tf_defaults())
     return p
Esempio n. 11
0
 def create_policy(self, featurizer, priority):
     p = KerasPolicy(featurizer, priority)
     return p
Esempio n. 12
0
from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals

import logging

from rasa.core.agent import Agent
from rasa.core.policies.keras_policy import KerasPolicy
from rasa.core.policies.memoization import MemoizationPolicy

if __name__ == 'main':
    logging.basicConfig(level='info')
    training_data_file = './data/stories.md'
    model_path = './models/'

    agent = Agent('domain.yml', policies=[MemoizationPolicy(), KerasPolicy()])
    agent.train(training_data_file,
                augmentation_factor=50,
                max_history=5,
                epochs=100,
                batch_size=10,
                validation_split=0.2)
    agent.persist(model_path)
Esempio n. 13
0
# !/usr/bin/python
# -*- coding:utf-8 -*-
from rasa.core.agent import Agent
from rasa.core.interpreter import RasaNLUInterpreter

from rasa.core.policies.keras_policy import KerasPolicy

# agent=Agent(domain=None, policies=None, interpreter=None, generator=None,
# tracker_store=None, lock_store=None, action_endpoint=None,
# fingerprint=None, model_directory=None, model_server=None, remote_storage=None, path_to_model_archive=None)

if __name__ == '__main__':
    domain_file = '/home/user/xiaoqq/chat_robot/rasa_learn/configs/domain_slot.yml'
    agent = Agent(domain_file, policies=[KerasPolicy(validation_split=0.0, epochs=400)])
    training_data_file = '/home/user/xiaoqq/chat_robot/rasa_learn/data/nlu/nlu_slot.md'
    training_data = agent.load_data(training_data_file)

    model_path = '/home/user/xiaoqq/chat_robot/rasa_learn/data/models'
    agent.train(training_data
                )
    agent.persist(model_path)
Esempio n. 14
0
# !/usr/bin/python
# -*- coding:utf-8 -*-
from rasa.core.agent import Agent
from rasa.core.policies.keras_policy import KerasPolicy
from rasa.core.policies.memoization import MemoizationPolicy
if __name__ == '__main__':
    agent = Agent("/home/user/xiaoqq/chat_robot/rasa_learn/configs/domain.yml",
                  policies=[MemoizationPolicy(),
                            KerasPolicy()])

    agent.visualize(
        "/home/user/xiaoqq/chat_robot/rasa_learn/data/stories/stories.md",
        output_file="graph.html",
        max_history=2)