def reload_characters(**kwargs): global CHARACTERS, REVISION with sync: characters = None logger.info("Reloading") revision = kwargs.get('revision') if revision: REVISION = revision try: characters = load_characters(CHARACTER_PATH) del CHARACTERS[:] CHARACTERS = characters except Exception as ex: logger.error("Reloading characters error {}".format(ex))
def reload_characters(**kwargs): global CHARACTERS, REVISION with sync: characters = None logger.info("Reloading") try: characters = load_characters(CHARACTER_PATH) del CHARACTERS[:] CHARACTERS = characters revision = kwargs.get('revision') if revision: REVISION = revision logger.info("Revision {}".format(revision)) except Exception as ex: logger.error("Reloading characters error {}".format(ex))
from threading import RLock sync = RLock() SUCCESS = 0 WRONG_CHARACTER_NAME = 1 NO_PATTERN_MATCH = 2 INVALID_SESSION = 3 INVALID_QUESTION = 4 TRANSLATE_ERROR = 5 logger = logging.getLogger('hr.chatbot.server.chatbot_agent') from loader import load_characters from config import CHARACTER_PATH, RESET_SESSION_BY_HELLO, config CHARACTERS = load_characters(CHARACTER_PATH) REVISION = os.environ.get('HR_CHATBOT_REVISION') ROBOT_NAME = os.environ.get('NAME') from session import ChatSessionManager session_manager = ChatSessionManager() DISABLE_QUIBBLE = True FALLBACK_LANG = 'en-US' from chatbot.utils import (shorten, str_cleanup, get_weather, parse_weather, do_translate) from chatbot.words2num import words2num from chatbot.server.character import TYPE_AIML, TYPE_CS from operator import add, sub, mul, truediv, pow import math from chatbot.server.template import render
import atexit SUCCESS=0 WRONG_CHARACTER_NAME=1 NO_PATTERN_MATCH=2 INVALID_SESSION=3 useSOLR = True CWD = os.path.dirname(os.path.realpath(__file__)) logger = logging.getLogger('hr.chatbot.server.chatbot') from loader import load_characters DEFAULT_CHARACTER_PATH = os.path.join(CWD, 'characters') CHARACTER_PATH = os.environ.get('HR_CHARACTER_PATH', DEFAULT_CHARACTER_PATH) CHARACTERS = load_characters(CHARACTER_PATH) def get_character(id, lang=None): for character in CHARACTERS: if character.id != id: continue if lang is None: return character elif lang in character.languages: return character def add_character(character): if character.id not in [c.id for c in CHARACTERS]: CHARACTERS.append(character) return True, "Character added" #TODO: Update character