Skip to content

Eric-Joker/Aha

Repository files navigation

Aha

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"))  # 返回与触发词条的语言对应的翻译
  • 等等。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages