示例#1
0
文件: executor.py 项目: Machyne/pal
 def process(cls, params):
     service = get_service_by_name(params['service'])
     if service:
         params['result'] = service.go(params) or cls.NO_RESPONSE
     else:
         params['error'] = '[Executor] Invalid service'
         params['result'] = cls.NO_RESPONSE
示例#2
0
文件: executor.py 项目: Machyne/pal
 def process(cls, params):
     service = get_service_by_name(params['service'])
     if service:
         params['result'] = service.go(params) or cls.NO_RESPONSE
     else:
         params['error'] = '[Executor] Invalid service'
         params['result'] = cls.NO_RESPONSE
示例#3
0
 def process(cls, params):
     # Get the names of potentially relevant services
     service_names = get_all_service_names()
     features = params['features']
     client = params['client']
     request_type = (features['questionType'] if 'questionType' in features
                     else features['actionType'])
     key = client, request_type
     if key not in cls._CACHE:
         service_names = filter(
             lambda service: get_service_by_name(service)
             .applies_to_me(*key),
             service_names)
         cls._CACHE[key] = service_names
     else:
         service_names = cls._CACHE[key]
     # Pick the service with the highest confidence
     conf_levels = {service_name: get_service_by_name(service_name)
                    .get_confidence(params)
                    for service_name in service_names}
     params['confidences'] = conf_levels
     params['service'] = (max(conf_levels, key=conf_levels.get) if
                          max(conf_levels.itervalues()) > 0 else None)