🐛 fix: delete conversation

 feat: supports active reply whitelist
This commit is contained in:
Soulter
2025-02-14 01:43:52 +08:00
parent 50740c94ab
commit 67095f97b1
5 changed files with 23 additions and 1 deletions
+8
View File
@@ -66,6 +66,7 @@ DEFAULT_CONFIG = {
"method": "possibility_reply",
"possibility_reply": 0.1,
"prompt": "",
"whitelist": []
}
},
"content_safety": {
@@ -815,6 +816,13 @@ CONFIG_METADATA_2 = {
"obvious_hint": True,
"hint": "启用后,会根据触发概率主动回复群聊内的对话。QQ官方API(qq_official)不可用",
},
"whitelist": {
"description": "主动回复白名单",
"type": "list",
"items": {"type": "string"},
"obvious_hint": True,
"hint": "启用后,只有在白名单内的群聊会被主动回复。为空时不启用白名单过滤。需要通过 /sid 获取 SID 添加到这里。",
},
"method": {
"description": "回复方法",
"type": "string",
+1
View File
@@ -50,6 +50,7 @@ class ConversationManager():
cid=conversation_id
)
del self.session_conversations[unified_msg_origin]
sp.put("session_conversation", self.session_conversations)
async def get_curr_conversation_id(self, unified_msg_origin: str) -> str:
'''获取会话当前的对话 ID'''
+4
View File
@@ -247,6 +247,10 @@ class SQLiteDatabase(BaseDatabase):
res = c.fetchone()
c.close()
if not res:
return
return Conversation(*res)
def new_conversation(self, user_id: str, cid: str):
+7
View File
@@ -32,6 +32,7 @@ class LongTermMemory:
self.ar_method = self.active_reply["method"]
self.ar_possibility = self.active_reply["possibility_reply"]
self.ar_prompt = self.active_reply.get("prompt", "")
self.ar_whitelist = self.active_reply.get("whitelist", [])
# self.put_history_to_prompt = self.config["put_history_to_prompt"]
@@ -67,6 +68,12 @@ class LongTermMemory:
if event.is_at_or_wake_command:
# if the message is a command, let it pass
return False
if self.ar_whitelist and (
event.unified_msg_origin not in self.ar_whitelist
and (event.get_group_id() and event.get_group_id() not in self.ar_whitelist)
):
return False
match self.ar_method:
case "possibility_reply":
+3 -1
View File
@@ -785,7 +785,9 @@ UID: {user_id} 此 ID 可用于设置管理员。/op <UID> 授权管理员, /deo
event.unified_msg_origin,
session_curr_cid
)
history = json.loads(conv.history)
history = []
if conv:
history = json.loads(conv.history)
prompt = self.ltm.ar_prompt
if not prompt: