當前位置: 妍妍網 > 碼農

如何用大模型實作ChatGPT外掛程式?來看看Semantic Kernel 的 OpenAPI外掛程式

2024-03-19碼農

ChatGPT外掛程式在去年釋出時轟動一時,在年末就被更豐富的套用形態GPTs替代了。不過基於OpenAPI的外掛程式仍然有很大作用。這對於把大模型與現有系統整合提供了分布式的支持。

Semantic Kernel早就意識到這一點,並事件了自己的OpenAPI外掛程式。只要套用釋出了swagger文件,或者匯出了manifest檔,即可建立OpenAPI外掛程式,讓利用大模型的function call能力,呼叫系統的介面,實作與業務的整合,讓原有業務變擁有AI能力。

本文就基於星火大模型3.5,講解實作一個GPT外掛程式的步驟。

首先,我們寫一個平平無奇的介面,可以用WebApi,也可以Minimal API。註意要把介面方法和參數、返回值的描述都寫清楚。因為他們會被作為大模型命中方法的依據。

然後就是swagger的配置了。配置中有一個地方容易出錯,就是要設定自訂OperationId,否則SK讀取時會找不到函式。這裏要設定成API的唯一標識。

生成swagger文件後,我們把swagger.json配置到套用中。

然後在在構建Kernel時,呼叫CreatePluginFromOpenApiAsync方法將swagger.json轉換成KernelFunction列表。傳入外掛程式名,還有swagger.json的所在地址(這裏也可以是檔流的方式已支持離線文件)如果需要需要驗證的話,還要配置AuthCallback委托,查詢到token後註入到Request中。

還可以直接用一個文件建立一個外掛程式,呼叫ImportPluginFromOpenApiAsync方法即可。

最後就是結果展示了。下圖所示,大模型呼叫了我們圖一的API,把返回值重新組織語言進行回復。

我下一個目標就是GPTs,讓大模型回復展示外掛程式的UI。大家敬請期待!