From 512561d8fd16e05241938bd156f96e9e9ccd8007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 15 Feb 2025 02:06:25 +0900 Subject: [PATCH] feat: add set sep --- README.md | 1 + plugin/aichat/list.go | 2 +- plugin/aichat/main.go | 28 ++++++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index edef9d0a..a3aece34 100644 --- a/README.md +++ b/README.md @@ -1547,6 +1547,7 @@ print("run[CQ:image,file="+j["img"]+"]") - [x] 设置AI聊天密钥xxx - [x] 设置AI聊天模型名xxx - [x] 设置AI聊天系统提示词xxx + - [x] 设置AI聊天分隔符``
diff --git a/plugin/aichat/list.go b/plugin/aichat/list.go index e8dc3693..c4d4a4e1 100644 --- a/plugin/aichat/list.go +++ b/plugin/aichat/list.go @@ -41,7 +41,7 @@ func (l *list) add(grp int64, txt string) { } func (l *list) body(mn, sysp string, temp float32, grp int64) deepinfra.Model { - m := model.NewCustom(mn, "", temp, 0.9, 1024).System(sysp) + m := model.NewCustom(mn, sepstr, temp, 0.9, 1024).System(sysp) l.mu.RLock() defer l.mu.RUnlock() for _, msg := range l.m[grp] { diff --git a/plugin/aichat/main.go b/plugin/aichat/main.go index 9bdd2603..5b0bd487 100644 --- a/plugin/aichat/main.go +++ b/plugin/aichat/main.go @@ -27,7 +27,7 @@ var ( DisableOnDefault: false, Extra: control.ExtraFromString("aichat"), Brief: "OpenAI聊天", - Help: "- 设置AI聊天触发概率10\n- 设置AI聊天温度80\n- 设置AI聊天密钥xxx\n- 设置AI聊天模型名xxx\n- 设置AI聊天系统提示词xxx", + Help: "- 设置AI聊天触发概率10\n- 设置AI聊天温度80\n- 设置AI聊天密钥xxx\n- 设置AI聊天模型名xxx\n- 设置AI聊天系统提示词xxx\n- 设置AI聊天分隔符", PrivateDataFolder: "aichat", }) lst = newlist() @@ -35,12 +35,14 @@ var ( var ( modelname = "deepseek-ai/DeepSeek-R1" - systemprompt = "你正在QQ群与用户聊天,用户发送了消息。按自己的心情简短思考后,条理清晰地回应**一句话**,禁止回应多句。" + systemprompt = "你正在QQ群与用户聊天,用户发送了消息。按自己的心情简短思考后条理清晰地回复。" + sepstr = "" ) func init() { mf := en.DataFolder() + "model.txt" sf := en.DataFolder() + "system.txt" + pf := en.DataFolder() + "sep.txt" if file.IsExist(mf) { data, err := os.ReadFile(mf) if err != nil { @@ -57,6 +59,14 @@ func init() { systemprompt = string(data) } } + if file.IsExist(pf) { + data, err := os.ReadFile(pf) + if err != nil { + logrus.Warnln("read sep", err) + } else { + sepstr = string(data) + } + } en.OnMessage(func(ctx *zero.Ctx) bool { txt := ctx.ExtractPlainText() @@ -242,4 +252,18 @@ func init() { } ctx.SendChain(message.Text("成功")) }) + en.OnPrefix("设置AI聊天分隔符", zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) { + args := strings.TrimSpace(ctx.State["args"].(string)) + if args == "" { + ctx.SendChain(message.Text("ERROR: empty args")) + return + } + sepstr = args + err := os.WriteFile(pf, []byte(args), 0644) + if err != nil { + ctx.SendChain(message.Text("ERROR: ", err)) + return + } + ctx.SendChain(message.Text("成功")) + }) }