Jianglang před 3 roky
rodič
revize
176f77ba5b
1 změnil soubory, kde provedl 36 přidání a 3 odebrání
  1. 36 3
      plugins/README.md

+ 36 - 3
plugins/README.md

@@ -1,3 +1,11 @@
+**Table of Content**
+
+- [插件化初衷](#插件化初衷)
+- [插件安装方法](#插件化安装方法)
+- [插件化实现](#插件化实现)
+- [插件编写示例](#插件编写示例)
+- [插件设计建议](#插件设计建议)
+
 ## 插件化初衷
 
 之前未插件化的代码耦合程度高,如果要定制一些个性化功能(如流量控制、接入`NovelAI`画图平台等),需要了解代码主体,避免影响到其他的功能。多个功能同时存在时,无法调整功能的优先级顺序,功能配置项也非常混乱。
@@ -11,7 +19,23 @@
 - [x] 插件化能够自由开关和调整优先级。
 - [x] 每个插件可在插件文件夹内维护独立的配置文件,方便代码的测试和调试,可以在独立的仓库开发插件。
 
-PS: 插件目前支持`itchat`和`wechaty`
+## 插件安装方法
+
+在本仓库中预置了一些插件,如果要安装其他仓库的插件,有两种方法。
+
+- 第一种方法是在将下载的插件文件都解压到"plugins"文件夹的一个单独的文件夹,最终插件的代码都位于"plugins/PLUGIN_NAME/*"中。启动程序后,如果插件的目录结构正确,插件会自动被扫描加载。
+    
+- 第二种方法是`Godcmd`插件,它是预置的管理员插件,能够让程序在运行时就能安装插件。
+    
+    安装插件的命令是"#installp [仓库源](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/plugins/source.json)记录的插件名/仓库地址"。这是管理员命令,认证方法在[这里](https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/godcmd)。
+    
+    - 安装[仓库源](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/plugins/source.json)记录的插件:#installp sdwebui
+
+    - 安装指定仓库的插件:#installp https://github.com/lanvent/plugin_sdwebui.git
+    
+    在安装之后,需要执行"#scanp"命令来扫描加载新安装的插件(或者重新启动程序)。
+    
+安装插件后需要注意有些插件有自己的配置模板,一般要去掉".template"新建一个配置文件。
 
 ## 插件化实现
 
@@ -26,7 +50,7 @@ PS: 插件目前支持`itchat`和`wechaty`
     1.收到消息 ---> 2.产生回复 ---> 3.包装回复 ---> 4.发送回复
 ```
 
-以下是它们的默认处理逻辑(太长不看,可跳):
+以下是它们的默认处理逻辑(太长不看,可跳到[插件编写示例](#插件编写示例)):
 
 #### 1. 收到消息
 
@@ -154,7 +178,8 @@ PS: 插件目前支持`itchat`和`wechaty`
 
 ### 1. 创建插件
 
-在`plugins`目录下创建一个插件文件夹`hello`。然后,在该文件夹中创建一个与文件夹同名的`.py`文件`hello.py`。
+在`plugins`目录下创建一个插件文件夹`hello`。然后,在该文件夹中创建``__init__.py``文件,在``__init__.py``中将其他编写的模块文件导入。在程序启动时,插件管理器会读取``__init__.py``的所有内容。
+
 ```
 plugins/
 └── hello
@@ -162,6 +187,11 @@ plugins/
     └── hello.py
 ```
 
+``__init__.py``的内容:
+```
+from .hello import *
+```
+
 ### 2. 编写插件类
 
 在`hello.py`文件中,创建插件类,它继承自`Plugin`。
@@ -234,5 +264,8 @@ class Hello(Plugin):
 
 - 尽情将你想要的个性化功能设计为插件。
 - 一个插件目录建议只注册一个插件类。建议使用单独的仓库维护插件,便于更新。
+
+  在测试调试好后提交`PR`,把自己的仓库加入到[仓库源](https://github.com/zhayujie/chatgpt-on-wechat/blob/master/plugins/source.json)中。
+  
 - 插件的config文件、使用说明`README.md`、`requirement.txt`等放置在插件目录中。
 - 默认优先级不要超过管理员插件`Godcmd`的优先级(999),`Godcmd`插件提供了配置管理、插件管理等功能。