OpenGPTs:开启AI助手的无限可能
在人工智能快速发展的今天,聊天机器人和AI助手正在改变我们与技术互动的方式。而OpenGPTs项目的出现,为开发者和企业提供了一个强大的开源替代方案,可以创建高度定制化的AI助手,突破了闭源解决方案的限制。让我们深入了解这个激动人心的项目,看看它如何为AI助手的开发带来新的可能性。
什么是OpenGPTs?
OpenGPTs是一个开源项目,旨在创造类似于OpenAI的GPTs和Assistants API的体验。它由LangGraph提供支持,这是一个用于创建agent运行时的框架。此外,它还建立在LangChain、LangServe和LangSmith等技术之上。OpenGPTs最大的优势在于它给予用户更多的控制权,允许用户灵活配置多个关键组件:
- 语言模型(LLM):从LangChain提供的60多个选项中选择
- 提示词:使用LangSmith进行调试
- 工具:从LangChain的100多个工具中选择,或轻松编写自己的工具
- 向量数据库:从LangChain的60多个向量数据库集成中选择
- 检索算法
- 聊天历史数据库
最重要的是,OpenGPTs让用户完全掌控应用程序的认知架构。目前,它实现了三种不同的架构:
- 助手(Assistant)
- RAG(检索增强生成)
- 聊天机器人(Chatbot)
由于是开源项目,如果这些预设架构不能满足需求,用户可以轻松修改或创建自己的架构。
OpenGPTs的核心特性
OpenGPTs strive了尽可能实现与OpenAI功能对等,同时提供更多的灵活性:
-
沙盒环境:提供了一个导入、测试和修改现有聊天机器人的环境。所有聊天机器人都以代码形式存在,便于编辑。
-
自定义动作:使用OpenAPI规范为聊天机器人定义额外功能,通过添加工具来支持。
-
知识文件:允许附加额外文件,供聊天机器人参考。可以通过UI或API上传文件,由检索工具使用。
-
工具集成:提供基本工具,如网页浏览、图像创建等。默认启用DuckDuckGo搜索和Python REPL工具。
-
分析功能:使用LangSmith查看和分析聊天机器人的使用数据。
-
草稿功能:保存和共享正在创建的聊天机器人草稿,支持保存配置。
-
发布功能:通过LangServe部署,公开分发完成的聊天机器人。
-
共享管理:通过LangServe部署,设置和管理聊天机器人的共享。
-
市场功能:搜索和部署其他用户创建的聊天机器人(即将推出)。
OpenGPTs的认知架构
OpenGPTs支持三种不同的认知架构,每种架构都有其特点和适用场景:
1. 助手(Assistant)
助手可以配备任意数量的工具,并使用LLM来决定何时使用它们。这使得助手成为最灵活的选择,但它们只能与少数模型良好配合,可靠性也可能较低。
创建助手时,需要指定以下内容:
- 语言模型:只有少数语言模型可以可靠使用,如GPT-3.5、GPT-4、Claude和Gemini。
- 工具:可以是预定义工具或从上传文件构建的检索器。可以选择任意数量的工具。
助手的认知架构可以看作是一个循环:
- 首先,调用LLM来决定是否采取行动。
- 如果决定采取行动,则执行这些行动并返回循环。
- 如果决定不采取行动,则LLM的回应作为最终回应,结束循环。
这种架构非常强大和灵活,可能最接近人类的思考方式。然而,它可能不太可靠,通常只有性能更强的模型才能很好地工作(即使如此也可能出错)。
2. RAGBot
RAGBot是一个专注于检索的GPT,具有简单直接的架构:
- 首先检索一组文档。
- 然后将这些文档作为系统消息传递给语言模型,以生成响应。
与助手相比,RAGBot更加结构化(但功能较弱)。它总是会查找信息,这在已知用户需要查询信息时很有用,但如果用户只是想进行普通对话,可能会造成资源浪费。
尽管架构较简单,RAGBot仍有其优势:
- 可以与更广泛的模型(包括许多开源模型)良好配合。
- 适用于不需要助手灵活性的使用场景(例如,已知用户每次都会查找信息)。
- 与纯聊天机器人相比,可以使用外部知识。
3. ChatBot
ChatBot是最简单的架构 - 仅仅是对语言模型的调用,通过系统消息进行参数化。这允许GPT承担不同的角色和性格。虽然功能远不如助手或RAGBot(无法访问外部数据源或计算),但仍然有其价值。许多流行的GPT本质上就是系统消息,而CharacterAI也主要依赖于系统消息就取得了巨大成功。
如何使用OpenGPTs
要开始使用OpenGPTs,您可以按照以下步骤操作:
-
克隆仓库:
git clone https://github.com/langchain-ai/opengpts.git cd opengpts
-
设置环境变量: 创建一个
.env
文件,添加必要的API密钥和配置信息。 -
安装依赖: 对于后端,使用poetry管理依赖:
cd backend poetry install
对于前端:
cd frontend npm install
-
启动应用: 启动后端服务器和前端开发服务器。
-
访问应用: 打开浏览器,访问
http://localhost:5173
即可开始使用OpenGPTs。
结语
OpenGPTs为AI助手的开发开辟了新的道路。通过提供更多的控制权和定制选项,它使开发者能够创建真正符合特定需求的AI助手。无论是想要构建一个强大的多功能助手,还是专注于特定领域的知识检索机器人,或是简单的角色扮演聊天机器人,OpenGPTs都能满足这些需求。
随着项目的不断发展和社区的贡献,我们可以期待看到更多创新的AI应用被开发出来。OpenGPTs不仅是一个工具,更是一个平台,它正在重新定义我们与AI互动的方式,为未来的AI应用开发铺平道路。
如果你对AI开发感兴趣,不妨深入探索OpenGPTs,看看它能为你的项目带来什么样的可能性。开源的力量加上AI的潜力,未来值得期待!