這是一個使用語言模型代理來玩文本冒險遊戲之類的演示。
該演示需要Zork的遊戲文件。您可以從Internet存檔下載遊戲文件。
您還需要OpenAI的API鍵。
要與Docker一起運行演示,您需要Docker。
要安裝,請克隆回購併輸入NPC目錄:
git clone https://github.com/deepfates/npc.git
cd npc將zork1.z5文件移至npc目錄。
接下來,在npc目錄中創建.env文件,然後添加
OPENAI_API_KEY= < your openai api key > (沒有<和>標記)
最後,構建Docker圖像:
docker build -t npc .要運行演示,請運行:
docker run --network= " host " -t npc然後在瀏覽器中打開localhost:8080 。
要構建演示,您需要一個版本的Python 3.8或3.9和詩歌。
要安裝,請克隆回購併輸入NPC目錄:
git clone https://github.com/deepfates/npc.git
cd npc然後安裝python依賴性:
poetry install接下來,在npc目錄中創建.env文件,然後添加
OPENAI_API_KEY= < your openai api key > (沒有<和>標記)
最後,將zork1.z5文件複製到npc目錄中。
該演示是一個完全互動的文本冒險遊戲。您可以自己玩遊戲,也可以運行代理來建議命令或為您玩遊戲。
要玩遊戲,請輸入npc目錄並運行服務器:
poetry run python server.py然後在瀏覽器中打開localhost:8080 。
在玩遊戲時,您可以按⇥按鈕激活代理。代理人的內部想法將顯示在命令框上方,並將顯示在命令框中。您可以再次按⇥發送建議並自動激活代理。
代理在提示模板上運行內部循環。您可以通過按遊戲UI中的按鈕訪問此提示模板。您可以編輯提示模板,然後按↵自定義提示”模板激活代理。提示模板必須包含與默認提示模板相同的{placeholders} 。
要在後端發展,您需要一個版本的Python 3.8或3.9和詩歌。像安裝說明中一樣安裝Python環境,但是使用-Debug Flag這樣的服務器如下:
poetry run python server.py --debug在運行server.py時,您對後端的更改將反映在localhost:8080 。服務器每次保存編輯時都會重新啟動,因此,如果運行前端,則需要刷新頁面以獲取新的會話ID。
該代理當前運行一個修改後的React循環。有關更多詳細信息,請參見https://arxiv.org/pdf/2210.03629.pdf的React論文。
代理位於npc/agent.py文件中。它用簡短的緩衝器內存和自定義提示模板包裹了React循環。最初的功能是運行十二次迭代左右的循環,並讓其通過播放工具與Pworld交互。目前為了演示目的而將其關閉,因為前端的播放動作是看不見的。現在,代理最多采用3個操作,包括外觀和庫存,然後建議命令。此功能正常工作需要及時調整。
該代理是用Langchain建造的。有關基礎功能的更多信息,請參見他們的出色文檔。
要在前端開發,您需要node.js和npm。
要安裝前端依賴項,請輸入client端目錄並運行:
npm install要在開發模式下運行前端,請運行:
npm run dev要建立生產前端,請運行:
npm run build構建前端或在開發模式下,可以通過在安裝說明中運行服務器來提供該應用程序。您對前端的更改將反映在localhost:8080 。
前端是使用Svelte構建的。主要API調用和輸入表單在App.svelte文件中。 components目錄包含顯示組件。
Svelte將其編譯到JavaScript,因此一旦構建前端,您就可以在沒有前端依賴項的情況下運行服務器。燒瓶後端將從client/build目錄中提供前端文件。
主Svelte應用中的API函數不是很慣用。我認為他們應該更好地反應性分配。但是他們現在就完成了這項工作。