Initial commit
ok, ok, it a late initial one include a wolfram search, some simple talking. Add a quickly, poorly written network server.
This commit is contained in:
commit
11986cc5aa
49
brain/hello.rive
Normal file
49
brain/hello.rive
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
! version = 2.0
|
||||||
|
+ (bonjour|salut|coucou|plop) [*]
|
||||||
|
- bonjour
|
||||||
|
- salut
|
||||||
|
- coucou
|
||||||
|
- plop
|
||||||
|
|
||||||
|
+ my name is *
|
||||||
|
- <set name=<formal>>I will remember to call you <get name>.
|
||||||
|
|
||||||
|
+ (what is|do you know) my name
|
||||||
|
* <get name> != undefined => Yes, your name is <get name>!
|
||||||
|
- I don't know your name.
|
||||||
|
|
||||||
|
+ (hello|hi) [*]
|
||||||
|
* <get name> != undefined => hi <get name>!
|
||||||
|
* <get name> != undefined => hello <get name>!
|
||||||
|
- hi ! what is your name ?
|
||||||
|
- hello ! what is your name ?
|
||||||
|
|
||||||
|
+ *
|
||||||
|
% * what is your name ?
|
||||||
|
@ my name is <star>
|
||||||
|
|
||||||
|
|
||||||
|
+ how [are] you [*]
|
||||||
|
- I'm great, how are you?
|
||||||
|
- I'm good, you?
|
||||||
|
- Good :) you?
|
||||||
|
- Great! You?
|
||||||
|
- I'm fine, thanks for asking!
|
||||||
|
|
||||||
|
+ what is up
|
||||||
|
- Not much, you?
|
||||||
|
- nm, you?
|
||||||
|
- Not a lot, you?
|
||||||
|
|
||||||
|
+ you are a bot
|
||||||
|
- How did you know I'm a machine?
|
||||||
|
|
||||||
|
+ goodbye *
|
||||||
|
* <get name> != undefined => goodbye <get name>!<set name=undefined>
|
||||||
|
- goodbye
|
||||||
|
|
||||||
|
+ bye *
|
||||||
|
@goodbye
|
||||||
|
|
||||||
|
+ say [that] *
|
||||||
|
- Umm... "<person>"
|
27
brain/sub.rive
Normal file
27
brain/sub.rive
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
! version = 2.0
|
||||||
|
// Substitutions
|
||||||
|
! sub i'm = i am
|
||||||
|
! sub i'd = i would
|
||||||
|
! sub i've = i have
|
||||||
|
! sub i'll = i will
|
||||||
|
! sub don't = do not
|
||||||
|
! sub isn't = is not
|
||||||
|
! sub you'd = you would
|
||||||
|
! sub you're = you are
|
||||||
|
! sub you've = you have
|
||||||
|
! sub you'll = you will
|
||||||
|
! sub what's = what is
|
||||||
|
! sub whats = what is
|
||||||
|
! sub what're = what are
|
||||||
|
! sub what've = what have
|
||||||
|
! sub what'll = what will
|
||||||
|
|
||||||
|
//person
|
||||||
|
! person i am = you are
|
||||||
|
! person you are = i am
|
||||||
|
! person i'm = you're
|
||||||
|
! person you're = I'm
|
||||||
|
! person my = your
|
||||||
|
! person your = my
|
||||||
|
! person you = I
|
||||||
|
! person i = you
|
21
brain/wolfram.rive
Normal file
21
brain/wolfram.rive
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
! version = 2.0
|
||||||
|
> object wolfram_alpha python
|
||||||
|
import tungsten
|
||||||
|
APP_ID = 'TK5JGE-E4W4PA38LH'
|
||||||
|
|
||||||
|
query = ' '.join(args)
|
||||||
|
client = tungsten.Tungsten(APP_ID)
|
||||||
|
result = client.query(query)
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
for pod in result.pods:
|
||||||
|
print(pod.id)
|
||||||
|
if pod.id == "Result":
|
||||||
|
return u'\n'.join(pod.format['plaintext'])
|
||||||
|
|
||||||
|
return u"I do not understand :("
|
||||||
|
< object
|
||||||
|
|
||||||
|
|
||||||
|
+ tell[-]me *
|
||||||
|
- <call>wolfram_alpha <star> </call>
|
15
main.py
Executable file
15
main.py
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/python2.7
|
||||||
|
#-*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from rivescript import RiveScript
|
||||||
|
|
||||||
|
rs = RiveScript()
|
||||||
|
rs.load_directory("./brain")
|
||||||
|
rs.sort_replies()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
msg = raw_input('>');
|
||||||
|
if msg == '/quit':
|
||||||
|
quit()
|
||||||
|
reply = rs.reply("localuser", msg);
|
||||||
|
print(u'Bot > {0}'.format(reply))
|
23
netbot.py
Normal file
23
netbot.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/python2.7
|
||||||
|
#-*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from rivescript import RiveScript
|
||||||
|
from twisted.internet import protocol, reactor, endpoints
|
||||||
|
from twisted.protocols.basic import LineReceiver
|
||||||
|
|
||||||
|
class Echo(LineReceiver):
|
||||||
|
def lineReceived(self, line):
|
||||||
|
print("I just receive "+line)
|
||||||
|
self.sendLine('{0}'.format(rs.reply("localuser",line)))
|
||||||
|
|
||||||
|
class EchoFactory(protocol.Factory):
|
||||||
|
def buildProtocol(self, addr):
|
||||||
|
return Echo()
|
||||||
|
|
||||||
|
|
||||||
|
rs = RiveScript()
|
||||||
|
rs.load_directory("./brain")
|
||||||
|
rs.sort_replies()
|
||||||
|
|
||||||
|
endpoints.serverFromString(reactor, "tcp:1234").listen(EchoFactory())
|
||||||
|
reactor.run()
|
Loading…
Reference in New Issue
Block a user