最近,OpenAI发布了ChatGPT的新功能:插件系统。ChatGPT现在可以进行功能扩展并执行新的任务,比如:
- 检索实时信息:例如,体育比分、股票价格、最新的新闻等。
- 检索知识库信息:例如,公司文件、个人笔记等。
- 代表用户执行操作:例如,预订航班、订购食物等。
ChatGPT的知识库是用截至2021年9月的数据训练的,但通过使用这些插件,ChatGPT现在能够在网络上搜索最新的答案,这样就消除了仅依赖其知识库的限制。
创建自定义插件
OpenAI也能让任何开发者都能创建自己的插件。尽管目前开发者需要加入等待名单(https://openai.com/waitlist/plugins),但创建插件的文件已经可以使用。
可以在这个网页找到更多关于插件流程的信息(https://platform.openai.com/docs/plugins/introduction)。
在这个网页可以找到示例代码(https://platform.openai.com/docs/plugins/examples)。
文档只显示了第三方API和ChatGPT之间的集成是如何进行的。接下来本文将探讨这种集成的内部运行细节:
“大语言模型在没有接受过相关训练的情况下,是如何执行操作的?”
LangChain简介
LangChain是一个用于创建聊天机器人、生成性问题回答、总结等的框架
LangChain是Harrison Chase(hwchase17)在2022年开发的一个工具,可用于协助开发者将第三方应用程序整合到大型语言模型(LLM)中。
借用如下所示的示例来解释它的工作模式:
import os
os.environ["SERPAPI_API_KEY"] = "<your_api_key_here>"
os.environ["OPENAI_API_KEY"] = "<your_api_key_here>"
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
# 首先,加载要用来控制代理的语言模型
llm = OpenAI(temperature=0)
# 接下来,加载一些工具来使用。请注意,llm-math工具使用LLM,因此需要把它传进去
tools = load_tools(["serpapi", "llm-math"], llm=llm)
# 最后,用工具、语言模型和想使用的代理类型来初始化代理
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
# 现在进行测试
agent.run("Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?")
从这个示例中可以看到三个主要部分:
- LLM:LLM是LangChain的一个核心组件,它帮助代理理解自然语言。在这个示例中,使用了OpenAI的默认模型。根据源代码(https://github.com/hwchase17/langchain/blob/master/langchain/llms/openai.py#L133),默认模型是text-davinci-003。
- 代理:代理使用LLM来决定采取哪些行动,以何种顺序进行。一个行动可以是使用一个工具并观察其输出,也可以是向用户返回一个响应。
在这里使用的是0-shot-react-description。从它的文件中可以了解到,”这个代理使用ReAct框架,完全根据工具的描述来决定使用哪个工具”,将在后面使用这些信息。
- 工具:代理可以用来与世界互动的功能。在这个例子中,使用了两个工具:
-
serpapi:一个围绕https://serpapi.com/ API的包装器。它用于浏览网页。
-
llm-math:使代理能够在提示中回答与数学有关的问题,如 “他当前的年龄的0.23次方是多少?” 。
当运行该脚本时,代理会做几件事,如浏览谁是Olivia Wilde的男朋友、提取他的名字、询问Harry Style的年龄、执行搜索并使用llm-math工具计算29^0.23,即2.16。
LangChain的最大优点是它不依赖于单一的提供者,正如文档(https://python.langchain.com/en/latest/modules/llms/integrations.html)中所介绍的那样。
为什么LangChain能为ChatGPT插件系统提供强大的功能?
3月21日,OpenAI最强合作伙伴微软发布了MM-REACT,揭示了ChatGPT的多模态推理和行动(https://github.com/microsoft/MM-REACT)。
当查看这个“系统范式”的功能时,可以看到每个例子都涉及到语言模型和一些外部应用程序之间的互动。
通过查看所提供的示例代码(https://github.com/microsoft/MM-REACT/blob/main/sample.py),我们可以看到,de model+tools交互的实现是用LangChain做的。README.md文件(https://github.com/microsoft/MM-REACT/blob/main/README.md)也指出“MM-REACT的代码是基于langchain的”。
结合这些证据,再加上ChatGPT插件文档中提到“插件描述、API请求和API响应都被插入到与ChatGPT的对话中。”可以假设插件系统添加了不同的插件作为代理的工具,在本例中就是ChatGPT。
也有可能是OpenAI把ChatGPT变成了一个类型为zero-shot-react-description的代理来支持这些插件(也就是我们在之前的示例中看到的类型)。因为API的描述被插入到对话中,这符合代理的预期,可以从下面的文档摘录中看到。
LangChain
结论
虽然插件系统尚未向用户开放,但可以利用已发布的文档和MM-REACT来体验ChatGPT插件系统的强大功能。
文章版权声明
1 原创文章作者:4310,如若转载,请注明出处: https://www.52hwl.com/63846.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别