diff options
Diffstat (limited to 'bot.go')
-rw-r--r-- | bot.go | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -285,22 +285,17 @@ func chatRound(userMsg, role string, tv *tview.TextView, regen, resume bool) { return } } - choseChunkParser() - reader, err := chunkParser.FormMsg(userMsg, role, resume) - if reader == nil || err != nil { - logger.Error("empty reader from msgs", "role", role, "error", err) - return - } - go sendMsgToLLM(reader) - logger.Debug("looking at vars in chatRound", "msg", userMsg, "regen", regen, "resume", resume) - // Handle Cluedo game flow + // should go before form msg, since formmsg takes chatBody and makes ioreader out of it + // role is almost always user, unless it's regen or resume + // cannot get in this block, since cluedoState is nil; + // check if cfg.EnableCluedo is true and init the cluedo state; ai! if cfg.EnableCluedo && cluedoState != nil && !resume { + notifyUser("got in cluedo", "yay") currentPlayer := playerOrder[0] playerOrder = append(playerOrder[1:], currentPlayer) // Rotate turns if role == cfg.UserRole { - userMsg = fmt.Sprintf("Your cards: %s\n%s", - cluedoState.GetPlayerCards(currentPlayer), userMsg) + fmt.Fprintf(tv, "Your (%s) cards: %s\n", currentPlayer, cluedoState.GetPlayerCards(currentPlayer)) } else { chatBody.Messages = append(chatBody.Messages, models.RoleMsg{ Role: cfg.ToolRole, @@ -308,7 +303,14 @@ func chatRound(userMsg, role string, tv *tview.TextView, regen, resume bool) { }) } } - + choseChunkParser() + reader, err := chunkParser.FormMsg(userMsg, role, resume) + if reader == nil || err != nil { + logger.Error("empty reader from msgs", "role", role, "error", err) + return + } + go sendMsgToLLM(reader) + logger.Debug("looking at vars in chatRound", "msg", userMsg, "regen", regen, "resume", resume) if !resume { fmt.Fprintf(tv, "[-:-:b](%d) ", len(chatBody.Messages)) fmt.Fprint(tv, roleToIcon(cfg.AssistantRole)) |