diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-07-27 12:28:34 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-07-27 12:28:34 -0400 |
| commit | 0a2c7625cb8951f2d269dac2f2f8e4254922ca11 (patch) | |
| tree | 4f7548feccea5c9ae1fdba976c92d49fd54605db /cmd/mimi/modules | |
| parent | 45b48a01178e8501ca9b534f8e02a3192a1d2d7d (diff) | |
| download | x-0a2c7625cb8951f2d269dac2f2f8e4254922ca11.tar.xz x-0a2c7625cb8951f2d269dac2f2f8e4254922ca11.zip | |
unfuck mimi
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/mimi/modules')
| -rw-r--r-- | cmd/mimi/modules/discord/discord.go | 2 | ||||
| -rw-r--r-- | cmd/mimi/modules/discord/jufra/jufra.go | 29 |
2 files changed, 29 insertions, 2 deletions
diff --git a/cmd/mimi/modules/discord/discord.go b/cmd/mimi/modules/discord/discord.go index 10f44f6..351c4a5 100644 --- a/cmd/mimi/modules/discord/discord.go +++ b/cmd/mimi/modules/discord/discord.go @@ -28,6 +28,8 @@ func New(ctx context.Context) (*Module, error) { dg.Close() }() + dg.StateEnabled = true + return &Module{ dg: dg, }, nil diff --git a/cmd/mimi/modules/discord/jufra/jufra.go b/cmd/mimi/modules/discord/jufra/jufra.go index a5bef0a..745be3c 100644 --- a/cmd/mimi/modules/discord/jufra/jufra.go +++ b/cmd/mimi/modules/discord/jufra/jufra.go @@ -4,7 +4,9 @@ package jufra import ( + "bytes" "context" + "encoding/json" "flag" "log/slog" "strings" @@ -92,9 +94,21 @@ func (m *Module) messageCreate(s *discordgo.Session, mc *discordgo.MessageCreate conv := m.convHistory[mc.ChannelID] + nick := mc.Author.Username + + gu, err := s.State.Member(mc.GuildID, mc.Author.ID) + if err != nil { + slog.Error("error getting member", "err", err, "message_id", mc.ID, "channel_id", mc.ChannelID) + } else { + nick = gu.Nick + } + conv = append(conv, ollama.Message{ - Role: "user", - Content: mc.Content, + Role: "user", + Content: jsonString(map[string]any{ + "content": mc.Content, + "user": nick, + }), }) slog.Info("message count", "len", len(conv)) @@ -174,3 +188,14 @@ func (m *Module) llamaGuardComplain(ctx context.Context, from string, lgResp *ll return sb.String(), nil } + +func jsonString(val any) string { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + if err := enc.Encode(val); err != nil { + slog.Error("error encoding json", "err", err) + return "" + } + + return buf.String() +} |
