Source code for chatbot.common.chat_conf_manager

from chatbot import models
from django.core import serializers as serial
import json

[docs]class ChatBotConfManager: """ class which handle chabot conf include nlp, stroyboard, entity and service (1) on prepare time : set confs for chat bot (2) on run time : get confs from db and provide getter for essential values """ def __init__(self, cb_id): """ init global variables """ self.pos_type = "" self.entity_key_list = [] self.word_embed_model = "" self.intent_analyze_model = "" self.ner_analyze_model = "" self.resp_gen_model = "" self.ton_gen_model = "" self.stroy_board = [] #available story_board lists self._restore_conf(cb_id) def _restore_conf(self, cb_id): """ restore conf data from db :param cb_id: :return: """ #TODO:need to get data from cache server and chatbot model DB self.pos_type = "mecab" self.word_embed_model = "nn00002" self.pattern_intent_analyze_model = self.get_model_conf(cb_id, 'PIntent')['nn_id'] self.intent_analyze_model = self.get_model_conf(cb_id, 'Intent')['nn_id'] self.ner_analyze_model = self.get_model_conf(cb_id, 'NER')['nn_id'] self.resp_gen_model = "" self.ton_gen_model = "" self.stroy_board = []
[docs] def get_model_conf(self, cb_id, purpose): try : query_set = models.CB_MODEL_LIST_INFO.objects.filter(cb_id = cb_id, nn_purpose = purpose) query_set = serial.serialize("json", query_set) return json.loads(query_set)[0]['fields'] except Exception as e : raise Exception ("Model for {0} is required : {1}".format(purpose, e))
[docs] def get_pattern_intent_model(self): """ tag type mecab, twitter, etc :param data: :return: """ return self.pattern_intent_analyze_model
[docs] def get_intent_model(self): """ tag type mecab, twitter, etc :param data: :return: """ return self.intent_analyze_model
def _save_conf(self, cb_id): """ restore conf data from db :param cb_id: :return: """ #TODO:need to save conf data into db pass def _set_cache(self, conf_data): """ set conf data on cache server :param data_conf: :return: """ pass
[docs] def set_entity_list(self, data): """ set entity list to use :param data: :return: """ self.entity_key_list.append(data)
[docs] def get_entity_list(self): """ get entity list to use :param data: :return: """ return self.entity_key_list
[docs] def set_word_embed_model(self, data): """ set word embed model (w2v.. ) :param data: :return: """ self.word_embed_model = data
[docs] def get_word_embed_model(self): """ get word embed model (w2v.. ) :param data: :return: """ return self.word_embed_model
[docs] def set_pos_type(self, data): """ tag type mecab, twitter, etc :param data: :return: """ self.pos_type = data
[docs] def get_pos_type(self): """ tag type mecab, twitter, etc :param data: :return: """ return self.pos_type
[docs] def set_ner_model(self, data): """ net id pretrained on hoyai :param data: :return: """ self.ner_analyze_model = data
[docs] def get_ner_model(self): """ net id pretrained on hoyai :param data: :return: """ return self.ner_analyze_model
[docs] def set_resp_model(self, data): """ net id pretrained on hoyai :param data: :return: """ self.resp_gen_model = data
[docs] def get_resp_model(self): """ net id pretrained on hoyai :param data: :return: """ return self.resp_gen_model
[docs] def set_ton_model(self, data): """ net id pretrained on hoyai :param data: :return: """ self.ton_gen_model = data
[docs] def get_ton_model(self): """ net id pretrained on hoyai :param data: :return: """ return self.ton_gen_model
[docs] def set_story_board(self, data): """ net id pretrained on hoyai :param data: :return: """ self.stroy_board = data
[docs] def get_story_board(self): """ net id pretrained on hoyai :param data: :return: """ return self.stroy_board