Closed Soulter closed 1 month ago
中间件支持接受并修改消息事件(AstrMessageEvent),然后将修改后的消息事件传给下一个中间件。最后,消息事件会交由 LLM 模块处理。以此可以将内容审查解耦,并且支持语音转文字(#197)、人格设置等等。
在 Context 下新增了 register_middleware() 方法。
register_middleware()
一个简单的注册 middleware 的例子如下:
class HelloWorldPlugin: def __init__(self, context: Context) -> None: self.context = context middleware = Middleware( name="audio_to_text", description="语音转文字", origin="HelloWorldPlugin", func=self.audio_to_text ) self.context.register_middleware(middleware) async def audio_to_text(self, message: AstrMessageEvent, context: Context): # 必须接收这两个参数。 text = self.audio_to_text(message.message_obj) message.message_str = text # 直接原地修改。
Motivation
中间件支持接受并修改消息事件(AstrMessageEvent),然后将修改后的消息事件传给下一个中间件。最后,消息事件会交由 LLM 模块处理。以此可以将内容审查解耦,并且支持语音转文字(#197)、人格设置等等。
Modifications
在 Context 下新增了
register_middleware()
方法。一个简单的注册 middleware 的例子如下: