ChatGPT插件使用攻略,解鎖互聯(lián)網(wǎng)新體驗
最近,OpenAI發(fā)布了ChatGPT的新功能:插件系統(tǒng)。ChatGPT現(xiàn)在可以進行功能擴展并執(zhí)行新的任務,比如:
- 檢索實時信息:例如,體育比分、股票價格、最新的新聞等。
- 檢索知識庫信息:例如,公司文件、個人筆記等。
- 代表用戶執(zhí)行操作:例如,預訂航班、訂購食物等。
ChatGPT的知識庫是用截至2021年9月的數(shù)據(jù)訓練的,但通過使用這些插件,ChatGPT現(xiàn)在能夠在網(wǎng)絡上搜索最新的答案,這樣就消除了僅依賴其知識庫的限制。
創(chuàng)建自定義插件
OpenAI也能讓任何開發(fā)者都能創(chuàng)建自己的插件。盡管目前開發(fā)者需要加入等待名單(https://openai.com/waitlist/plugins),但創(chuàng)建插件的文件已經(jīng)可以使用。
可以在這個網(wǎng)頁找到更多關于插件流程的信息(https://platform.openai.com/docs/plugins/introduction)。
在這個網(wǎng)頁可以找到示例代碼(https://platform.openai.com/docs/plugins/examples)。
文檔只顯示了第三方API和ChatGPT之間的集成是如何進行的。接下來本文將探討這種集成的內(nèi)部運行細節(jié):
“大語言模型在沒有接受過相關訓練的情況下,是如何執(zhí)行操作的?”
LangChain簡介
LangChain是一個用于創(chuàng)建聊天機器人、生成性問題回答、總結等的框架
LangChain是Harrison Chase(hwchase17)在2022年開發(fā)的一個工具,可用于協(xié)助開發(fā)者將第三方應用程序整合到大型語言模型(LLM)中。
借用如下所示的示例來解釋它的工作模式:
從這個示例中可以看到三個主要部分:
- LLM:LLM是LangChain的一個核心組件,它幫助代理理解自然語言。在這個示例中,使用了OpenAI的默認模型。根據(jù)源代碼(https://github.com/hwchase17/langchain/blob/master/langchain/llms/openai.py#L133),默認模型是text-davinci-003。
- 代理:代理使用LLM來決定采取哪些行動,以何種順序進行。一個行動可以是使用一個工具并觀察其輸出,也可以是向用戶返回一個響應。
在這里使用的是0-shot-react-description。從它的文件中可以了解到,"這個代理使用ReAct框架,完全根據(jù)工具的描述來決定使用哪個工具",將在后面使用這些信息。
- 工具:代理可以用來與世界互動的功能。在這個例子中,使用了兩個工具:
serpapi:一個圍繞https://serpapi.com/ API的包裝器。它用于瀏覽網(wǎng)頁。
llm-math:使代理能夠在提示中回答與數(shù)學有關的問題,如 "他當前的年齡的0.23次方是多少?" 。
當運行該腳本時,代理會做幾件事,如瀏覽誰是Olivia Wilde的男朋友、提取他的名字、詢問Harry Style的年齡、執(zhí)行搜索并使用llm-math工具計算29^0.23,即2.16。
LangChain的最大優(yōu)點是它不依賴于單一的提供者,正如文檔(https://python.langchain.com/en/latest/modules/llms/integrations.html)中所介紹的那樣。
為什么LangChain能為ChatGPT插件系統(tǒng)提供強大的功能?
3月21日,OpenAI最強合作伙伴微軟發(fā)布了MM-REACT,揭示了ChatGPT的多模態(tài)推理和行動(https://github.com/microsoft/MM-REACT)。
當查看這個“系統(tǒng)范式”的功能時,可以看到每個例子都涉及到語言模型和一些外部應用程序之間的互動。
通過查看所提供的示例代碼(https://github.com/microsoft/MM-REACT/blob/main/sample.py),我們可以看到,de model+tools交互的實現(xiàn)是用LangChain做的。README.md文件(https://github.com/microsoft/MM-REACT/blob/main/README.md)也指出“MM-REACT的代碼是基于langchain的”。
結合這些證據(jù),再加上ChatGPT插件文檔中提到“插件描述、API請求和API響應都被插入到與ChatGPT的對話中。”可以假設插件系統(tǒng)添加了不同的插件作為代理的工具,在本例中就是ChatGPT。
也有可能是OpenAI把ChatGPT變成了一個類型為zero-shot-react-description的代理來支持這些插件(也就是我們在之前的示例中看到的類型)。因為API的描述被插入到對話中,這符合代理的預期,可以從下面的文檔摘錄中看到。
LangChain
結論
雖然插件系統(tǒng)尚未向用戶開放,但可以利用已發(fā)布的文檔和MM-REACT來體驗ChatGPT插件系統(tǒng)的強大功能。