webman AI 二次開發(fā)必讀
注意
以下二開文檔是基于 webman AI 5.1.0 及以上版本的,如果你的版本低于此版本,請先升級到最新版本。
強烈建議新建一個應(yīng)用插件用來存放二次開發(fā)代碼,當然也可將二開代碼放置于主項目,但是不能直接修改AI的源碼,否則升級會導(dǎo)致代碼覆蓋。
接下來的章節(jié)都是基于新建插件的方式二開AI,如果你選擇將二開代碼放置于主項目,代碼是類似的,只不過目錄及命名空間不同。
創(chuàng)建插件方法
首先確保安裝了 webman/console 組件并且確保版本>=1.3.6,如果沒有安裝或者版本不對,請執(zhí)行以下命令安裝或升級
composer require webman/console ^v1.3.6
執(zhí)行命令創(chuàng)建插件
php webman app-plugin:create foo
插件名稱為字母組合,上面示例中使用foo
作為插件名
執(zhí)行后會自動創(chuàng)建plugin/foo
目錄,這個目錄的文件結(jié)構(gòu)與webman是一樣的,開發(fā)體驗也類似。如果想更多了解webman應(yīng)用插件請參考應(yīng)用插件
我們所有的二開代碼應(yīng)該放到 plugin/{你的插件名稱}/
目錄下。
二開原理
為了不入侵AI的源碼,我們可以通過以下方法二次開發(fā)AI
- 利用中間件更改頁面內(nèi)容(包括插入css、js、html等,下同)
- 利用路由覆蓋更改頁面內(nèi)容,也就是將原有路由指向新的控制器
- 利用中間件給某些控制器的添加業(yè)務(wù)邏輯
- 利用事件監(jiān)聽器介入注冊、登錄、退出、支付、菜單列表、大模型請求、大模型響應(yīng)、圖片生成等事件,完成二次開發(fā)
下面的章節(jié)將詳細介紹以上幾種方法。