Получить пользовательское значение намерения в RASA Core / NLU - PullRequest
0 голосов
/ 22 ноября 2018

У меня тот же вопрос, что и в: Получить значение намерения в RASA Core / NLU , но я хочу значение, которое пользователь дает для данного намерения.

Например:

User: I want to take it (this sentence is an intent called: 'use_it')
Bot: ....
User: .... (Later in the chat I decide to answer with the same phrase of intent 'use it') 
Bot: you said previously "I want to take it"

Как я могу сделать что-то вроде: tracker.get_slot но для намерения?

Мне не нужно имя последнего намерения. Я хочу текст данного намерения.

1 Ответ

0 голосов
/ 22 ноября 2018

Выполнить пользовательское действие после намерения, в котором вы сохраняете текст намерения в слоте:

from rasa_core_sdk import Action
from rasa_core_sdk.events import SlotSet

class ActionStoreIntentMessage(Action):
    """Stores the bot use case in a slot"""

    def name(self):
        return "action_store_intent_message"

    def run(self, dispatcher, tracker, domain):

        # we grab the whole user utterance here as there are no real entities
        # in the use case
        message = tracker.latest_message.get('text')

        return [SlotSet('intent_message', message)]

Затем вы можете использовать значение установленного слота в полный шаблон :

slots:
  intent_message:
    type: text

templates:
  utter_last_intent:
    - "you said previously: {intent_message}"
...