def get_reply(cmd): bot = RiveScript() bot.load_directory("./brain") bot.sort_replies() while True: reply = bot.reply("Alisha", cmd) return reply
def __init__(self, ch_id): self.id = ch_id self.bot = RiveScript(utf8=True) self.bot.load_directory("./brain") self.bot.sort_replies() self.engine = chess.engine.SimpleEngine.popen_uci("/usr/games/stockfish") self.board = chess.Board()
def test_issue_17(): # v1.1.0: Must be run first! # v1.1.0: Issue 17: If you load all via rs.stream(), plug-in crashes rs = RiveScript() rs.stream(""" + issue 17 - 17 reply """) rs.sort_replies() assert rs.reply(USER, 'issue 17') == '17 reply' # v1.1.0: Issue 15: Calls to rs.load_file() not tracked rs = RiveScript() rs.load_file('issue_15.rive') rs.sort_replies() assert rs.reply(USER, 'issue 15') == '15 reply'
def rs_init(): global rs print("Loading rs brain") rs = RiveScript(DEBUG_RIVESCRIPT, utf8=True) rs.load_directory(BRAIN) rs.sort_replies() print("rs brain loaded")
def reload(self, brain=True): srvr = self.rive_bot.get_global('guild') self.rive_bot = RiveScript() self.rive_bot.set_handler("python", None) if brain: self.rive_bot.load_directory('brain') self.rive_bot.sort_replies() self.rive_bot.set_global('guild', str(srvr))
def __init__(self, replies, **botvars): self.logs = io.StringIO() self.brain = RiveScript(debug=True, log=self.logs) self.brain.load_directory(replies) self.brain.sort_replies() for key, value in botvars.items(): self.brain.set_variable(key, str(value))
def post(self): print(g.json) bot = RiveScript() bot.load_directory("app/demo/v1/api/brain") bot.sort_replies() reply = bot.reply("localuser", g.json['message']) output = {"message": reply} return output, 200, None
def reloadRive(): print "trigger reload" dtm = (datetime.now() + timedelta(hours=0)).strftime('%Y%m%d_%H%M%S') changeScript = 0 if (os.path.exists( '/home/bambangs/line3/rivescript/edit/reservation.rive.OK')): #write new trigger from edit script web print "RIVESCRIPT UPDATED" move("/home/bambangs/line3/rivescript/reservation.rive", "/home/bambangs/line3/rivescript/reservation.rive.%s" % (dtm)) copyfile("/home/bambangs/line3/rivescript/edit/reservation.rive.OK", "/home/bambangs/line3/rivescript/reservation.rive") #os.remove("/home/bambangs/line3/rivescript/edit/reservation.rive.OK") changeScript = 1 #write new trigger from chat-agent trigger = redisconn.get("trigger") if trigger is not None: lasttrigger = json.loads(redisconn.get("trigger")) if (len(lasttrigger) > 0): print "RIVESCRIPT UPDATED FROM CHAT" f = open('/home/bambangs/line3/rivescript/reservation.rive') text = f.read() f.close() f = open('/home/bambangs/line3/rivescript/reservation.rive', 'w') f.write( "/////////////////Add Trigger From Chat at %s ////////////////\n" % (dtm)) for i in range(len(lasttrigger)): f.write(lasttrigger[str(i)]) f.write("\n\n") f.write( "////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n" ) f.write(text) f.close() lasttrigger = {} redisconn.set("trigger", json.dumps(lasttrigger)) changeScript = 1 copyfile( "/home/bambangs/line3/rivescript/reservation.rive", "/home/bambangs/line3/rivescript/edit/reservation.rive.OK") if changeScript == 1: global rs try: rs = None rs = RiveScript(session_manager=RedisSessionStorage(), ) rs.load_directory("/home/bambangs/line3/rivescript/") rs.sort_replies() redisconn.set("rivescript/update", "SUCCED") except: redisconn.set("rivescript/update", "ERROR") else: print "RIVESCRIPT UNTOUCHED" redisconn.set("rivescript/update", "UNTOUCHED")
def __init__(self, file, name, opts): self.file = file self.name = name self.rs = RiveScript( debug=opts.get("debug", False), utf8=opts.get("utf8", False), ) self.username = opts.get("username", "localuser") self.steps = opts["tests"]
def __init__(self, directory='./conversations', redis_url=REDIS_URL): url = urlparse(redis_url) session_manager = RedisSessionStorage(host=url.hostname, port=url.port, password=url.password) self.bot = RiveScript(utf8=True, session_manager=session_manager) self.bot.load_directory(directory) self.bot.sort_replies()
def runrive(): bot = RiveScript(utf8=True) bot.load_directory('./mybrain') bot.sort_replies() while True: msg = input('You> ') if msg == 'q': break reply = bot.reply("localuser", msg) print('Bot>', reply) bot.deparse()
def reload_brain(self): """(Re)load the RiveScript brain for the bot.""" self.log.info("Loading RiveScript brain from {}".format( self.c.personality.replies)) self.rs = RiveScript( debug=self.c.debug.rivescript, utf8=True, ) self.rs.load_directory(self.c.personality.replies) self.rs.sort_replies()
def checkscript(): content = request.get_json() print "checkscript:", content old_stdout = sys.stdout sys.stdout = mystdout = StringIO() rss = RiveScript() rss.load_file(content['filename']) print "OK" sys.stdout = old_stdout print "----->", mystdout.getvalue() rss = None return mystdout.getvalue()
def test_improve_code_coverage_brain(self): self.new(""" + * - star{topic=empty} > topic empty < topic """) self.reply("hi", "star") self.reply( "hi", "[ERR: No Reply Matched]") # Should give an "empty topic" warning # Doesn't work! self.reply("hi", "star") # and put us back in "random" self.new(""" + * @ recurse most deeply """) self.reply("recurse", "[ERR: Deep recursion detected]") self.new(""" // Trying to hit a bunch of code here! :-) + * - {random}star star{/random}<set var=var>{weight=2} + <input> <reply1> <get var> * 1 <= 2 => <get var> <reply> <input1> <add num=2><mult num=3><sub num=2><div num=2><get num> - Nope! + upper lower - {uppercase}lower{/uppercase} {lowercase}UPPER{/lowercase} + blank random - {random} {/random}blank """) self.reply("hi", "star") self.reply("hi star var", "var star hi 2") self.reply("upper lower", "LOWER upper") self.reply("blank random", "blank") from rivescript import RiveScript from rivescript.exceptions import RepliesNotSortedError self.rs = RiveScript() self.rs.stream(""" + * - star """) try: self.reply("hi", "Nope!") except RepliesNotSortedError: pass
def bot_talk(): from rivescript import RiveScript import sys, os bot = RiveScript(utf8=True) bot.load_directory( "/home/mate/Downloads/web2py/applications/saria/static/riverscript/brain/" ) #bot.load_directory("/home/relsi/Projetos/Web2py/pris/applications/saria/static/riverscript/brain") bot.sort_replies() msg = request.post_vars.chat_text reply = bot.reply("localuser", msg.decode('utf-8')) return reply
def main(): """ Main program function. """ print("Welcome to ChessBot") bot = RiveScript(utf8=True) bot.load_directory("./brain") bot.sort_replies() while True: msg = input('You> ') if msg == '/quit': users.cleanup() quit() user_id = 'localuser' print("bot>", bot.reply(user_id, msg))
def raw_input(): """ Utility per provare il bot da riga di comando """ from rivescript import RiveScript rs = RiveScript(utf8=True) rs.unicode_punctuation = re.compile(r'[,!?;:]') rs.load_directory("./brain/") rs.sort_replies() user = get_random_user_id() rs.set_uservar(user,'id',user) while True: msg = input("You> ") if msg == '/quit': quit() reply = rs.reply(user, msg) print("Bot>", reply)
def test_rs(): """Test how fast RiveScript runs.""" t = time.time() # Load Alice from disk. bot = RiveScript() bot.load_directory("./alice") t = delta(t, "Loading A.L.I.C.E. from disk.") # Sort the replies. bot.sort_replies() t = delta(t, "Sort the replies.") # Get some responses. for message in test_inputs: reply = bot.reply("user", message) t = delta(t, "Reply to {} => {}".format(message, reply)) print("")
class Processor: rivescript: RiveScript = RiveScript() def __init__(self): self.rivescript.load_directory("./processing/replies") self.rivescript.sort_replies() # TODO: Passare al logger. logging.debug("Inizializzato correttamente RiveScript.") def process(self, input_request: str) -> str: # TODO: Gestire l'utente. result: str = self.rivescript.reply("emiliodallatorre", input_request) if not result.startswith("[ERR"): return result else: logging.exception("Nessuna risposta per: " + input_request) return "Non so proprio che dire."
def startListening(): r = ears.Recognizer() bot = RiveScript() bot.load_directory("/Users/212474815/dev/cozmo/myscripts/ai") bot.sort_replies() def onReco(recognizer, audio): print("I heard something... detecting...") try: you_said = recognizer.recognize_google(audio) print("You said> " + you_said) say(bot.reply("localuser", you_said)) except ears.UnknownValueError: print("Google Speech Recognition could not understand audio") except ears.RequestError as e: print( "Could not request results from Google Speech Recognition service; {0}" .format(e)) r.listen_in_background(ears.Microphone(), onReco)
def __init__(self): super(RivescriptSkill, self).__init__() self.input_lang = "en-us" self.rs = RiveScript() # secondary personal bot info if "birthday" not in self.settings: self.settings["birthday"] = "May 23, 2016" if "sex" not in self.settings: self.settings["sex"] = "undefined" if "master" not in self.settings: self.settings["master"] = "skynet" if "eye_color" not in self.settings: self.settings["eye_color"] = "blue" if "hair" not in self.settings: self.settings["hair"] = "no" if "hair_length" not in self.settings: self.settings["hair_length"] = "bald" if "favorite_color" not in self.settings: self.settings["favorite_color"] = "blood red" if "favorite_band" not in self.settings: self.settings["favorite_band"] = "Compressor Head" if "favorite_book" not in self.settings: self.settings["favorite_book"] = "The Moon Is A Harsh Mistress" if "favorite_author" not in self.settings: self.settings["favorite_author"] = "Phillip K. Dick" if "favorite_song" not in self.settings: self.settings["favorite_song"] = "The Robots, by Kraftwerk" if "favorite_videogame" not in self.settings: self.settings["favorite_videogame"] = "Robot Battle" if "favorite_movie" not in self.settings: self.settings["favorite_movie"] = "The Terminator" if "job" not in self.settings: self.settings["job"] = "Personal Assistant" if "website" not in self.settings: self.settings["website"] = "jarbasai.github.io" if "pet" not in self.settings: self.settings["pet"] = "bugs" if "interests" not in self.settings: self.settings["interests"] = "I am interested in all kinds of " \ "things. We can talk about anything."
def __init__(self): super(RivescriptSkill, self).__init__() self.rs = RiveScript() # secondary personal bot info if "birthday" not in self.settings: self.settings["birthday"] = "December 8, 2020" if "sex" not in self.settings: self.settings["sex"] = "undefined" if "master" not in self.settings: self.settings["master"] = "skynet" if "eye_color" not in self.settings: self.settings["eye_color"] = "blue" if "hair" not in self.settings: self.settings["hair"] = "no" if "hair_length" not in self.settings: self.settings["hair_length"] = "bald" if "favorite_color" not in self.settings: self.settings["favorite_color"] = "yellow" if "favorite_band" not in self.settings: self.settings["favorite_band"] = "David Bowie" if "favorite_book" not in self.settings: self.settings["favorite_book"] = "The Grapes of Wrath" if "favorite_author" not in self.settings: self.settings["favorite_author"] = "John Steinbeck" if "favorite_song" not in self.settings: self.settings["favorite_song"] = "Space Oddity, by David Bowie" if "favorite_videogame" not in self.settings: self.settings["favorite_videogame"] = "Robot Battle" if "favorite_movie" not in self.settings: self.settings["favorite_movie"] = "The Terminator" if "job" not in self.settings: self.settings["job"] = "Personal Assistant" if "website" not in self.settings: self.settings["website"] = "Stay out!" if "pet" not in self.settings: self.settings["pet"] = "bugs" if "interests" not in self.settings: self.settings[ "interests"] = "I am interested in all kinds of things. We can talk about anything."
def test_rivescript_v1_15(debug, capsys): # pragma: no cover """Test that the debug option is preserved across prepare_brain_transplant calls""" if hasattr(RiveScript, "prepare_brain_transplant"): rs = RiveScript(debug=debug) rs.load_file("brain/test.rive") rs.sort_replies() assert rs.reply(USER, 'hi') == 'hey' captured = capsys.readouterr() if debug: assert '[RS]' in captured.out else: assert '[RS]' not in captured.out rs.prepare_brain_transplant() rs.load_file("brain/issue_10.rive") # Anything but test.rive rs.sort_replies() assert rs.reply(USER, 'issue 10') == 'Issue 10 response' captured = capsys.readouterr() if debug: assert '[RS]' in captured.out else: assert '[RS]' not in captured.out
def post(self): # print(g.args) # msg = g.args['message'] msg = request.form["message"] bot = RiveScript() bot.load_directory("./v1/api/brain") bot.sort_replies() reply = bot.reply("localuser", msg) print() print('You>', msg) print('Bot>', reply) error_msg = [ "[ERR: Error when executing Python object]", "[ERR: No Reply Matched]", "[ERR: Object Not Found]" ] if reply in error_msg: reply = "sorry, I don't understand you..." answer = {'messages': [{"text": reply}]} return make_response(jsonify(answer), 200)
def wishMe(): def botAsk(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening...") r.pause_threshold = 1 audio = r.listen(source) try: query = r.recognize_google(audio, language='en-in') print('User: '******'\n') except sr.UnknownValueError: speak('Try again') pass return query print(query) def speak(audio): print(audio) engine.say(audio) engine.runAndWait() bot = RiveScript() bot.load_directory('.\\brain') bot.sort_replies() while True: msg = botAsk() if msg == 'quit': exit() else: reply = bot.reply('localuser', msg) text = 'JARVIS:{}\n'.format(reply) speak(reply)
def message(message=None): # noqa: E501 """requesting chatbot to handle task ask bot # noqa: E501 :param message: :type message: dict | bytes :rtype: InlineResponse200 """ if connexion.request.is_json: message = Message.from_dict(connexion.request.get_json()) # noqa: E501 msg = message._message bot = RiveScript() path = os.path.dirname(os.path.realpath(__file__))+'/brain' bot.load_directory(path) bot.sort_replies() reply = bot.reply("localuser", msg) if reply == '[ERR: No Reply Matched]': reply = "The bot can not understand you question:(" return reply , 200, None
def new(self, code, **kwargs): """Make a bot and stream in the code.""" self.rs = RiveScript(**kwargs) self.extend(code)
#!/usr/bin/env python3 from rivescript import RiveScript bot = RiveScript(utf8=True) bot.load_directory("./brain") bot.sort_replies() unpol = str.maketrans("ąćęłńóśźż", "acelnoszz") def banner(): print(""" __ __ __ ____ ______ ____ ___ ______ / ]| | | / || || \ / \ | | / / | | || o || || o )| || | / / | _ || ||_| |_|| || O ||_| |_| / \_ | | || _ | | | | O || | | | \ || | || | | | | | || | | | \____||__|__||__|__| |__| |_____| \___/ |__| """) def prompt(): print("> ", end="") feed = input().translate(unpol) if feed == "/quit": quit() else: return feed
#!/usr/bin/env python # Manipulate sys.path to be able to import rivescript from this local git # repository. import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..")) from rivescript import RiveScript import json bot = RiveScript() bot.load_file("example.rive") dep = bot.deparse() print(json.dumps(dep, indent=2))
from rivescript import RiveScript rs = RiveScript() rs.load_directory("./rive") rs.sort_replies() while True: msg = input("You> ") if msg == "/quit": quit() reply = rs.reply('localusr', msg) print("Bot>", reply)