Aha 是一个目标为跨平台、高性能、极为灵活的 Python 聊天机器人后端框架。提供了很多统一、标准化的轮子,为需求实现提供高度自由便捷的支持。
具有 free threading 的大量应用,引领易用的聊天机器人后端框架的性能上限。
目前本项目还在毛坯期,基本只供我自用,未提供懒人设施,若有需要可以提 issue。
-
基于 DSL 的词条匹配系统
from core.expr import Pmsg, Or from core.dispatcher import on_message @on_message((Pmsg == "绝对匹配") | (Pmsg.fullmatch("正则匹配"))) # 直接作为 `on_message` 的参数或逻辑运算类的参数时可省略一些字段。 @on_message("正则匹配")
-
统一配置系统
# modules/aichat.py from core.config import cfg LENGTH = cfg.register("max_length", 20, "每个会话最大历史记录数。") cfg.max_length # 以后可如此获取配置
会在项目根目录的 config.xxx.yml 中自动生成↓
modules.aichat: # 每个会话最大历史记录数,必须大于2。 max_length: 20
-
国际化支持
from core.i18n import _ from utils.aha import at_or_str @on_message(_("command") % (a := at_or_str(), a), Pprefix == True) async def linker(event: Message, localizer): return await event.reply(localizer("reply")) # 返回与触发词条的语言对应的翻译
-
等等。