Ejemplo n.º 1
1
def get_reply(cmd):
    bot = RiveScript()
    bot.load_directory("./brain")
    bot.sort_replies()
    while True:
        reply = bot.reply("Alisha", cmd)
        return reply
Ejemplo n.º 2
0
 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'
Ejemplo n.º 4
0
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")
Ejemplo n.º 5
0
 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))
Ejemplo n.º 6
0
    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))
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
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")
Ejemplo n.º 9
0
 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"]
Ejemplo n.º 10
0
    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()
Ejemplo n.º 11
0
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()
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
 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()
Ejemplo n.º 14
0
    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
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
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))
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
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("")
Ejemplo n.º 19
0
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."
Ejemplo n.º 20
0
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."
Ejemplo n.º 22
0
    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
Ejemplo n.º 24
0
    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)
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
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
Ejemplo n.º 27
0
 def new(self, code, **kwargs):
     """Make a bot and stream in the code."""
     self.rs = RiveScript(**kwargs)
     self.extend(code)
Ejemplo n.º 28
0
#!/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

Ejemplo n.º 29
0
#!/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))
Ejemplo n.º 30
0
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)