@@ -29,18 +29,32 @@ var (
2929 "- 查看AI聊天系统提示词\n " +
3030 "- 重置AI聊天系统提示词\n " +
3131 "- 设置AI聊天系统提示词xxx\n " +
32+ "- 设置AI聊天Agent性格" +
33+ "- 查看AI聊天Agent性格xxx" +
34+ "- 重置AI聊天Agent性格\n " +
3235 "- 设置AI聊天分隔符</think>(留空则清除)\n " +
3336 "- 设置AI聊天(不)响应AT\n " +
3437 "- 设置AI聊天最大长度4096\n " +
3538 "- 设置AI聊天TopP 0.9\n " +
3639 "- 设置AI聊天(不)以AI语音输出\n " +
3740 "- 查看AI聊天配置\n " +
41+ "- 重置AI聊天Agent\n " +
3842 "- 重置AI聊天\n " ,
3943 })
4044)
4145
4246func init () {
43- en .UsePreHandler (func (ctx * zero.Ctx ) bool {
47+ en .UsePreHandler (chat .EnsureConfig , func (ctx * zero.Ctx ) bool {
48+ if ! chat .IsAgentCharReady {
49+ if chat .AC .AgentChar != "" {
50+ chat .AgentChar = []byte (chat .AC .AgentChar )
51+ }
52+ chat .IsAgentCharReady = true
53+ }
54+ k := zero .StateKeyPrefixKeep + "aichatcfg_stor__"
55+ if _ , ok := ctx .State [k ]; ok {
56+ return true
57+ }
4458 gid := ctx .Event .GroupID
4559 if gid == 0 {
4660 gid = - ctx .Event .UserID
@@ -50,7 +64,7 @@ func init() {
5064 logrus .Warnln ("ERROR: " , err )
5165 return false
5266 }
53- ctx .State [zero . StateKeyPrefixKeep + "aichatcfg_stor__" ] = stor
67+ ctx .State [k ] = stor
5468 return true
5569 })
5670 en .OnPrefix ("设置AI聊天触发概率" , zero .AdminPermission ).SetBlock (true ).
@@ -83,9 +97,14 @@ func init() {
8397 Handle (chat .NewExtraSetStr (& chat .AC .AgentModelName ))
8498 en .OnPrefix ("设置AI聊天系统提示词" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).
8599 Handle (chat .NewExtraSetStr (& chat .AC .SystemP ))
100+ en .OnPrefix ("设置AI聊天Agent性格" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).
101+ Handle (chat .NewExtraSetStr (& chat .AC .AgentChar ))
86102 en .OnFullMatch ("查看AI聊天系统提示词" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
87103 ctx .SendChain (message .Text (chat .AC .SystemP ))
88104 })
105+ en .OnFullMatch ("查看AI聊天Agent性格" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
106+ ctx .SendChain (message .Text (chat .AC .AgentChar ))
107+ })
89108 en .OnFullMatch ("重置AI聊天系统提示词" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
90109 c , ok := ctx .State ["manager" ].(* ctrl.Control [* zero.Ctx ])
91110 if ! ok {
@@ -100,6 +119,20 @@ func init() {
100119 }
101120 ctx .SendChain (message .Text ("成功" ))
102121 })
122+ en .OnFullMatch ("重置AI聊天Agent性格" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
123+ c , ok := ctx .State ["manager" ].(* ctrl.Control [* zero.Ctx ])
124+ if ! ok {
125+ ctx .SendChain (message .Text ("ERROR: no such plugin" ))
126+ return
127+ }
128+ chat .AC .AgentChar = ""
129+ err := c .SetExtra (& chat .AC )
130+ if err != nil {
131+ ctx .SendChain (message .Text ("ERROR: set extra err: " , err ))
132+ return
133+ }
134+ ctx .SendChain (message .Text ("成功, 请重置AI聊天Agent" ))
135+ })
103136 en .OnPrefix ("设置AI聊天分隔符" , chat .EnsureConfig , zero .OnlyPrivate , zero .SuperUserPermission ).SetBlock (true ).
104137 Handle (chat .NewExtraSetStr (& chat .AC .Separator ))
105138 en .OnRegex ("^设置AI聊天(不)?响应AT$" , chat .EnsureConfig , zero .SuperUserPermission ).SetBlock (true ).
@@ -137,6 +170,10 @@ func init() {
137170 message .Text ("【当前AI聊天全局配置】\n " , & chat .AC ),
138171 )
139172 })
173+ en .OnFullMatch ("重置AI聊天Agent" , chat .EnsureConfig , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
174+ chat .ResetAgents ()
175+ ctx .SendChain (message .Text ("成功" ))
176+ })
140177 en .OnFullMatch ("重置AI聊天" , chat .EnsureConfig , zero .SuperUserPermission ).SetBlock (true ).Handle (func (ctx * zero.Ctx ) {
141178 chat .ResetChat ()
142179 ctx .SendChain (message .Text ("成功" ))
0 commit comments