try to implement this
Seems like it detects that - but won’t get me any answer…
here are the logs:
> 2021-01-20 13:45:05.065953: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory
> 2021-01-20 13:45:05.065990: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
> 2021-01-20 13:45:06.810139: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
> 2021-01-20 13:45:06.810177: W tensorflow/stream_executor/cuda/cuda_driver.cc:312] failed call to cuInit: UNKNOWN ERROR (303)
> 2021-01-20 13:45:06.810208: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (cnvrg-job-notebooksession-hcah9k7qqbfrr4awxdbk-7bfcd8c5bb-nm46z): /proc/driver/nvidia/version does not exist
> 2021-01-20 13:45:06 INFO rasa.model - Loading model models/20210120-133638.tar.gz...
> 2021-01-20 13:45:07 DEBUG rasa.model - Extracted model to '/tmp/tmp6pbnprtt'.
> 2021-01-20 13:45:07 DEBUG urllib3.connectionpool - Starting new HTTPS connection (1): api.segment.io:443
> 2021-01-20 13:45:07 DEBUG urllib3.connectionpool - https://api.segment.io:443 "POST /v1/track HTTP/1.1" 200 21
> 2021-01-20 13:45:07 DEBUG rasa.cli.utils - Parameter 'endpoints' not set. Using default location 'endpoints.yml' instead.
> 2021-01-20 13:45:07 DEBUG rasa.cli.utils - Parameter 'credentials' not set. Using default location 'credentials.yml' instead.
> 2021-01-20 13:45:07 INFO rasa.model - Loading model models/20210120-133638.tar.gz...
> 2021-01-20 13:45:07 DEBUG rasa.model - Extracted model to '/tmp/tmpha4tw3ej'.
> 2021-01-20 13:45:07 INFO root - Connecting to channel 'cmdline' which was specified by the '--connector' argument. Any other channels will be ignored. To connect to all given channels, omit the '--connector' argument.
> 2021-01-20 13:45:08 DEBUG sanic.root - CORS: Configuring CORS with resources: {'/*': {'origins': [''], 'methods': 'DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT', 'allow_headers': ['.*'], 'expose_headers': 'filename', 'supports_credentials': True, 'max_age': None, 'send_wildcard': False, 'automatic_options': True, 'vary_header': True, 'resources': {'/*': {'origins': ''}}, 'intercept_exceptions': True, 'always_send': True}}
> 2021-01-20 13:45:08 DEBUG rasa.core.utils - Available web server routes:
> /webhooks/rest GET custom_webhook_CmdlineInput.health
> /webhooks/rest/webhook POST custom_webhook_CmdlineInput.receive
> / GET hello
> 2021-01-20 13:45:08 INFO root - Starting Rasa server on http://localhost:5005
> 2021-01-20 13:45:08 DEBUG rasa.core.utils - Using the default number of Sanic workers (1).
> 2021-01-20 13:45:08 INFO rasa.model - Loading model models/20210120-133638.tar.gz...
> 2021-01-20 13:45:08 DEBUG rasa.model - Extracted model to '/tmp/tmpanil4dl_'.
> 2021-01-20 13:45:08 DEBUG urllib3.connectionpool - Starting new HTTPS connection (1): api.segment.io:443
> 2021-01-20 13:45:08 DEBUG urllib3.connectionpool - https://api.segment.io:443 "POST /v1/track HTTP/1.1" 200 21
> 2021-01-20 13:45:08 INFO root - Enabling coroutine debugging. Loop id 121113832.
> 2021-01-20 13:45:08 INFO rasa.model - Loading model models/20210120-133638.tar.gz...
> 2021-01-20 13:45:09 DEBUG rasa.model - Extracted model to '/tmp/tmpc4bv_ecq'.
> 2021-01-20 13:45:09 DEBUG rasa.utils.tensorflow.models - Loading the model from /tmp/tmpc4bv_ecq/nlu/component_5_DIETClassifier.tf_model with finetune_mode=False...
> 2021-01-20 13:45:09.267957: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA
> To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
> 2021-01-20 13:45:09.275067: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency: 2999995000 Hz
> 2021-01-20 13:45:09.275416: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x6995d40 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
> 2021-01-20 13:45:09.275440: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - Following metrics will be logged during training:
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - t_loss (total loss)
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - i_acc (intent acc)
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - i_loss (intent loss)
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - e_f1 (entity f1)
> 2021-01-20 13:45:09 DEBUG rasa.nlu.classifiers.diet_classifier - e_loss (entity loss)
> 2021-01-20 13:45:10 DEBUG rasa.utils.tensorflow.models - Finished loading the model.
> 2021-01-20 13:45:10 DEBUG rasa.utils.tensorflow.models - Building tensorflow prediction graph...
> 2021-01-20 13:45:14 DEBUG rasa.utils.tensorflow.models - Finished building tensorflow prediction graph.
> 2021-01-20 13:45:14 DEBUG rasa.nlu.classifiers.diet_classifier - Failed to load model for 'ResponseSelector'. Maybe you did not provide enough training data and no model was trained or the path '/tmp/tmpc4bv_ecq/nlu' doesn't exist?
> 2021-01-20 13:45:14 DEBUG rasa.core.tracker_store - Connected to InMemoryTrackerStore.
> 2021-01-20 13:45:14 DEBUG rasa.core.lock_store - Connected to lock store 'InMemoryLockStore'.
> 2021-01-20 13:45:14 DEBUG rasa.model - Extracted model to '/tmp/tmpvd7ls97a'.
> /usr/local/lib/python3.6/dist-packages/rasa/shared/core/slots.py:268: FutureWarning: UnfeaturizedSlot is deprecated and will be removed in Rasa Open Source 3.0. Please change the type and configure the 'influence_conversation' flag for slot 'object_type' instead.
> category=FutureWarning,
> /usr/local/lib/python3.6/dist-packages/rasa/shared/core/slots.py:268: FutureWarning: UnfeaturizedSlot is deprecated and will be removed in Rasa Open Source 3.0. Please change the type and configure the 'influence_conversation' flag for slot 'mention' instead.
> category=FutureWarning,
> /usr/local/lib/python3.6/dist-packages/rasa/shared/core/slots.py:268: FutureWarning: UnfeaturizedSlot is deprecated and will be removed in Rasa Open Source 3.0. Please change the type and configure the 'influence_conversation' flag for slot 'attribute' instead.
> category=FutureWarning,
> 2021-01-20 13:45:14 WARNING **rasa.shared.core.domain - You are using an experiential feature: Action 'action_query_knowledge_base'!**
**> 2021-01-20 13:45:14 DEBUG rasa.u**tils.tensorflow.models - Loading the model from /tmp/tmpvd7ls97a/core/policy_1_TEDPolicy/ted_policy.tf_model with finetune_mode=False...
> 2021-01-20 13:45:14 DEBUG rasa.utils.tensorflow.models - Finished loading the model.
> 2021-01-20 13:45:14 DEBUG rasa.utils.tensorflow.models - Building tensorflow prediction graph...
> 2021-01-20 13:45:17 DEBUG rasa.utils.tensorflow.models - Finished building tensorflow prediction graph.
> 2021-01-20 13:45:17 DEBUG rasa.core.nlg.generator - Instantiated NLG to 'TemplatedNaturalLanguageGenerator'.
> 2021-01-20 13:45:17 INFO root - Rasa server is up and running.
> Bot loaded. Type a message and press enter (use '/stop' to exit):
**> Your input -> what restaurants can you recommend?**
> 2021-01-20 13:45:38 DEBUG rasa.core.lock_store - Issuing ticket for conversation 'e8585803498b49619d029bc1de4d6dcb'.
> 2021-01-20 13:45:38 DEBUG rasa.core.lock_store - Acquiring lock for conversation 'e8585803498b49619d029bc1de4d6dcb'.
> 2021-01-20 13:45:38 DEBUG rasa.core.lock_store - Acquired lock for conversation 'e8585803498b49619d029bc1de4d6dcb'.
> 2021-01-20 13:45:38 DEBUG rasa.core.tracker_store - Could not find tracker for conversation ID 'e8585803498b49619d029bc1de4d6dcb'.
> 2021-01-20 13:45:38 DEBUG rasa.core.processor - Starting a new session for conversation ID 'e8585803498b49619d029bc1de4d6dcb'.
> 2021-01-20 13:45:38 DEBUG rasa.core.processor - Policy prediction ended with events '[]'.
> 2021-01-20 13:45:38 DEBUG rasa.core.processor - Action 'action_session_start' ended with events '[<rasa.shared.core.events.SessionStarted object at 0x7fa3205a3278>, ActionExecuted(action: action_listen, policy: None, confidence: None)]'.
> 2021-01-20 13:45:38 DEBUG rasa.core.processor - Current slot values:
> object_type: None
> mention: None
> attribute: None
> knowledge_base_listed_objects: None
> knowledge_base_last_object: None
> knowledge_base_last_object_type: None
> 2021-01-20 13:45:39 DEBUG rasa.nlu.classifiers.diet_classifier - **There is no trained model for 'ResponseSelector': The component is either not trained or didn't receive enough training data.**
> 2021-01-20 13:45:39 DEBUG rasa.nlu.selectors.response_selector - Adding following selector key to message property: default
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Received user message 'what restaurants can you recommend?' with intent '**{'id': 7014255293810654798, 'name': 'query_knowledge_base', 'confidence': 0.9999454021453857}' and entities '[{'entity': 'object_type', 'start': 5, 'end': 16, 'confidence_entity': 0.9352092146873474, 'value': 'restaurant', 'extractor': 'DIETClassifier', 'processors': ['EntitySynonymMapper']}]'**
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Current slot values:
> object_type: restaurant
> mention: None
> attribute: None
> knowledge_base_listed_objects: None
> knowledge_base_last_object: None
> knowledge_base_last_object_type: None
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Logged UserUtterance - tracker now has 5 events.
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.memoization - Current tracker state:
> [state 1] user intent: query_knowledge_base | user entities: ('object_type',) | previous action name: action_listen
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.memoization - There is no memorised next action
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.rule_policy - Current tracker state:
> [state 1] user text: what restaurants can you reccoment? | previous action name: action_listen
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.rule_policy - There is no applicable rule.
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.rule_policy - Current tracker state:
> [state 1] user intent: query_knowledge_base | user entities: ('object_type',) | previous action name: action_listen
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.rule_policy - There is no applicable rule.
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.ensemble - Made prediction using user intent.
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.ensemble - Added `DefinePrevUserUtteredFeaturization(False)` event.
> 2021-01-20 13:45:39 DEBUG rasa.core.policies.ensemble - Predicted next action using policy_2_RulePolicy.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Predicted next action 'action_default_fallback' with confidence 0.30.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Policy prediction ended with events '[<rasa.shared.core.events.DefinePrevUserUtteredFeaturization object at 0x7fa32058f8d0>]'.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Action 'action_default_fallback' ended with events '[<rasa.shared.core.events.UserUtteranceReverted object at 0x7fa30879a710>]'.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Current slot values:
> object_type: None
> mention: None
> attribute: None
> knowledge_base_listed_objects: None
> knowledge_base_last_object: None
> knowledge_base_last_object_type: None
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Predicted next action 'action_listen' with confidence 1.00.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Policy prediction ended with events '[]'.
> 2021-01-20 13:45:39 DEBUG rasa.core.processor - Action 'action_listen' ended with events '[]'.
> 2021-01-20 13:45:39 DEBUG rasa.core.lock_store - Deleted lock for conversation 'e8585803498b49619d029bc1de4d6dcb'.
> Your input ->
NLU.YML
version: "2.0"
nlu:
- intent: query_knowledge_base
examples: |
- what [restaurants]{"entity": "object_type", "value": "restaurant"} can you recommend?
- list some [restaurants]{"entity": "object_type", "value": "restaurant"}
- can you name some [restaurants]{"entity": "object_type", "value": "restaurant"} please?
- can you show me some [restaurants]{"entity": "object_type", "value": "restaurant"} options
- list [German](cuisine) [restaurants]{"entity": "sobject_type", "value": "restaurant"}
- do you have any [mexican](cuisine) [restaurants]{"entity": "object_type", "value": "restaurant"}?
- do you know the [price range]{"entity": "attribute", "value": "price-range"} of [that one](mention)?
- what [cuisine](attribute) is [it](mention)?
- do you know what [cuisine](attribute) the [last one]{"entity": "mention", "value": "LAST"} has?
- does the [first one]{"entity": "mention", "value": "1"} have [outside seating]{"entity": "attribute", "value": "outside-seating"}?
- what is the [price range]{"entity": "attribute", "value": "price-range"} of [Berlin Burrito Company](restaurant)?
- what about [I due forni](restaurant)?
- can you tell me the [price range](attribute) of [that restaurant](mention)?
- what [cuisine](attribute) do [they](mention) have?
- intent: greet
examples: |
- hey
- hello
- hi
- hello there
- good morning
- good evening
- moin
- hey there
- let's go
- hey dude
- goodmorning
- goodevening
- good afternoon
- intent: goodbye
examples: |
- good afternoon
- cu
- good by
- cee you later
- good night
- bye
- goodbye
- have a nice day
- see you around
- bye bye
- see you later
- intent: affirm
examples: |
- yes
- y
- indeed
- of course
- that sounds good
- correct
- intent: deny
examples: |
- no
- n
- never
- I don't think so
- don't like that
- no way
- not really
- intent: mood_great
examples: |
- perfect
- great
- amazing
- feeling like a king
- wonderful
- I am feeling very good
- I am great
- I am amazing
- I am going to save the world
- super stoked
- extremely good
- so so perfect
- so good
- so perfect
- intent: mood_unhappy
examples: |
- my day was horrible
- I am sad
- I don't feel very well
- I am disappointed
- super sad
- I'm so sad
- sad
- very sad
- unhappy
- not good
- not very good
- extremly sad
- so saad
- so sad
- intent: bot_challenge
examples: |
- are you a bot?
- are you a human?
- am I talking to a bot?
- am I talking to a human?
DOMAIN.YML
version: "2.0"
intents:
- greet
- goodbye
- affirm
- deny
- mood_great
- mood_unhappy
- bot_challenge
- query_knowledge_base
entities:
- object_type
- mention
- attribute
slots:
object_type:
type: unfeaturized
mention:
type: unfeaturized
attribute:
type: unfeaturized
actions:
- action_query_knowledge_base
responses:
utter_greet:
- text: "Hey! How are you?"
utter_cheer_up:
- text: "Here is something to cheer you up:"
image: "https://i.imgur.com/nGF1K8f.jpg"
utter_did_that_help:
- text: "Did that help you?"
utter_happy:
- text: "Great, carry on!"
utter_goodbye:
- text: "Bye"
utter_iamabot:
- text: "I am a bot, powered by Rasa."
utter_ask_rephrase:
- text: "Sorry, I'm not sure I understand. Could you rephrase it?"
- text: "Could you please rephrase your message? I didn't quite get that."
session_config:
session_expiration_time: 60
carry_over_slots_to_new_session: true
STORIES.YML
version: "2.0"
stories:
- story: happy path
steps:
- intent: greet
- action: utter_greet
- intent: mood_great
- action: utter_happy
- story: sad path 1
steps:
- intent: greet
- action: utter_greet
- intent: mood_unhappy
- action: utter_cheer_up
- action: utter_did_that_help
- intent: affirm
- action: utter_happy
- story: sad path 2
steps:
- intent: greet
- action: utter_greet
- intent: mood_unhappy
- action: utter_cheer_up
- action: utter_did_that_help
- intent: deny
- action: utter_goodbye
- story: knowledge base happy path
steps:
- intent: greet
- action: utter_greet
- intent: utter_greet
- action: action_query_knowledge_base
- intent: goodbye
- action: utter_goodbye
ACTIONS.PY
from rasa_sdk.knowledge_base.storage import InMemoryKnowledgeBase
from rasa_sdk.knowledge_base.actions import ActionQueryKnowledgeBase
class MyKnowledgeBaseAction(ActionQueryKnowledgeBase):
def __init__(self):
knowledge_base = InMemoryKnowledgeBase("data.json")
super().__init__(knowledge_base)
PUT DATA.JSON both at parent folder and in actions folder (wasn’t sure the running directory)
{
"restaurant": [
{
"id": 0,
"name": "Donath",
"cuisine": "Italian",
"outside-seating": true,
"price-range": "mid-range"
},
{
"id": 1,
"name": "Berlin Burrito Company",
"cuisine": "Mexican",
"outside-seating": false,
"price-range": "cheap"
},
{
"id": 2,
"name": "I due forni",
"cuisine": "Italian",
"outside-seating": true,
"price-range": "mid-range"
}
],
"hotel": [
{
"id": 0,
"name": "Hilton",
"price-range": "expensive",
"breakfast-included": true,
"city": "Berlin",
"free-wifi": true,
"star-rating": 5,
"swimming-pool": true
},
{
"id": 1,
"name": "Hilton",
"price-range": "expensive",
"breakfast-included": true,
"city": "Frankfurt am Main",
"free-wifi": true,
"star-rating": 4,
"swimming-pool": false
},
{
"id": 2,
"name": "B&B",
"price-range": "mid-range",
"breakfast-included": false,
"city": "Berlin",
"free-wifi": false,
"star-rating": 1,
"swimming-pool": false
},
]
}