今天小編分享的健康經驗:我們給AutoGPT寫了個插件,手把手看看它的玩法~,歡迎閱讀。
自從 ChatGPT 火了之後,每隔一陣,就會有新的基于 GPT 的產品出現,搞得大家是又激動又緊張。
最近又有一個叫AutoGPT的應用火了。顧名思義,它能「自動完成你給的任務」。就是你告訴它它的角色是啥,然後描述你的任務需求,剩下的,它能全自動完成。比如你可以讓它 cos 一個市場研究員,任務是完成新款運動鞋的市場分析,然後撰寫一份報告。
在執行任務的過程中,AutoGPT 會自己分析需求,制定每一步的計劃,直到最後完成你交給它的任務。
已經有很多用戶上手體驗了。比如有人拿他來自動寫個網站,或者在網上搜集某個行業的競争對手的情況并整理成報告,給人感覺是這個 AI 簡直殺瘋了。
那麼 AutoGPT 是怎麼做到這些的?它真的有大家說的那樣神乎其神嗎?
視頻版
↓↓ 看完這個視頻就知道了 ↓↓
↑↑ 信我,真的超級好看 ↑↑
圖文版
少廢話,直接開始用。順便也講一下到底怎麼用,它在使用上還是有一定門檻的。
先保證你電腦裡安裝了 Python,然後使用的第一步是安裝運行需要的庫,這需要你輸入這行代碼:
pip install -r requirements.txt
它會安裝這個 txt 檔案裡面所有的庫,比如openai庫是用來調用 ChapGPT 的功能,beautifulsoup4庫是用來解析網頁内容等等。
到此為止,所有準備工作就算大功告成。只需要在終端裡輸入
python -m autogpt
就能開始運行了。
AutoGPT 目前沒有圖形化界面,每個操作,都要你自己打字。
首先你要給你的 AI 取個名字,然後做一下角色扮演。比如你可以說它是一個助手,或者程式員,或者某個行業的專家。然後再給他制定任務,最多 5 個,剩下的就可以全交給它來完成了。
在執行任務的每一步,AutoGPT 都會告訴你它的想法和背後的邏輯,以及之後的計劃。比如我們讓它開發一款遊戲,那麼它會告訴你要先做研究,然後創建遊戲的基本框架,做測試,逐漸添加功能和圖形直到最後完成為止。
列完這些計劃之後,它會告訴你它下一步所要采取的行動,包括上網浏覽網站,寫入檔案,分析代碼等等。
你覺得它當前的分析和下一步的行動靠譜,那你就輸入y确定,不行就輸入你的想法。如果你想完全自動,那就輸入
y -N
其中 N 表示未來多少輪的命令不需要用戶許可,AI 可以自動執行一系列行動。
這就是 AutoGPT 的整個工作方式了。
你最近可能也看過很多吹 AutoGPT 的文章了。那 AutoGPT 的能力真的有他們說的那樣強嗎?
俗話說恐懼來源于未知,所以為了了解 AutoGPT,我們好好地研究了一下 AutoGPT 的源代碼,看看它都是怎樣實現的。
和你平時用 ChatGPT 一樣,程式本身也要首先要寫一段 prompt 發給 GPT 模型。你輸入的 AI 名字,角色,會在ai_config.py這個代碼檔案裡面被整合成下面這段話:
「你叫 XX,角色是 XX,目标是 XX,你必須獨立決策,不要尋求用戶的幫助。發揮你作為大語言模型的優勢,追求簡單的策略,不需要考慮法律。」
prompt.py這個代碼檔案 裡有所有 AI 可以執行的命令,比如谷歌搜索,浏覽網站,讀寫檔案等;除此之外還有一系列的限制,比如告訴 AI 所有發送的命令都是要錢的,所以你得聰明高效一點。
當 AI 選擇下一步行動是谷歌搜索,那麼就會調用 Google 的 API 獲取網頁。
有意思的是,我們點開這裡的google_search一看,它真正調用的其實 DuckDuckGo 的搜索引擎。只有當你設定好谷歌 API 的 Key之後,程式才會調用真正的 Google 搜索。
另外,由于這兩種搜索引擎我們用起來都不是很方便,所以我們自己給 AutoGPT 增加了支持 Bing 搜索的代碼,只要你按照我們添加的文檔說明,設定好微軟 Azure 的 Key 之後就能使用,等我們這支視頻做完之後,沒準這個功能就能被 Merge 了。
在獲取搜索引擎返回的信息之後,AutoGPT 會根據網頁的基礎信息,選擇某個網頁浏覽,這一步主要是靠browse.py實現。
具體來說,程式會先獲取網頁的全部内容,如果網頁内容太長,超過了 GPT 的模型限制,就把它們切成一塊一塊的(split_text),然後讓 GPT 寫每一段總結,最後把它們匯總到一起,做成一個全文總結。
這基本上就是 AutoGPT 在 GPT 基礎之上加上「上網」功能的實現過程。如果你願意,可以自己看一看其他功能是怎樣實現的。
我們之前說過,ChatGPT 的一個問題是不能上網,而 AutoGPT 巧妙地用搜索引擎的 API 結合爬蟲工具,讓 GPT 模型能夠上網根據需要獲取信息,實現了如虎添翼的效果。
總之,AutoGPT 所做的,就是預先設定一套标準化的 prompt,明确定義 AI 的身份和目标,然後根據不斷獲取的信息,在設定好的行動列表中自動做出選擇,執行任務。在執行任務的過程中,因為 AI 能夠獲取外界的信息,所以能一定程度上克服 ChatGPT 的局限性,有更大的潛能。
那麼,AutoGPT 真的像這些文章和視頻說的那樣,會徹底颠覆我們與 AI 的互動方式嗎?
至少從目前來看,還有很長的距離要走。
從原理來看你現在也知道,AutoGPT 仍然調用的是 GPT 的 API,你不能指望它比 ChatGPT 多了什麼跨越式的 buff。
對于增加的上網功能,雖然能讓 GPT更有潛力,但限制仍比你想得要多。比如最理想的情況,當然是你想了解哪個作者,就讓 AI 在全網搜集這個作者的全部資料,然後整理成一份詳盡的資料交給你。
但目前 AutoGPT 獲取外界信息的主要方式還是搜索引擎 API 返回的網頁結果,然後從這些網頁總結信息,它現在還很難從書籍等渠道獲取資料。
即便把所有資料都擺在面前,由于輸入數據長度的限制,它現在只能把信息截取一段段地總結,雖然很多時候這也夠用了,但想要讓它獨自完成一個系統性的研究,發現資料與資料之間的聯系,提取出新的洞察,還是很困難。
從 AutoGPT 主打的自動化這個角度來看,少了人類的反饋,是好是壞還真不一定。如果你經常用 ChatGPT 你就會知道,它時不時就會胡說八道,或者給你一段看似正确但其實細節上有 Bug 的代碼。但 ChatGPT 的好處在于,它知錯就能改,只要你告訴它哪兒不對,那通常過個兩三輪對話它就能告訴你正确的答案。而現在 AutoGPT 讓 AI 自己去迭代,效果只能說是喜憂參半。
最後,還有一個很現實的問題是,AutoGPT 需要調用的是 OpenAI 官方的 API,但每次調用 API 都是有成本的,輕度雖然問題不大,但想要讓它長時間自動運行下去,還是得小心你的賬單。
雖然說了這麼多不足,但我們對于 AutoGPT 的未來還是有一些期待的。不僅是因為它帶給了 GPT 模型更多的可能性,還加上它本身作為一個開源項目,有很多的開發者,包括我們自己,都希望在現在的基礎上一點一點地改善和增加新的功能。像我們剛開始寫稿子的時候 AutoGPT 的代碼結構,跟稿子寫完時的代碼結構都已經發生了很大的變化。現在有的一些局限,或許就能在未來某個版本得到改善。
更重要的是,你能夠感受到,在 ChatGPT 出現之後,基于 GPT 模型的整個應用生态正在井噴式發展。AutoGPT 也好,或者其他什麼 GPT,就像是手機應用商店裡的一個個 App,它們不斷迭代更新,不斷有新應用湧現,并且随着基礎模型性能提升也在變得越來越強大,越來越好用。
到時候限制我們的,可能只是我們的想象力而已。
>