10 个版本
0.1.9 | 2023年6月2日 |
---|---|
0.1.8 | 2023年6月2日 |
0.1.2 | 2023年5月31日 |
#261 in 机器学习
每月 98 次下载
160KB
4K SLoC
SmartGPT
SmartGPT 是一个实验性程序,旨在通过将任务分解成更小的部分,并使用互联网和其他外部来源收集信息,为 LLM(尤其是 GPT-3.5 和 GPT-4)提供无需用户输入即可完成复杂任务的能力。
如果您想跟踪 SmartGPT 的进展,想为开发做出贡献或有问题要讨论,请 加入 SmartGPT Discord。
https://github.com/Cormanz/smartgpt/assets/32941017/53bdcf83-4b2e-4798-b3f2-1a233b43c0e1
为什么?
目前有许多允许 LLM 执行更复杂任务的方法,例如 Auto-GPT 和 BabyAGI。那么,为什么选择 SmartGPT 呢?
-
模块化:SmartGPT 具有一流的插件支持,可以组合各种 Autos 来满足您的项目需求,因此具有极高的模块化。
-
灵活性:SmartGPT 有一个自动生成的
config.yml
文件,您可以在其中配置任何东西。 -
一致性:SmartGPT 具有智能的动作执行系统和静态工具链系统,可以提供非常一致的结果。
然而,有两个主要的缺点。
-
生态系统:由于 AutoGPT 的流行,它是一个非常精致和完善的工具。它具有许多工具和与内存系统的集成。与之相伴的是,代码库经过了大规模的审查,因此通常比 SmartGPT 少有错误且经过更多测试。
-
内存管理:由于这个项目非常年轻,目前只有一个简单但有限的内存系统。然而,这将会随着时间的推移而改变。
支持开发
目前,使用SmartGPT进行测试主要使用GPT3.5,偶尔使用GPT4,因为更昂贵模型的成本较高。随着这个项目的成熟,我们希望同时测试多个代理,并更多地使用GPT4来释放LLMs的最大能力。但这很昂贵,作为SmartGPT的核心维护者,我还是一名高中生,为这样的项目筹集资金对我来说是困难的。如果您有兴趣帮助推动LLMs的边界,请考虑加入我们的Patreon。点击此处加入我们的Patreon。
免责声明
SmartGPT是一个极其实验性的应用程序。目标是释放LLMs的最大潜力,为此牺牲了稳定性。向后兼容性在这里只是一个梦想。然而,SmartGPT也包含了目前AutoGPT空间中最具创新性和实验性的想法,尽管大多数都不成功,但少数几个击中了目标并坚持下去。
快速入门
-
安装
cargo
,最好是最新稳定版。 -
使用以下命令克隆仓库:
git clone https://github.com/Cormanz/smartgpt.git && cd smartgpt
。 -
使用以下命令以发布模式运行它:
cargo run --release
。这将为您创建一个config.yml
文件。 -
根据您的喜好调整配置,然后再次执行。
如果您想了解更多信息,或者想将SmartGPT用作您自己项目中的crate,请阅读文档。
SmartGPT是如何工作的
Autos
Auto是SmartGPT的构建块。有两大类Autos。
- Runner:Runner被分配一个单一的任务,并要求完成它。
- Assistants:Assistant Auto可以进行对话,并在对话的上下文中给出回答。
由于Assistant非常实验性,我们建议使用Runner。
在底层,Auto会运行代理。代理有两个部分:动态代理和静态代理。
动态代理
动态代理是基础代理。它运行一个类似REACT的过程,思考、推理,然后做出决定。它可以做三件事之一
- 头脑风暴。
- 运行一个动作。
- 给用户一个最终响应。
当它运行一个动作时,静态代理会被调度来运行这个动作。
静态代理
静态代理运行动态代理分配给它的子任务。以下是它的工作原理
- 它规划出完成任务所需的每个工具的精确顺序。
- 它将逐个运行计划中的每个步骤,为工具填充参数。
静态代理还会保存动态代理可以传递给静态代理以供未来任务使用的资产。
内存
所有代理都有内存。完成任务后,代理会将所有观察结果保存到长期记忆中。一旦开始另一个任务,它将拉取与该任务相关的所有长期记忆(使用VectorDB来完成)。
插件系统
Autos可以使用一系列工具,如google_search
、browse_url
等。您可以使用插件来定义这些工具。插件定义了自己的工具集,并且可以有自己的数据。
许可证
依赖项
~65MB
~1M SLoC