Custom Entities not handled in DialogflowEsConnector.predict()
Closed this issue · 0 comments
dariowho commented
Steps to reproduce
df.predict("I want a Margherita")
Expected result
restaurant.order_pizza(pizza_type: PizzaType="Margherita", ...)
Actual result
{}
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-10-6859044985a4> in <module>
----> 1 df.predict("I want a Margherita")
~/lavoro/dialogflow-agents/intents/connectors/dialogflow_es/connector.py in predict(self, message, session, language)
154
155 return self._df_response_to_prediction(df_response)
--> 156
157 def trigger(self, intent: Intent, session: str=None, language: str=None) -> Intent:
158 if not session:
~/lavoro/dialogflow-agents/intents/connectors/dialogflow_es/connector.py in _df_response_to_prediction(self, df_response)
194 return DialogflowPrediction(
195 intent=self._df_response_to_intent(df_response),
--> 196 confidence=df_response.protobuf_response.query_result.intent_detection_confidence,
197 fulfillment_message_dict=intent_responses(df_response.protobuf_response),
198 fulfillment_text=df_response.protobuf_response.query_result.fulfillment_text,
~/lavoro/dialogflow-agents/intents/connectors/dialogflow_es/connector.py in _df_response_to_intent(self, df_response, build_related_cls, visited_intents)
247 visited_intents.add(intent_cls)
248 parameter_dict = deserialize_intent_parameters(df_parameters, intent_cls, self.entity_mappings)
--> 249 related_intents_dict = {}
250 for related in related_intents(intent_cls).follow:
251 if related.intent_cls in visited_intents:
~/lavoro/dialogflow-agents/intents/service_connector.py in deserialize_intent_parameters(service_parameters, intent_cls, mappings)
208 raise ValueError(f"Found parameter {param_name} in Service Prediction, but Intent class does not define it.")
209 param_metadata = schema[param_name]
--> 210 mapping = mappings[param_metadata.entity_cls]
211 try:
212 if param_metadata.is_list:
KeyError: <class 'example_agent.restaurant.PizzaType'>