Skip to content

Commit f70cab8

Browse files
committed
feat(aichat): add more configs
1 parent 609d819 commit f70cab8

File tree

5 files changed

+83
-10
lines changed

5 files changed

+83
-10
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1588,6 +1588,8 @@ print("run[CQ:image,file="+j["img"]+"]")
15881588
- [x] 设置AI聊天系统提示词xxx
15891589
- [x] 设置AI聊天分隔符`</think>`(留空则清除)
15901590
- [x] 设置AI聊天(不)响应AT
1591+
- [x] 设置AI聊天最大长度4096
1592+
- [x] 设置AI聊天TopP 0.9
15911593

15921594
</details>
15931595
<details>

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ go 1.20
44

55
require (
66
github.com/Baidu-AIP/golang-sdk v1.1.1
7-
github.com/FloatTech/AnimeAPI v1.7.1-0.20250423082452-e16339a3962c
7+
github.com/FloatTech/AnimeAPI v1.7.1-0.20250530055006-50f5c7587c5b
88
github.com/FloatTech/floatbox v0.0.0-20250513111443-adba80e84e80
99
github.com/FloatTech/gg v1.1.3
1010
github.com/FloatTech/imgfactory v0.2.2-0.20230413152719-e101cc3606ef
1111
github.com/FloatTech/rendercard v0.2.0
1212
github.com/FloatTech/sqlite v1.7.1
1313
github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562
1414
github.com/FloatTech/zbpctrl v1.7.0
15-
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c
15+
github.com/FloatTech/zbputils v1.7.2-0.20250601064658-421e71926b83
1616
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7
1717
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5
1818
github.com/Tnze/go-mc v1.20.2

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
github.com/Baidu-AIP/golang-sdk v1.1.1 h1:RQsAmgDSAkiq22I6n7XJ2t3afgzFeqjY46FGhvrx4cw=
22
github.com/Baidu-AIP/golang-sdk v1.1.1/go.mod h1:bXnGw7xPeKt8aF7UCELKrV6UZ/46spItONK1RQBQj1Y=
33
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
4-
github.com/FloatTech/AnimeAPI v1.7.1-0.20250423082452-e16339a3962c h1:bEe8VP2aHLR2NHk1BsBQFtP0XE3cxquvr0tW0CkKcDk=
5-
github.com/FloatTech/AnimeAPI v1.7.1-0.20250423082452-e16339a3962c/go.mod h1:XXG1eBJf+eeWacQx5azsQKL5Gg7jDYTFyyZGIa/56js=
4+
github.com/FloatTech/AnimeAPI v1.7.1-0.20250530055006-50f5c7587c5b h1:H/1xpchTGmdoHqrszH4gjafCyHIhsGSFryAkBNsu8OI=
5+
github.com/FloatTech/AnimeAPI v1.7.1-0.20250530055006-50f5c7587c5b/go.mod h1:XXG1eBJf+eeWacQx5azsQKL5Gg7jDYTFyyZGIa/56js=
66
github.com/FloatTech/floatbox v0.0.0-20250513111443-adba80e84e80 h1:lFD1pd8NkYCrw0QpTX/T5pJ67I7AL5eGxQ4v0r9f81Q=
77
github.com/FloatTech/floatbox v0.0.0-20250513111443-adba80e84e80/go.mod h1:IWoFFqu+0FeaHHQdddyiTRL5z7gJME6qHC96qh0R2sc=
88
github.com/FloatTech/gg v1.1.3 h1:+GlL02lTKsxJQr4WCuNwVxC1/eBZrCvypCIBtxuOFb4=
@@ -17,8 +17,8 @@ github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562 h1:snfw7FNFym1eNnLrQ
1717
github.com/FloatTech/ttl v0.0.0-20240716161252-965925764562/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
1818
github.com/FloatTech/zbpctrl v1.7.0 h1:Hxo6EIhJo+pHjcQP9QgIJgluaT1pHH99zkk3njqTNMo=
1919
github.com/FloatTech/zbpctrl v1.7.0/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE=
20-
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c h1:nIybmanPvQknseVOJ+s4/m3q7EZxtqMoTy3wiiZts6E=
21-
github.com/FloatTech/zbputils v1.7.2-0.20250330125231-d8be1c9d3b9c/go.mod h1:ArZ0fMAcmPEIXOqDmfzbSx+oYH8sssApQnbCu694iS8=
20+
github.com/FloatTech/zbputils v1.7.2-0.20250601064658-421e71926b83 h1:WfHzSblV7TZ/32cm1HUsfxTXUDKauzUYq5dbI1L+w3s=
21+
github.com/FloatTech/zbputils v1.7.2-0.20250601064658-421e71926b83/go.mod h1:ArZ0fMAcmPEIXOqDmfzbSx+oYH8sssApQnbCu694iS8=
2222
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
2323
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7 h1:S/ferNiehVjNaBMNNBxUjLtVmP/YWD6Yh79RfPv4ehU=
2424
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7/go.mod h1:vD7Ra3Q9onRtojoY5sMCLQ7JBgjUsrXDnDKyFxqpf9w=

plugin/aichat/cfg.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package aichat
22

33
import (
4+
"strconv"
45
"strings"
56

67
ctrl "github.com/FloatTech/zbpctrl"
@@ -17,6 +18,8 @@ var cfg = newconfig()
1718
type config struct {
1819
ModelName string
1920
Type int
21+
MaxN uint
22+
TopP float32
2023
SystemP string
2124
API string
2225
Key string
@@ -94,3 +97,57 @@ func newextrasetbool(ptr *bool) func(ctx *zero.Ctx) {
9497
ctx.SendChain(message.Text("成功"))
9598
}
9699
}
100+
101+
func newextrasetuint(ptr *uint) func(ctx *zero.Ctx) {
102+
return func(ctx *zero.Ctx) {
103+
args := strings.TrimSpace(ctx.State["args"].(string))
104+
if args == "" {
105+
ctx.SendChain(message.Text("ERROR: empty args"))
106+
return
107+
}
108+
c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
109+
if !ok {
110+
ctx.SendChain(message.Text("ERROR: no such plugin"))
111+
return
112+
}
113+
n, err := strconv.ParseUint(args, 10, 64)
114+
if err != nil {
115+
ctx.SendChain(message.Text("ERROR: parse args err: ", err))
116+
return
117+
}
118+
*ptr = uint(n)
119+
err = c.SetExtra(&cfg)
120+
if err != nil {
121+
ctx.SendChain(message.Text("ERROR: set extra err: ", err))
122+
return
123+
}
124+
ctx.SendChain(message.Text("成功"))
125+
}
126+
}
127+
128+
func newextrasetfloat32(ptr *float32) func(ctx *zero.Ctx) {
129+
return func(ctx *zero.Ctx) {
130+
args := strings.TrimSpace(ctx.State["args"].(string))
131+
if args == "" {
132+
ctx.SendChain(message.Text("ERROR: empty args"))
133+
return
134+
}
135+
c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
136+
if !ok {
137+
ctx.SendChain(message.Text("ERROR: no such plugin"))
138+
return
139+
}
140+
n, err := strconv.ParseFloat(args, 32)
141+
if err != nil {
142+
ctx.SendChain(message.Text("ERROR: parse args err: ", err))
143+
return
144+
}
145+
*ptr = float32(n)
146+
err = c.SetExtra(&cfg)
147+
if err != nil {
148+
ctx.SendChain(message.Text("ERROR: set extra err: ", err))
149+
return
150+
}
151+
ctx.SendChain(message.Text("成功"))
152+
}
153+
}

plugin/aichat/main.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ var (
3636
"- 重置AI聊天系统提示词\n" +
3737
"- 设置AI聊天系统提示词xxx\n" +
3838
"- 设置AI聊天分隔符</think>(留空则清除)\n" +
39-
"- 设置AI聊天(不)响应AT",
39+
"- 设置AI聊天(不)响应AT\n" +
40+
"- 设置AI聊天最大长度4096\n" +
41+
"- 设置AI聊天TopP 0.9",
4042
PrivateDataFolder: "aichat",
4143
})
4244
)
@@ -83,22 +85,30 @@ func init() {
8385

8486
x := deepinfra.NewAPI(cfg.API, cfg.Key)
8587
var mod model.Protocol
88+
maxn := cfg.MaxN
89+
if maxn == 0 {
90+
maxn = 4096
91+
}
92+
topp := cfg.TopP
93+
if topp == 0 {
94+
topp = 0.9
95+
}
8696

8797
switch cfg.Type {
8898
case 0:
8999
mod = model.NewOpenAI(
90100
cfg.ModelName, cfg.Separator,
91-
float32(temp)/100, 0.9, 4096,
101+
float32(temp)/100, topp, maxn,
92102
)
93103
case 1:
94104
mod = model.NewOLLaMA(
95105
cfg.ModelName, cfg.Separator,
96-
float32(temp)/100, 0.9, 4096,
106+
float32(temp)/100, topp, maxn,
97107
)
98108
case 2:
99109
mod = model.NewGenAI(
100110
cfg.ModelName,
101-
float32(temp)/100, 0.9, 4096,
111+
float32(temp)/100, topp, maxn,
102112
)
103113
default:
104114
logrus.Warnln("[aichat] unsupported AI type", cfg.Type)
@@ -255,4 +265,8 @@ func init() {
255265
Handle(newextrasetbool(&cfg.NoReplyAT))
256266
en.OnRegex("^设置AI聊天(不)?支持系统提示词$", ensureconfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
257267
Handle(newextrasetbool(&cfg.NoSystemP))
268+
en.OnPrefix("设置AI聊天最大长度", ensureconfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
269+
Handle(newextrasetuint(&cfg.MaxN))
270+
en.OnPrefix("设置AI聊天TopP", ensureconfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
271+
Handle(newextrasetfloat32(&cfg.TopP))
258272
}

0 commit comments

Comments
 (0)