Skip to content

函数插件指南

binary-husky edited this page Apr 13, 2023 · 16 revisions

函数插件热更新

小Tip: 函数插件支持热更新,您在改写的任何代码都会即刻生效,不需要重启项目。实现方法很简单,在functional_crazy.py中用HotReload修饰器包一下即可,例如:

"[仅供开发调试] 批量总结PDF文档": {
    "Color": "stop",
    "Function": HotReload(批量总结PDF文档)  # HotReload 的意思是热更新,修改函数插件代码后,不需要重启程序,代码直接生效
},

单线程Demo(只有25行代码)

高级功能函数模板

多线程Demo(75行代码)

源代码解析_多线程

插件PR小建议

  1. 函数插件如果能单独成立一个.py文件,把新写的函数都放在其中,再好不过了。如果新增函数很多,请在crazy_functions新建一个二级文件夹盛放您的工具。

  2. 新增的pip依赖不需要放进requirements.txt,但是需要在函数开头试着import一下,如果失败,给一下安装指令,比如crazy_functions/批量总结PDF文档.py当中:

    # 尝试导入依赖,如果缺少依赖,则给出安装建议
    try:
        import fitz # 尝试导入依赖
    except:
        # 如果缺少依赖fitz,则给出安装建议,这里是建议安装pymupdf,安装完pymupdf就有了fitz
        report_execption(chatbot, history, 
            a = f"解析项目: {txt}", 
            b = f"导入软件依赖失败。使用该模块需要额外依赖,安装方法```pip install --upgrade pymupdf```。")
        yield chatbot, history, '正常'
        return
  1. 在函数开头说明功能,如果您希望标注您的昵称、联系方式、合作声明或者更个性化一点的东西等都是完全ok的,比如crazy_functions/批量总结PDF文档.py当中:
    # 基本信息:功能、贡献者
    chatbot.append([
        "函数插件功能?",
        "批量总结PDF文档。函数插件贡献者: ValeriaWong"])
    yield chatbot, history, '正常'