def test_get_config_on_redis(self): chave = 'contador' field = 'silencio' self.assertEqual(config_redis.get_config_on_redis(chave, field), 2) chave = 'etapa-valida' field = 'evento' self.assertEqual(config_redis.get_config_on_redis(chave, field), 'Y') chave = 'regiao-cliente' field = '89' self.assertEqual(config_redis.get_config_on_redis(chave, field), 'R1') chave = 'teste4' field = 'teste4' self.assertEqual(config_redis.get_config_on_redis(chave, field), None)
def create_intent_note(self, outbound_message): last_intent = outbound_message.intent #TODO: mudar pra pegar intent do REDIS intent_note = get_config_on_redis('intent-nota', last_intent) if intent_note: final_intent_note = intent_note else: final_intent_note = '' return final_intent_note
def transfer_sector(self, outbound_message, phone_number): region = self.get_region(phone_number) region_transfer = get_config_on_redis('setor-transferencia', region) if outbound_message.intent == "CancelarLinhaOuProduto": transfer_sector = region_transfer['CancelarLinhaOuProduto'] elif outbound_message.intent == "QuestionarConta": #TODO: verificar como identificar questionarconta transfer_sector = region_transfer['QuestionarConta'] else: transfer_sector = region_transfer['Default'] return transfer_sector
def create_register_note(self, session, outbound_message): last_etapa = hget_config_on_redis(session, "etapa") #TODO: pegar do REDIS register_note = get_config_on_redis('registro-campo-nota', last_etapa) if last_etapa in ['motivo_contato', 'evento', 'instrucoes_finais']: note = register_note + self.create_intent_note(outbound_message) elif last_etapa == 'hang-up': note = register_note else: note = '' return note
def connect(self, collection): try: connection = pymongo.MongoClient(self.db_host, username=self.db_user, password=self.db_password) db = connection[self.db_name] collection = db[collection] except BaseException: raise KeyError( get_config_on_redis('mensage-category', 'error_connect')) return collection
def __check_intent_confidence__(self, response, context_chamada,etapa_anterior): #Faixas: 0 = Ignorado ou Condidence inexistente | 1,2,3 = faixa de intendimento. response["intervalo_confianca"] = 0 #etapas ignoradas if etapa_anterior =="welcome": return response if len(response["intents"]) <= 0: return response intents = response["intents"] intent = intents[0]["intent"] if "intent" in intents[0] else "" confidence = intents[0]["confidence"] if "confidence" in intents[0] else "0" # Define threshold de entendimento #misunderstood = Config.find_in_dict(['intent-confidence', 'misunderstood']) misunderstood = get_config_on_redis('intent-confidence', 'misunderstood') ask_confirmation = get_config_on_redis('intent-confidence', 'ask-confirmation') #Obtem uma resposta aleatoria de nao entendimento. misunderstood_utter = get_list_on_redis('nao-entendimento') misunderstood_utter = misunderstood_utter.get(str(randint(1, len(misunderstood_utter))),'Não entendi, você pode repetir') confirmation_utter = get_config_on_redis('entendimento-parcial', intent) if confidence < misunderstood: response["intervalo_confianca"] = 1 return self.__change_answer_and_context__(response, misunderstood_utter) elif confidence < ask_confirmation: response["intervalo_confianca"] = 2 return self.__change_answer_and_context__(response, confirmation_utter) else: response["intervalo_confianca"] = 3 return response
def set_tipo_registro(self, msisdn_reclamado): evento = self.set_evento(msisdn_reclamado) prazo = self.set_prazo(msisdn_reclamado) tipo_registro = get_config_on_redis(prazo, evento) return tipo_registro
def get_region(self, phone): phone_region = phone[0] + phone[1] region = get_config_on_redis('regiao-cliente', phone_region) return region