Compare commits

..
6 Commits
Author SHA1 Message Date
Wbucket f6c55bda6b feat:定时消息+发送 2026-11-08 01:07:36 +08:00
Wbucket d1a011f206 dev: log 2026-11-08 01:06:50 +08:00
Wbucket bc18689f71 dev:调用和发送 2026-11-08 00:51:30 +08:00
Wbucket 1d2412bafd dev 2026-11-08 00:19:04 +08:00
Wbucket 00f122a15f feat:模板与过滤消息 2026-11-06 23:24:22 +08:00
Wbucket 127772756d feat:doc 2026-11-06 23:24:13 +08:00
3 changed files with 18 additions and 10 deletions
-2
View File
@@ -20,8 +20,6 @@ class MyPlugin(Star):
# 注册指令的装饰器 # 注册指令的装饰器
@filter.on_llm_request() @filter.on_llm_request()
async def content_inject(self, event: AstrMessageEvent,req : ProviderRequest): async def content_inject(self, event: AstrMessageEvent,req : ProviderRequest):
"""这是一个 hello world 指令""" # 这是 handler 的描述,将会被解析方便用户了解插件内容。建议填写。
# logger.info("系统提示词:"+req.system_prompt)
req.extra_user_content_parts.append(TextPart( req.extra_user_content_parts.append(TextPart(
text=( text=(
"-----wt使用----" "-----wt使用----"
+17 -7
View File
@@ -17,14 +17,14 @@ class TimerService:
def parse(self,event:AstrMessageEvent): def parse(self,event:AstrMessageEvent):
res = event.get_result() res = event.get_result()
if not res: if not res:
logger.info("[wait_msg]:解析失败:没拿到消息链") logger.warning("[wait_msg]:解析失败:没拿到消息链")
return return
Second:int|None = None Second:int|None = None
logger.info("[wait_msg]:开始解析模板") logger.info("[wait_msg]:开始解析模板")
for index,i in enumerate(res.chain) : 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": if not isinstance(i,Plain) or not i.type == "Plain":
continue continue
dump = Pattern(i.text) dump = Pattern(i.text)
@@ -41,7 +41,7 @@ class TimerService:
# 定时: # 定时:
def timer(self,event:AstrMessageEvent,Sec:int): 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)) task = asyncio.create_task(self.timer_task(event,Sec))
self.tasks.append(TimerTask(event=event,task=task)) self.tasks.append(TimerTask(event=event,task=task))
@@ -66,21 +66,31 @@ class TimerService:
try: try:
history_list = json.loads(conversation.history) history_list = json.loads(conversation.history)
except: except:
logger.error("上下文获取失败") logger.warning("上下文获取失败,使用空上下文喵")
history_list = [] history_list = []
except: except:
logger.error("消息管理失败!") logger.error("消息管理失败!")
return False return False
logger.debug(f"获取上下文:{conversation}") # logger.debug(f"获取上下文:{conversation}")
req = await self.star.context.llm_generate( try:
req = await self.star.context.llm_generate(
chat_provider_id=provider, chat_provider_id=provider,
prompt="<你等待的时间内对方没有回复>", prompt="<你等待的时间内对方没有回复>",
contexts=history_list contexts=history_list,
tools=None
) )
except:
logger.error("llm返回失败了喵...QAQ")
return
logger.debug(f"llm结果:{req.completion_text }") logger.debug(f"llm结果:{req.completion_text }")
# 保存至历史消息
#发送至平台
await event.send(MessageChain().message(req.completion_text))
class TimerTask: class TimerTask:
def __init__(self,event:AstrMessageEvent,task:asyncio.Task) -> None: def __init__(self,event:AstrMessageEvent,task:asyncio.Task) -> None:
self.event = event self.event = event
+1 -1
View File
@@ -48,7 +48,7 @@ class Pattern:
#消除不完整/非法模板 #消除不完整/非法模板
o_str= o_str.replace("<wt>","") o_str= o_str.replace("<wt>","")
o_str=o_str.replace("</wt>","") o_str=o_str.replace("</wt>","")
logger.info(f"过滤后消息:{o_str}") logger.debug(f"过滤后消息:{o_str}")
return { return {
"content":o_str, "content":o_str,