mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-02-04 06:21:14 +00:00
fix(aichat): concurrent map write
This commit is contained in:
parent
f6934709cc
commit
1dd94c2d37
2
go.mod
2
go.mod
@ -12,7 +12,7 @@ require (
|
|||||||
github.com/FloatTech/sqlite v1.7.2
|
github.com/FloatTech/sqlite v1.7.2
|
||||||
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d
|
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d
|
||||||
github.com/FloatTech/zbpctrl v1.7.1
|
github.com/FloatTech/zbpctrl v1.7.1
|
||||||
github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5
|
github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380
|
||||||
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7
|
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7
|
||||||
github.com/RomiChan/websocket v1.4.3-0.20251002072000-d3eb41798438
|
github.com/RomiChan/websocket v1.4.3-0.20251002072000-d3eb41798438
|
||||||
github.com/Tnze/go-mc v1.20.2
|
github.com/Tnze/go-mc v1.20.2
|
||||||
|
|||||||
4
go.sum
4
go.sum
@ -16,8 +16,8 @@ github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d h1:mUQ/c3wXKsUGa4Sg9
|
|||||||
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
|
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
|
||||||
github.com/FloatTech/zbpctrl v1.7.1 h1:0yPEmCForhyMbnhTckmjDUFFDZgQp1RjO2bVF4ZVqOs=
|
github.com/FloatTech/zbpctrl v1.7.1 h1:0yPEmCForhyMbnhTckmjDUFFDZgQp1RjO2bVF4ZVqOs=
|
||||||
github.com/FloatTech/zbpctrl v1.7.1/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE=
|
github.com/FloatTech/zbpctrl v1.7.1/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE=
|
||||||
github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5 h1:EF3ZDWQUR+drINwMtEhDKAp1qPWC3iJqtigX2CjWqSo=
|
github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380 h1:M/rYDnNv3zvF6ZOSzxlgYZdNOmmJPR6BrEBlJGknn2A=
|
||||||
github.com/FloatTech/zbputils v1.7.2-0.20260128132210-62a44be0a2b5/go.mod h1:W2kaR/A5oUtEb7DnveXCc0T374VjI+f3KmOWH9FE5vU=
|
github.com/FloatTech/zbputils v1.7.2-0.20260131163621-618685d53380/go.mod h1:W2kaR/A5oUtEb7DnveXCc0T374VjI+f3KmOWH9FE5vU=
|
||||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
|
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
|
||||||
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
|
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
|
||||||
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
|
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import (
|
|||||||
"math/rand"
|
"math/rand"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/RomiChan/syncx"
|
||||||
"github.com/fumiama/deepinfra"
|
"github.com/fumiama/deepinfra"
|
||||||
goba "github.com/fumiama/go-onebot-agent"
|
goba "github.com/fumiama/go-onebot-agent"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -52,7 +53,8 @@ func init() {
|
|||||||
logrus.Warnln("ERROR: cannot get stor")
|
logrus.Warnln("ERROR: cannot get stor")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if _, ok := ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_hooked__"]; !ok && !stor.NoAgent() {
|
mp := ctx.State[control.StateKeySyncxState].(*syncx.Map[string, any])
|
||||||
|
if _, ok := mp.Load(chat.StateKeyAgentHooked); !ok && !stor.NoAgent() {
|
||||||
logrus.Infoln("[aichat] skip agent for ctx has not been hooked by agent")
|
logrus.Infoln("[aichat] skip agent for ctx has not been hooked by agent")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -76,6 +78,7 @@ func init() {
|
|||||||
stor := ctx.State[zero.StateKeyPrefixKeep+"aichatcfg_stor__"].(chat.Storage)
|
stor := ctx.State[zero.StateKeyPrefixKeep+"aichatcfg_stor__"].(chat.Storage)
|
||||||
temperature := stor.Temp()
|
temperature := stor.Temp()
|
||||||
topp, maxn := chat.AC.MParams()
|
topp, maxn := chat.AC.MParams()
|
||||||
|
mp := ctx.State[control.StateKeySyncxState].(*syncx.Map[string, any])
|
||||||
|
|
||||||
logrus.Debugln("[aichat] agent mode test: noagent", stor.NoAgent(), "hasapi", chat.AC.AgentAPI != "", "hasmodel", chat.AC.AgentModelName != "")
|
logrus.Debugln("[aichat] agent mode test: noagent", stor.NoAgent(), "hasapi", chat.AC.AgentAPI != "", "hasmodel", chat.AC.AgentModelName != "")
|
||||||
if !stor.NoAgent() && chat.AC.AgentAPI != "" && chat.AC.AgentModelName != "" && chat.AC.Key != "" {
|
if !stor.NoAgent() && chat.AC.AgentAPI != "" && chat.AC.AgentModelName != "" && chat.AC.Key != "" {
|
||||||
@ -120,7 +123,7 @@ func init() {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
hasresp = true
|
hasresp = true
|
||||||
ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_triggered__"] = struct{}{}
|
mp.Store(chat.StateKeyAgentTriggered, struct{}{})
|
||||||
for _, req := range reqs {
|
for _, req := range reqs {
|
||||||
if req.Action == goba.SVM { // is a fake action
|
if req.Action == goba.SVM { // is a fake action
|
||||||
/*if hassavemem {
|
/*if hassavemem {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user