Forráskód Böngészése

update neurotransmiter to use the new OA

nico 8 éve
szülő
commit
ba181cdcce

+ 19 - 4
kalliope/core/NeuronModule.py

@@ -5,8 +5,12 @@ import random
 import sys
 from jinja2 import Template
 
+from kalliope.OrderAnalyser2 import OrderAnalyser2
 from kalliope.core import OrderListener
 from kalliope.core import OrderAnalyser
+from kalliope.core.Models import Order
+from kalliope.core.NeuronLauncher import NeuronLauncher
+from kalliope.core.NeuronParameterLoader import NeuronParameterLoader
 from kalliope.core.SynapseLauncher import SynapseLauncher
 from kalliope.core.Utils.Utils import Utils
 from kalliope.core.ConfigurationManager import SettingLoader, BrainLoader
@@ -187,8 +191,9 @@ class NeuronModule(object):
         SynapseLauncher.start_synapse(name=name, brain=self.brain)
 
     def is_order_matching(self, order_said, order_match):
-        oa = OrderAnalyser(order=order_said, brain=self.brain)
-        return oa.spelt_order_match_brain_order_via_table(order_to_analyse=order_match, user_said=order_said)
+
+        return OrderAnalyser2().spelt_order_match_brain_order_via_table(order_to_analyse=order_match,
+                                                                        user_said=order_said)
 
     def run_synapse_by_name_with_order(self, order, synapse_name, order_template):
         """
@@ -206,8 +211,18 @@ class NeuronModule(object):
             list_to_run = list()
             list_to_run.append(synapse_to_run)
 
-            oa = OrderAnalyser(order=order, brain=self.brain)
-            oa.start(synapses_to_run=list_to_run, external_order=order_template)
+            parameters = None
+            for signal in synapse_to_run.signals:
+                if isinstance(signal, Order):
+                    parameters = NeuronParameterLoader.get_parameters(synapse_order=order_template,
+                                                                      user_order=order).next()
+                    logger.debug("[NeuronModule]-> parameter load from user answer: %s" % parameters)
+                    if parameters is not None:
+                        break
+
+            # start the neuron list
+            NeuronLauncher.start_neuron_list(neuron_list=synapse_to_run.neurons, parameters_dict=parameters)
+
         else:
             logger.debug("[NeuronModule]-> run_synapse_by_name_with_order, the synapse has not been found : %s"
                          % synapse_name)

+ 1 - 1
kalliope/core/NeuronParameterLoader.py

@@ -1,4 +1,4 @@
-from kalliope import Utils
+from kalliope.core.Utils import Utils
 
 import logging
 

+ 3 - 1
kalliope/neurons/neurotransmitter/neurotransmitter.py

@@ -40,10 +40,12 @@ class Neurotransmitter(NeuronModule):
             for el in self.from_answer_link:
                 for answer in el["answers"]:
                     if self.is_order_matching(audio, answer):
+                        logger.debug("Neurotransmitter: match answer: %s" % answer)
                         found = self.run_synapse_by_name_with_order(order=audio,
                                                                     synapse_name=el["synapse"],
                                                                     order_template=answer)
-            if not found: # the answer do not correspond to any answer. We run the default synapse
+                        break
+            if not found:  # the answer do not correspond to any answer. We run the default synapse
                 self.run_synapse_by_name(self.default)
 
     def _is_parameters_ok(self):