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