这是一个使用语言模型代理来玩文本冒险游戏之类的演示。
该演示需要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函数不是很惯用。我认为他们应该更好地反应性分配。但是他们现在就完成了这项工作。