mirror of https://github.com/velour/catbase.git
Merge branch 'master' of github.com:velour/catbase
* 'master' of github.com:velour/catbase: try to force the bridge command to give less deterministic results add middle out compression, I mean babbles update babbler syntax
This commit is contained in:
commit
3607a7ee23
|
@ -110,15 +110,22 @@ func (p *BabblerPlugin) Message(message msg.Message) bool {
|
|||
saidSomething := false
|
||||
saidWhat := ""
|
||||
|
||||
if numTokens > 2 && tokens[1] == "says" && strings.Contains(lowercase, "syas") {
|
||||
split := strings.Split(lowercase, "syas")
|
||||
if numTokens > 2 && tokens[1] == "says-bridge" && strings.Contains(lowercase, "|") {
|
||||
split := strings.Split(lowercase, "|")
|
||||
start := strings.Fields(split[0])
|
||||
end := strings.Fields(split[1])
|
||||
saidWhat, saidSomething = p.getBabbleWithBookends(start, end)
|
||||
} else if numTokens >= 2 && tokens[1] == "says" {
|
||||
saidWhat, saidSomething = p.getBabble(tokens)
|
||||
} else if numTokens > 2 && tokens[1] == "syas" {
|
||||
} else if numTokens > 2 && tokens[1] == "says-tail" {
|
||||
saidWhat, saidSomething = p.getBabbleWithSuffix(tokens)
|
||||
} else if numTokens >= 2 && tokens[1] == "says-middle-out" {
|
||||
saidWhatStart, saidSomethingStart := p.getBabbleWithSuffix(tokens)
|
||||
saidWhatEnd, saidSomethingEnd := p.getBabble(tokens)
|
||||
saidSomething = saidSomethingStart && saidSomethingEnd
|
||||
if saidSomething {
|
||||
saidWhat = saidWhatStart + " " + strings.Join(strings.Fields(saidWhatEnd)[len(tokens)-2:], " ")
|
||||
}
|
||||
} else if len(tokens) == 4 && strings.Index(lowercase, "initialize babbler for ") == 0 {
|
||||
saidWhat, saidSomething = p.initializeBabbler(tokens)
|
||||
} else if strings.Index(lowercase, "batch learn for ") == 0 {
|
||||
|
@ -137,7 +144,15 @@ func (p *BabblerPlugin) Message(message msg.Message) bool {
|
|||
}
|
||||
|
||||
func (p *BabblerPlugin) Help(channel string, parts []string) {
|
||||
p.Bot.SendMessage(channel, "initialize babbler for seabass\n\nseabass says")
|
||||
commands := []string{
|
||||
"initialize babbler for seabass",
|
||||
"merge babbler drseabass into seabass",
|
||||
"seabass says ...",
|
||||
"seabass says-tail ...",
|
||||
"seabass says-middle-out ...",
|
||||
"seabass says-bridge ... | ...",
|
||||
}
|
||||
p.Bot.SendMessage(channel, strings.Join(commands, "\n\n"))
|
||||
}
|
||||
|
||||
func (p *BabblerPlugin) Event(kind string, message msg.Message) bool {
|
||||
|
@ -847,7 +862,7 @@ func (p *BabblerPlugin) babbleSeedBookends(babblerName string, start, end []stri
|
|||
closed := map[int64]*searchNode{ startWordNode.NodeId : open[0] }
|
||||
goalNodeId := int64(-1)
|
||||
|
||||
for i := 0; i < len(open) && i < 250; i++ {
|
||||
for i := 0; i < len(open) && i < 1000; i++ {
|
||||
cur := open[i]
|
||||
|
||||
arcs, err := p.getNextArcs(cur.babblerNodeId)
|
||||
|
@ -865,11 +880,14 @@ func (p *BabblerPlugin) babbleSeedBookends(babblerName string, start, end []stri
|
|||
|
||||
if arc.ToNodeId == endWordNode.NodeId {
|
||||
goalNodeId = cur.babblerNodeId
|
||||
//add a little randomization in through maybe searching beyond this solution?
|
||||
if rand.Intn(4) == 0 {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if goalNodeId == -1 {
|
||||
return "", errors.New("couldn't find path")
|
||||
|
|
|
@ -169,8 +169,8 @@ func TestBabblerSuffixSeed(t *testing.T) {
|
|||
res = c.Message(seabass)
|
||||
seabass.Body = "hi there"
|
||||
res = c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass syas message one"))
|
||||
res = c.Message(makeMessage("!seabass syas with unique"))
|
||||
res = c.Message(makeMessage("!seabass says-tail message one"))
|
||||
res = c.Message(makeMessage("!seabass says-tail with unique"))
|
||||
assert.Len(t, mb.Messages, 2)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "this is message one")
|
||||
|
@ -189,7 +189,7 @@ func TestBabblerBadSuffixSeed(t *testing.T) {
|
|||
res = c.Message(seabass)
|
||||
seabass.Body = "hi there"
|
||||
res = c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass syas anything true"))
|
||||
res = c.Message(makeMessage("!seabass says-tail anything true"))
|
||||
assert.Len(t, mb.Messages, 1)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "seabass never said 'anything true'")
|
||||
|
@ -203,7 +203,7 @@ func TestBabblerBookendSeed(t *testing.T) {
|
|||
seabass := makeMessage("It's easier to test with unique messages")
|
||||
seabass.User = &user.User{Name: "seabass"}
|
||||
res := c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass says It's easier syas unique messages"))
|
||||
res = c.Message(makeMessage("!seabass says-bridge It's easier | unique messages"))
|
||||
assert.Len(t, mb.Messages, 1)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "it's easier to test with unique messages")
|
||||
|
@ -217,7 +217,7 @@ func TestBabblerBookendSeedShort(t *testing.T) {
|
|||
seabass := makeMessage("It's easier to test with unique messages")
|
||||
seabass.User = &user.User{Name: "seabass"}
|
||||
res := c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass says It's easier to test with syas unique messages"))
|
||||
res = c.Message(makeMessage("!seabass says-bridge It's easier to test with | unique messages"))
|
||||
assert.Len(t, mb.Messages, 1)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "it's easier to test with unique messages")
|
||||
|
@ -231,12 +231,26 @@ func TestBabblerBadBookendSeed(t *testing.T) {
|
|||
seabass := makeMessage("It's easier to test with unique messages")
|
||||
seabass.User = &user.User{Name: "seabass"}
|
||||
res := c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass says It's easier syas not unique messages"))
|
||||
res = c.Message(makeMessage("!seabass says-bridge It's easier | not unique messages"))
|
||||
assert.Len(t, mb.Messages, 1)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "seabass never said 'it's easier ... not unique messages'")
|
||||
}
|
||||
|
||||
func TestBabblerMiddleOutSeed(t *testing.T) {
|
||||
mb := bot.NewMockBot()
|
||||
c := New(mb)
|
||||
c.config.Babbler.DefaultUsers = []string{"seabass"}
|
||||
assert.NotNil(t, c)
|
||||
seabass := makeMessage("It's easier to test with unique messages")
|
||||
seabass.User = &user.User{Name: "seabass"}
|
||||
res := c.Message(seabass)
|
||||
res = c.Message(makeMessage("!seabass says-middle-out test with"))
|
||||
assert.Len(t, mb.Messages, 1)
|
||||
assert.True(t, res)
|
||||
assert.Contains(t, mb.Messages[0], "it's easier to test with unique messages")
|
||||
}
|
||||
|
||||
func TestBabblerBatch(t *testing.T) {
|
||||
mb := bot.NewMockBot()
|
||||
c := New(mb)
|
||||
|
|
Loading…
Reference in New Issue