mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-18 00:10:59 +00:00
feat: 动态使用消息处理超时时间以便其在运行时可修改 (#172)
This commit is contained in:
+21
-9
@@ -6,6 +6,7 @@ import threading
|
|||||||
import mirai.models.bus
|
import mirai.models.bus
|
||||||
from mirai import At, GroupMessage, MessageEvent, Mirai, StrangerMessage, WebSocketAdapter, HTTPAdapter, \
|
from mirai import At, GroupMessage, MessageEvent, Mirai, StrangerMessage, WebSocketAdapter, HTTPAdapter, \
|
||||||
FriendMessage, Image
|
FriendMessage, Image
|
||||||
|
from func_timeout import func_set_timeout
|
||||||
|
|
||||||
import pkg.openai.session
|
import pkg.openai.session
|
||||||
import pkg.openai.manager
|
import pkg.openai.manager
|
||||||
@@ -207,7 +208,7 @@ class QQBotManager:
|
|||||||
|
|
||||||
# 私聊消息处理
|
# 私聊消息处理
|
||||||
def on_person_message(self, event: MessageEvent):
|
def on_person_message(self, event: MessageEvent):
|
||||||
|
import config
|
||||||
reply = ''
|
reply = ''
|
||||||
|
|
||||||
if event.sender.id == self.bot.qq:
|
if event.sender.id == self.bot.qq:
|
||||||
@@ -220,9 +221,15 @@ class QQBotManager:
|
|||||||
failed = 0
|
failed = 0
|
||||||
for i in range(self.retry):
|
for i in range(self.retry):
|
||||||
try:
|
try:
|
||||||
reply = processor.process_message('person', event.sender.id, str(event.message_chain),
|
|
||||||
event.message_chain,
|
@func_set_timeout(config.process_message_timeout)
|
||||||
event.sender.id)
|
def time_ctrl_wrapper():
|
||||||
|
reply = processor.process_message('person', event.sender.id, str(event.message_chain),
|
||||||
|
event.message_chain,
|
||||||
|
event.sender.id)
|
||||||
|
return reply
|
||||||
|
|
||||||
|
reply = time_ctrl_wrapper()
|
||||||
break
|
break
|
||||||
except FunctionTimedOut:
|
except FunctionTimedOut:
|
||||||
logging.warning("person_{}: 超时,重试中({})".format(event.sender.id, i))
|
logging.warning("person_{}: 超时,重试中({})".format(event.sender.id, i))
|
||||||
@@ -242,7 +249,7 @@ class QQBotManager:
|
|||||||
|
|
||||||
# 群消息处理
|
# 群消息处理
|
||||||
def on_group_message(self, event: GroupMessage):
|
def on_group_message(self, event: GroupMessage):
|
||||||
|
import config
|
||||||
reply = ''
|
reply = ''
|
||||||
|
|
||||||
def process(text=None) -> str:
|
def process(text=None) -> str:
|
||||||
@@ -254,10 +261,15 @@ class QQBotManager:
|
|||||||
failed = 0
|
failed = 0
|
||||||
for i in range(self.retry):
|
for i in range(self.retry):
|
||||||
try:
|
try:
|
||||||
replys = processor.process_message('group', event.group.id,
|
@func_set_timeout(config.process_message_timeout)
|
||||||
str(event.message_chain).strip() if text is None else text,
|
def time_ctrl_wrapper():
|
||||||
event.message_chain,
|
replys = processor.process_message('group', event.group.id,
|
||||||
event.sender.id)
|
str(event.message_chain).strip() if text is None else text,
|
||||||
|
event.message_chain,
|
||||||
|
event.sender.id)
|
||||||
|
return replys
|
||||||
|
|
||||||
|
replys = time_ctrl_wrapper()
|
||||||
break
|
break
|
||||||
except FunctionTimedOut:
|
except FunctionTimedOut:
|
||||||
logging.warning("group_{}: 超时,重试中({})".format(event.group.id, i))
|
logging.warning("group_{}: 超时,重试中({})".format(event.group.id, i))
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
import mirai
|
import mirai
|
||||||
from func_timeout import func_set_timeout
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from mirai import MessageChain, Plain
|
from mirai import MessageChain, Plain
|
||||||
@@ -10,7 +9,8 @@ from mirai import MessageChain, Plain
|
|||||||
# 这里不使用动态引入config
|
# 这里不使用动态引入config
|
||||||
# 因为在这里动态引入会卡死程序
|
# 因为在这里动态引入会卡死程序
|
||||||
# 而此模块静态引用config与动态引入的表现一致
|
# 而此模块静态引用config与动态引入的表现一致
|
||||||
import config as config_init_import
|
# 已弃用,由于超时时间现已动态使用
|
||||||
|
# import config as config_init_import
|
||||||
|
|
||||||
import pkg.openai.session
|
import pkg.openai.session
|
||||||
import pkg.openai.manager
|
import pkg.openai.manager
|
||||||
@@ -26,7 +26,6 @@ import pkg.plugin.models as plugin_models
|
|||||||
processing = []
|
processing = []
|
||||||
|
|
||||||
|
|
||||||
@func_set_timeout(config_init_import.process_message_timeout)
|
|
||||||
def process_message(launcher_type: str, launcher_id: int, text_message: str, message_chain: MessageChain,
|
def process_message(launcher_type: str, launcher_id: int, text_message: str, message_chain: MessageChain,
|
||||||
sender_id: int) -> MessageChain:
|
sender_id: int) -> MessageChain:
|
||||||
global processing
|
global processing
|
||||||
|
|||||||
Reference in New Issue
Block a user