ChatGPT插件系统的功能如此强大,以及如何创建自己的插件。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
最近,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插件系统的强大功能。
推荐书单
《Python人工智能》
本书系统地介绍了基于Python 平台的人工智能的原理及实现过程,全书共7 章。第1 章“从这里开始认识Python”,介绍人工智能及Python 基础知识;第2 章“Python 语法基础”,通过生动有趣的实验实例介绍Python 编程语法知识;第3 章“Python 程序设计”,以实例为基础,介绍Python 的编程方法;第4 章“数据结构”,通过范例介绍列表、元组、字典、集合、函数等数据结构的使用方法;第5 章“数据库及应用”,主要介绍Python 数据库应用及Web 应用开发技术,通过实例讲解Python 数据库应用;第6 章“大数据应用”,基于实例,主要介绍网络爬虫、Excel 数据爬取及分析处理等技术,了解数据挖掘分析处理等大数据应用技术的一般设计流程;第7 章“人工智能”,以具体实例讲解照片人脸识别、图像识别、视频人脸识别、聊天机器人、微信语音聊天机器人、图文识别、语音识别及花朵识别等人工智能深度学习技术。
本书图文并茂,示例丰富,讲解细致透彻,介绍深入浅出,章后练习精广,具有很强的实用性和可操作性,适合初学或自学Python 的学生,可作为中小学STEM 教育或培训机构的人工智能课程教材,也可作为大中专院校人工智能、软件工程、计算机等专业以及相关课程的教材或参考书,还可以当作全国计算机二级(Python)考试的教材使用。
《Python人工智能》(刘伟善)【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Python人工智能》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!https://item.jd.com/12854912.html
精彩回顾
《使用ChatGPT API创建Python文档,竟然如此简单》
《GPT-4已来,Python API使用最新版GPT》
《震撼来袭,GPT-4全解读》
《超快速,使用ChatGPT编写回归和分类算法》
《事半功倍,使用ChatGPT编写Python函数》
《使用ChatGPT提升Python编程效率》
《如虎添翼,将ChatGPT和Python结合起来!》
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点