Не удается обучить бота с помощью RASA и Python

Мой код приведен ниже:

async def train_dialogue(domain_file='domain.yml',
                   model_path='models/dialogue',
                         config_file='config.yml',
                   training_data_file='./data/stories/stories.md'):

    policies = policy_config.load(config_file)
    agent = Agent("domain.yml", policies=policies)

    #asyncio.run(agent.load_data(training_data_file))
    #training_data = await agent.load_data(training_data_file)
    #training_data = asyncio.run(agent.load_data(training_data_file))
    #training_data = agent.load_data(training_data_file)

    loop = asyncio.get_event_loop()
    data = loop.run_until_complete(agent.load_data(training_data_file))


    agent.train(training_data)

    agent.persist(model_path)
    return agent

def run_weather_bot(serve_forever=True):
    interpreter = Interpreter.load('./models/nlu/default/chat')
    agent = Agent.load('./models/dialogue', interpreter=interpreter)
    rasa.core.run.serve_application(agent, channel='cmdline')

    return agent

train_dialogue('domain.yml','models/dialogue','config.yml','./data/stories/stories.md')
run_weather_bot()

Когда я выполняю этот фрагмент кода выше для обучения базовой модели rasa для чат-бота, я получаю следующую ошибку:

RuntimeWarning: coroutine 'train_dialogue' was never awaited
  """Entry point for launching an IPython kernel.

Я также пробовал эти строки, просмотрев некоторые решения в Интернете, но они также не решают проблему:

#asyncio.run(agent.load_data(training_data_file))
#training_data = await agent.load_data(training_data_file)
#training_data = asyncio.run(agent.load_data(training_data_file))
#training_data = agent.load_data(training_data_file)

Кроме того, когда я загружаю свою модель вот так:

agent = Agent.load("models/dialogue", interpreter= rasaNLU)

Я получаю сообщение «в моделях / диалогах не найдено ни ядра, ни модели NLU», поэтому я считаю, что функция train_dialogue не выполняется должным образом, поэтому модель не сохраняется. Любая помощь будет высоко ценится!


person Asim    schedule 14.09.2019    source источник


Ответы (1)


/model/parse - это конечная точка, к которой вы можете только POST ваше сообщение. Ошибка, которую вы получаете, является ожидаемым поведением.

Вы можете ознакомиться с документацией по HTTP API здесь - https://rasa.com/docs/rasa/api/http-api/#operation/parseModelMessage.

person msamogh    schedule 23.09.2019