mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 05:30:07 +08:00
feat(aichat): add more funcs
This commit is contained in:
parent
2df52161e5
commit
62e9fe69ed
@ -1558,10 +1558,14 @@ print("run[CQ:image,file="+j["img"]+"]")
|
||||
|
||||
- [x] 设置AI聊天触发概率10
|
||||
- [x] 设置AI聊天温度80
|
||||
- [x] 设置AI聊天接口类型[OpenAI|OLLaMA|GenAI]
|
||||
- [x] 设置AI聊天(不)支持系统提示词
|
||||
- [x] 设置AI聊天接口地址https://xxx
|
||||
- [x] 设置AI聊天密钥xxx
|
||||
- [x] 设置AI聊天模型名xxx
|
||||
- [x] 设置AI聊天系统提示词xxx
|
||||
- [x] 查看AI聊天系统提示词
|
||||
- [x] 重置AI聊天系统提示词
|
||||
- [x] 设置AI聊天系统提示词xxx
|
||||
- [x] 设置AI聊天分隔符`</think>`(留空则清除)
|
||||
- [x] 设置AI聊天(不)响应AT
|
||||
|
||||
|
||||
4
go.mod
4
go.mod
@ -12,7 +12,7 @@ require (
|
||||
github.com/FloatTech/sqlite v1.7.1
|
||||
github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562
|
||||
github.com/FloatTech/zbpctrl v1.7.0
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250329125132-70de78bc2407
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c
|
||||
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7
|
||||
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5
|
||||
github.com/Tnze/go-mc v1.20.2
|
||||
@ -22,7 +22,7 @@ require (
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
github.com/fumiama/ahsai v0.1.0
|
||||
github.com/fumiama/cron v1.3.0
|
||||
github.com/fumiama/deepinfra v0.0.0-20250329170232-577f83008e8d
|
||||
github.com/fumiama/deepinfra v0.0.0-20250330125128-71ec2f7c085e
|
||||
github.com/fumiama/go-base16384 v1.7.0
|
||||
github.com/fumiama/go-registry v0.2.7
|
||||
github.com/fumiama/gotracemoe v0.0.3
|
||||
|
||||
8
go.sum
8
go.sum
@ -17,8 +17,8 @@ github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562 h1:snfw7FNFym1eNnLrQ
|
||||
github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
|
||||
github.com/FloatTech/zbpctrl v1.7.0 h1:Hxo6EIhJo+pHjcQP9QgIJgluaT1pHH99zkk3njqTNMo=
|
||||
github.com/FloatTech/zbpctrl v1.7.0/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE=
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250329125132-70de78bc2407 h1:2+cY/Yn30x8hOczSvnU/lnj/jgtxmGyfOfv0eJn5GQI=
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250329125132-70de78bc2407/go.mod h1:LOBLheF9yCSSYAA85MtkQNyVYP1DblttTLk5OYFbtpk=
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c h1:nIybmanPvQknseVOJ+s4/m3q7EZxtqMoTy3wiiZts6E=
|
||||
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c/go.mod h1:ArZ0fMAcmPEIXOqDmfzbSx+oYH8sssApQnbCu694iS8=
|
||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
|
||||
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7 h1:S/ferNiehVjNaBMNNBxUjLtVmP/YWD6Yh79RfPv4ehU=
|
||||
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7/go.mod h1:vD7Ra3Q9onRtojoY5sMCLQ7JBgjUsrXDnDKyFxqpf9w=
|
||||
@ -59,8 +59,8 @@ github.com/fumiama/ahsai v0.1.0 h1:LXD61Kaj6kJHa3AEGsLIfKNzcgaVxg7JB72OR4yNNZ4=
|
||||
github.com/fumiama/ahsai v0.1.0/go.mod h1:fFeNnqgo44i8FIaguK659aQryuZeFy+4klYLQu/rfdk=
|
||||
github.com/fumiama/cron v1.3.0 h1:ZWlwuexF+HQHl3cYytEE5HNwD99q+3vNZF1GrEiXCFo=
|
||||
github.com/fumiama/cron v1.3.0/go.mod h1:bz5Izvgi/xEUI8tlBN8BI2jr9Moo8N4or0KV8xXuPDY=
|
||||
github.com/fumiama/deepinfra v0.0.0-20250329170232-577f83008e8d h1:LCiYR+AbnDn8QV3s8yJrE+N340s3KwkvLjmDDQbWYvs=
|
||||
github.com/fumiama/deepinfra v0.0.0-20250329170232-577f83008e8d/go.mod h1:wW05PQSn8mo1mZIoa6LBUE+3xIBjkoONvnfPTV5ZOhY=
|
||||
github.com/fumiama/deepinfra v0.0.0-20250330125128-71ec2f7c085e h1:L/Z5N6UfpuqNIiPUrjSzmrnWj3mjd3auwl/2ctpGXNY=
|
||||
github.com/fumiama/deepinfra v0.0.0-20250330125128-71ec2f7c085e/go.mod h1:wW05PQSn8mo1mZIoa6LBUE+3xIBjkoONvnfPTV5ZOhY=
|
||||
github.com/fumiama/go-base16384 v1.7.0 h1:6fep7XPQWxRlh4Hu+KsdH+6+YdUp+w6CwRXtMWSsXCA=
|
||||
github.com/fumiama/go-base16384 v1.7.0/go.mod h1:OEn+947GV5gsbTAnyuUW/SrfxJYUdYupSIQXOuGOcXM=
|
||||
github.com/fumiama/go-registry v0.2.7 h1:tLEqgEpsiybQMqBv0dLHm5leia/z1DhajMupwnOHeNs=
|
||||
|
||||
@ -22,7 +22,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
// en data [4 type] [8 temp] [8 rate] LSB
|
||||
// en data [4 cfg] [4 type] [8 temp] [8 rate] LSB
|
||||
en = control.AutoRegister(&ctrl.Options[*zero.Ctx]{
|
||||
DisableOnDefault: false,
|
||||
Extra: control.ExtraFromString("aichat"),
|
||||
@ -30,9 +30,11 @@ var (
|
||||
Help: "- 设置AI聊天触发概率10\n" +
|
||||
"- 设置AI聊天温度80\n" +
|
||||
"- 设置AI聊天接口类型[OpenAI|OLLaMA|GenAI]\n" +
|
||||
"- 设置AI聊天(不)支持系统提示词\n" +
|
||||
"- 设置AI聊天接口地址https://xxx\n" +
|
||||
"- 设置AI聊天密钥xxx\n" +
|
||||
"- 设置AI聊天模型名xxx\n" +
|
||||
"- 查看AI聊天系统提示词\n" +
|
||||
"- 重置AI聊天系统提示词\n" +
|
||||
"- 设置AI聊天系统提示词xxx\n" +
|
||||
"- 设置AI聊天分隔符</think>(留空则清除)\n" +
|
||||
@ -47,6 +49,7 @@ var (
|
||||
api = deepinfra.OpenAIDeepInfra
|
||||
sepstr = ""
|
||||
noreplyat = false
|
||||
nosystemprompt = false
|
||||
)
|
||||
|
||||
var apitypes = map[string]uint8{
|
||||
@ -61,6 +64,7 @@ func init() {
|
||||
pf := en.DataFolder() + "sep.txt"
|
||||
af := en.DataFolder() + "api.txt"
|
||||
nf := en.DataFolder() + "NoReplyAT"
|
||||
syspf := en.DataFolder() + "NoSystemPrompt"
|
||||
if file.IsExist(mf) {
|
||||
data, err := os.ReadFile(mf)
|
||||
if err != nil {
|
||||
@ -94,6 +98,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
noreplyat = file.IsExist(nf)
|
||||
nosystemprompt = file.IsExist(syspf)
|
||||
|
||||
en.OnMessage(func(ctx *zero.Ctx) bool {
|
||||
return ctx.ExtractPlainText() != "" && (!noreplyat || (noreplyat && !ctx.Event.IsToMe))
|
||||
@ -134,24 +139,21 @@ func init() {
|
||||
temp = 100
|
||||
}
|
||||
|
||||
var x deepinfra.API
|
||||
x := deepinfra.NewAPI(api, key)
|
||||
var mod model.Protocol
|
||||
|
||||
switch typ {
|
||||
case 0:
|
||||
x = deepinfra.NewAPI(api, key)
|
||||
mod = model.NewOpenAI(
|
||||
modelname, sepstr,
|
||||
float32(temp)/100, 0.9, 4096,
|
||||
)
|
||||
case 1:
|
||||
x = deepinfra.NewAPI(api, key)
|
||||
mod = model.NewOLLaMA(
|
||||
modelname, sepstr,
|
||||
float32(temp)/100, 0.9, 4096,
|
||||
)
|
||||
case 2:
|
||||
x = deepinfra.NewAPI(api, key)
|
||||
mod = model.NewGenAI(
|
||||
modelname,
|
||||
float32(temp)/100, 0.9, 4096,
|
||||
@ -161,7 +163,7 @@ func init() {
|
||||
return
|
||||
}
|
||||
|
||||
data, err := x.Request(chat.Ask(mod, gid, systemprompt))
|
||||
data, err := x.Request(chat.Ask(mod, gid, systemprompt, nosystemprompt))
|
||||
if err != nil {
|
||||
logrus.Warnln("[aichat] post err:", err)
|
||||
return
|
||||
@ -344,6 +346,9 @@ func init() {
|
||||
}
|
||||
ctx.SendChain(message.Text("成功"))
|
||||
})
|
||||
en.OnFullMatch("查看AI聊天系统提示词", zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||||
ctx.SendChain(message.Text(systemprompt))
|
||||
})
|
||||
en.OnFullMatch("重置AI聊天系统提示词", zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||||
systemprompt = chat.SystemPrompt
|
||||
_ = os.Remove(sf)
|
||||
@ -387,4 +392,26 @@ func init() {
|
||||
}
|
||||
ctx.SendChain(message.Text("成功"))
|
||||
})
|
||||
en.OnRegex("^设置AI聊天(不)?支持系统提示词$", zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||||
args := ctx.State["regex_matched"].([]string)
|
||||
isno := args[1] == "不"
|
||||
if isno {
|
||||
f, err := os.Create(syspf)
|
||||
if err != nil {
|
||||
ctx.SendChain(message.Text("ERROR: ", err))
|
||||
return
|
||||
}
|
||||
defer f.Close()
|
||||
_, err = f.WriteString("PLACEHOLDER")
|
||||
if err != nil {
|
||||
ctx.SendChain(message.Text("ERROR: ", err))
|
||||
return
|
||||
}
|
||||
nosystemprompt = true
|
||||
} else {
|
||||
_ = os.Remove(syspf)
|
||||
nosystemprompt = false
|
||||
}
|
||||
ctx.SendChain(message.Text("成功"))
|
||||
})
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user