From fae39bbb019710f23d178ce19a15f0eac06fef50 Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sat, 7 Nov 2026 23:11:43 +0800 Subject: [PATCH 1/6] dev --- service/timer.py | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/service/timer.py b/service/timer.py index 0414c92..422f690 100644 --- a/service/timer.py +++ b/service/timer.py @@ -9,6 +9,7 @@ import asyncio class TimerService: def __init__(self,star:Star) -> None: self.star = star + self.tasks:list[TimerTask] = [] pass # 解析模板并进行定时 @@ -39,8 +40,42 @@ class TimerService: # 定时: def timer(self,event:AstrMessageEvent,Sec:int): - asyncio.create_task(self.timer_task()) + logger.debug(f"进行一个{Sec}秒的对{event.get_sender_id}({event.get_sender_name})的等") + task = asyncio.create_task(self.timer_task(event,Sec)) + self.tasks.append(TimerTask(event=event,task=task)) + + # 等待,唤醒任务本体 + async def timer_task(self,event:AstrMessageEvent,second:int): + await asyncio.sleep(second) + await self.response_time(event) + + # 调用llm + async def response_time(self,event:AstrMessageEvent): + try: + umo = event.unified_msg_origin + conv_mnger = self.star.context.conversation_manager + provider =await self.star.context.get_current_chat_provider_id(umo) + conv_id = await conv_mnger.get_curr_conversation_id(umo) + if conv_id is None: + logger.error(f"conversation_id获取失败!!umo:{umo}") + return False + conversation = await conv_mnger.get_conversation(umo,conv_id) + + except: + logger.error("消息管理失败!") + return False + + req = await self.star.context.llm_generate( + chat_provider_id=provider, + prompt="请输入你的上下文,这里是测试环境,你的输出将会被打印至控制台", + system_prompt="请输入你的上下文,这里是测试环境,你的输出将会被打印至控制台" + + ) + logger.debug(f"llm结果:{req.completion_text }") + +class TimerTask: + def __init__(self,event:AstrMessageEvent,task:asyncio.Task) -> None: + self.event = event + self.task = task + pass - async def timer_task(self): - await asyncio.sleep(1) - logger.warning("awa现在过去一秒了哦") \ No newline at end of file From 03031ca7e3abdd3b3f17201a0102165e576454e3 Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sat, 7 Nov 2026 23:22:11 +0800 Subject: [PATCH 2/6] dev --- service/timer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service/timer.py b/service/timer.py index 422f690..19a2ed4 100644 --- a/service/timer.py +++ b/service/timer.py @@ -64,11 +64,11 @@ class TimerService: except: logger.error("消息管理失败!") return False - + logger.debug(f"获取上下文:{conversation}") req = await self.star.context.llm_generate( chat_provider_id=provider, prompt="请输入你的上下文,这里是测试环境,你的输出将会被打印至控制台", - system_prompt="请输入你的上下文,这里是测试环境,你的输出将会被打印至控制台" + # contexts=conversation ) logger.debug(f"llm结果:{req.completion_text }") From 839ba8cd0cd4bec0b946a36efed4918a8daeee51 Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sun, 8 Nov 2026 00:05:19 +0800 Subject: [PATCH 3/6] dev --- service/timer.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/service/timer.py b/service/timer.py index 19a2ed4..5980c9e 100644 --- a/service/timer.py +++ b/service/timer.py @@ -5,6 +5,7 @@ from astrbot.core.message.message_event_result import MessageChain,Plain from ..tool.pattern import Pattern from astrbot.api.star import Star import asyncio +import json class TimerService: def __init__(self,star:Star) -> None: @@ -60,6 +61,13 @@ class TimerService: logger.error(f"conversation_id获取失败!!umo:{umo}") return False conversation = await conv_mnger.get_conversation(umo,conv_id) + if conversation is None : + conversation = [] + try: + history_list = json.loads(conversation.history) + except: + logger.error("上下文获取失败") + history_list = [] except: logger.error("消息管理失败!") @@ -67,8 +75,8 @@ class TimerService: logger.debug(f"获取上下文:{conversation}") req = await self.star.context.llm_generate( chat_provider_id=provider, - prompt="请输入你的上下文,这里是测试环境,你的输出将会被打印至控制台", - # contexts=conversation + prompt="<你等待的时间内对方没有回复>", + contexts=history_list ) logger.debug(f"llm结果:{req.completion_text }") From 1d2412bafd74faae10a16f788bd727e4d0faa036 Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sun, 8 Nov 2026 00:19:04 +0800 Subject: [PATCH 4/6] dev --- service/timer.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/service/timer.py b/service/timer.py index 5980c9e..9b285ee 100644 --- a/service/timer.py +++ b/service/timer.py @@ -72,13 +72,17 @@ class TimerService: except: logger.error("消息管理失败!") return False - logger.debug(f"获取上下文:{conversation}") - req = await self.star.context.llm_generate( + # logger.debug(f"获取上下文:{conversation}") + try: + req = await self.star.context.llm_generate( chat_provider_id=provider, prompt="<你等待的时间内对方没有回复>", contexts=history_list ) + except: + logger.error("llm返回失败了喵...QAQ") + return logger.debug(f"llm结果:{req.completion_text }") class TimerTask: From bc18689f71f9f97d899d95aedf830bc9b5757e3f Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sun, 8 Nov 2026 00:51:30 +0800 Subject: [PATCH 5/6] =?UTF-8?q?dev:=E8=B0=83=E7=94=A8=E5=92=8C=E5=8F=91?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/timer.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/service/timer.py b/service/timer.py index 9b285ee..71689e9 100644 --- a/service/timer.py +++ b/service/timer.py @@ -41,7 +41,7 @@ class TimerService: # 定时: def timer(self,event:AstrMessageEvent,Sec:int): - logger.debug(f"进行一个{Sec}秒的对{event.get_sender_id}({event.get_sender_name})的等") + logger.debug(f"进行一个{Sec}秒的对{event.get_sender_id()}({event.get_sender_name()})的等") task = asyncio.create_task(self.timer_task(event,Sec)) self.tasks.append(TimerTask(event=event,task=task)) @@ -77,7 +77,8 @@ class TimerService: req = await self.star.context.llm_generate( chat_provider_id=provider, prompt="<你等待的时间内对方没有回复>", - contexts=history_list + contexts=history_list, + tools=None ) except: @@ -85,6 +86,11 @@ class TimerService: return logger.debug(f"llm结果:{req.completion_text }") + # 保存至历史消息 + + #发送至平台 + await event.send(MessageChain().message(req.completion_text)) + class TimerTask: def __init__(self,event:AstrMessageEvent,task:asyncio.Task) -> None: self.event = event From d1a011f206bcb892a8e0eaf3222ce3eeebaa58c9 Mon Sep 17 00:00:00 2001 From: Wbucket <2595141012@stu.hqu.edu.cn> Date: Sun, 8 Nov 2026 01:06:50 +0800 Subject: [PATCH 6/6] dev: log --- main.py | 2 -- service/timer.py | 8 ++++---- tool/pattern.py | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index c7acd1a..a322a83 100644 --- a/main.py +++ b/main.py @@ -20,8 +20,6 @@ class MyPlugin(Star): # 注册指令的装饰器 @filter.on_llm_request() async def content_inject(self, event: AstrMessageEvent,req : ProviderRequest): - """这是一个 hello world 指令""" # 这是 handler 的描述,将会被解析方便用户了解插件内容。建议填写。 - # logger.info("系统提示词:"+req.system_prompt) req.extra_user_content_parts.append(TextPart( text=( "-----wt使用----" diff --git a/service/timer.py b/service/timer.py index 71689e9..9f830de 100644 --- a/service/timer.py +++ b/service/timer.py @@ -17,14 +17,14 @@ class TimerService: def parse(self,event:AstrMessageEvent): res = event.get_result() if not res: - logger.info("[wait_msg]:解析失败:没拿到消息链") + logger.warning("[wait_msg]:解析失败:没拿到消息链") return Second:int|None = None logger.info("[wait_msg]:开始解析模板") for index,i in enumerate(res.chain) : - logger.info(f"获得消息链类型:{i.type}内容:{i}") + logger.info(f"获得消息链类型:{i.type}") if not isinstance(i,Plain) or not i.type == "Plain": continue dump = Pattern(i.text) @@ -41,7 +41,7 @@ class TimerService: # 定时: def timer(self,event:AstrMessageEvent,Sec:int): - logger.debug(f"进行一个{Sec}秒的对{event.get_sender_id()}({event.get_sender_name()})的等") + logger.info(f"进行一个{Sec}秒的对{event.get_sender_id()}({event.get_sender_name()})的等") task = asyncio.create_task(self.timer_task(event,Sec)) self.tasks.append(TimerTask(event=event,task=task)) @@ -66,7 +66,7 @@ class TimerService: try: history_list = json.loads(conversation.history) except: - logger.error("上下文获取失败") + logger.warning("上下文获取失败,使用空上下文喵") history_list = [] except: diff --git a/tool/pattern.py b/tool/pattern.py index 6e6526a..25768ff 100644 --- a/tool/pattern.py +++ b/tool/pattern.py @@ -48,7 +48,7 @@ class Pattern: #消除不完整/非法模板 o_str= o_str.replace("","") o_str=o_str.replace("","") - logger.info(f"过滤后消息:{o_str}") + logger.debug(f"过滤后消息:{o_str}") return { "content":o_str,