项目概况
仓库
原始仓库
https://github.com/joonspk-research/generative_agents
迭代仓库
https://github.com/edsml-sm2323/generative_agents/tree/fix-and-improve
如何使用(翻译总结自迭代仓库)
-
Conda create 一个python==3.9.12的隔离环境
-
pip install -r requirements.txt
-
按照github对应仓库中步骤在项目根目录中创建openai_config.json用于切换使用的模型(openai、azure)
-
如何使用:
-
自动化运行脚本:
The following script offer a range of enhanced features:
-
Automatic Saving :模拟每 200 步自动保存进度,确保您永远不会丢失数据。
-
Error Recovery :如果发生错误,模拟会通过后退并从上次成功点重新开始来自动恢复。这一点至关重要,因为该模型依赖于格式化的答案,这有时会导致异常。
-
Automatic Tab Opening :必要时将自动打开新的浏览器选项卡。 Headless Mode :脚本支持在 Chrome 的无头模式下运行模拟,从而能够在没有 UI 的服务器上执行(需要安装headless-chrome) 。 Configurable Port Number :您可以根据需要配置端口号。
-
有关更多详细信息,请参阅: run_backend_automatic.sh和automatic_execution.py 。 ./run_backend_automatic.sh -o <ORIGIN> -t <TARGET> -s <STEPS> --ui <True|False> -p <PORT> --browser_path <BROWSER-PATH>
Example: 例子: ./run_backend_automatic.sh -o base_the_ville_isabella_maria_klaus -t test_1 -s 4 --ui False
-
简介
总览
项目类似一个平面的沙盒游戏,沙盒环境利用数据表示,然后利用LLM模型模拟人类交互,每个人类个体视作一个agent,在初始情况下,为每个agent提供:
- 初始的记忆库
- 初始的环境位置信息
- 初始的agent状态
然后你可以指定:run <step-count>等命令进行模拟(具体运作步骤可参考GitHub仓库README.md)
在项目对应论文中,可以总结类似如下的模拟:
项目中有25个人,每个人有记忆行为 (姓名 ,年龄,干过什么,性格特点,认识那些朋友,家庭关系);
第一种交互:人物与人物碰面后进行简短的聊天;
第二种交互:人物在移动过程中可能会发现一些事物,比如xx要竞选市长了。进行思考。更改或者规划未来行为
项目结构(以下结构和分析摘选自B站up)
B站大佬:迪哥谈AI的个人空间-迪哥谈AI个人主页-哔哩哔哩视频
项目的逻辑
上述分析已经十分清晰,大概流程就是在已经设定好的prompt指导下进行agent交互,具体总结下来就是:
感知模块(这就是可以调整的项目拓展点)
- 时效:衰减性质
- 重要性:LLM给出评分
- 相关性:余弦相似度
权重累乘
思考模块
根据记忆库信息通过LLM给出哪些问题,然后反思,最终总结信息并计划
项目玩法
大致了解这项目我们会发现,整个项目和其对应的论文不牵涉任何的算法,仅仅通过prompt来指导模型的输出,然后用这些agent给出的输出进行记忆库更新和逻辑推理
不涉及算法推理,那么这个项目就更加的友好
那么,如何怎么玩转这个项目呢?
主体部分应该是涉及模型的切换
科大讯飞星火大模型
我在探索这个项目时接入的第一个模型就是星火认知模型(有200万token的免费量)
下面分享相关的一些问题记录:
有哪些模型
安装
-
安装包:
pip install --upgrade spark_ai_python
2. 按照api文档进行开发:https://www.xfyun.cn/doc/spark/Web.html
3. 按照文档成功接入:
文本向量化和调试问题(这些问题可被参考)
一些问题
1. openai_client Error: got an unexpected keyboard argument ''
后续解决:Error with OpenAI 1.56.0 - Client.__init__() got an unexpected keyword argument 'proxies' - API - Op
openai 包运行报错TypeError: Client.__init__() got an unexpected keyword argument ‘proxies‘_openai got an
pip install httpx==0.27.2
2. openai地域访问问题:
添加os.environ["HTTP_PROXY"]=127.0.0.1 os.environ["HTTPS_PROXY"]=127.0.0.1以便代理VPN生效
3. 其他格式问题
单点测试openai和星火模型的输出并进行对比,务必添加相关函数处理相关信息使引入的新模型输出的内容和openai输出的相同