怎么让AI大模型连接外部世界,扩展其需要的能力,也可以让大模型和系统可以更好地集成,增强确定性?这篇文章里,作者就拆解了GPT连接外部世界的三种方式,不妨来看一下。
上文简单介绍了RAG的基本原理,RAG可以通过扩展大模型的知识库,让AI大模型变得更加“懂”我们。
今天我们来一起学习一下如何让AI大模型连接外部世界。
一、为什么要让大模型连接外部世界?
我们在上文中已经列举了大模型的局限性:没有实时性、无法获取私有知识等。
在此基础上,我们可以把大模型的局限性细化成以下几条:
我们会发现,不管大模型再怎么训练,这些局限性依然会存在,并不会随着大模型的继续训练而解决。
把大模型当人看的话,再聪明的人也不可能实时接收消化新知识、不可能拿到所有的私有数据、也就不可能独自解决所有的问题,那么怎么才能让大模型变得可靠又强大呢?
答案就是:找可靠的人一起协作,解决各种复杂问题。
大模型将复杂任务拆解成一个个子任务,遇到搞不定的子任务(或者有更可靠的小伙伴)时,就把问题抛给更专业的小伙伴,小伙伴把处理结果反馈给大模型,最终所有子任务都得到了更好的解决,大模型再根据子任务的处理结果,生成更加可靠的答案。
比如,大模型接收到一个任务“明天中午的天气怎么样?如果天气好的话,想去国贸附近的麻六记吃饭,不知道人多不多”,首先把任务拆解为如下子任务:
大模型看了看自己团队里的人(接口),开始分配任务:
一切搞定,交作业:“明天中午是个大晴天,这么好的天气当然要出去耍啦。国贸附近的麻六记具体位置在xxxx,评分4.8分,一定非常美味,商家电话xxxx,您可以联系商家预约位置。”
是不是靠谱多了?这个协作的模式其实就有些智能体Agent的意思了,我们下篇文章再细说Agent。
总之,连接外部世界后的大模型,可以扩展各种需要的能力,比较靠谱的完成各种复杂任务,也让大模型和系统可以更好的集成,增强确定性。
接下来,我们来介绍一下GPT连接外部世界的三种方式。
二、GPTs:自定义版本的ChatGPT
GPTs是一个自定义版本的ChatGPT,允许用户直接在界面上调整ChatGPT的功能以适应特定任务或者指令。
除了基本的GPT配置之外,GPTs还提供了三种能力:
看起来,GPTs既强大又方便,但是它却又很多的限制:
也就是说,GPTs相当于自己用提示词和Actions扩展出一个定制功能的ChatGPT,但始终还是个ChatGPT。
GPTs虽然无法集成到自己的系统中,但比较适合作为功能演示的demo,和用户解释清楚系统的能力边界。
三、Assistant API:将GPT集成到系统中的开发者接口
OpenAI的Assistant API是一个允许开发者在应用中集成GPT功能的接口。
简单来说,GPTs是界面化的操作,Assistant API则是针对开发者提供的接口。
目前,Asssistant API支持三种工具:文件RAG、代码解释器和Function Calling。
Asssistant API有如下特点:
如果想扩展chatgpt的能力,让它可以指挥其他的软件去工作,那么就选择GPTs。
如果想让自己的软件获得ChatGPT的能力,得到AI加持,那么就适合Assistant API。
四、Function Calling机制:AI大模型连接外部世界的通道
Function Calling指的是在模型中集成外部功能或API的调用能力,可以看作是大模型连接外部世界的通道。
这意味着大模型可以在完成任务的过程中,调用外部函数或服务,以获取额外的数据或执行特定的任务。
例如,大模型可以调用天气API来获取最新的天气信息,或者调用翻译服务来提供多语言支持。通过这种方式,大模型可以更加灵活地与外部系统进行交互,实现更丰富的功能和更高的实用性。
Function Calling通常涉及到插件(Plugins)、OpenAI的Actions或各大模型平台提供的工具集(tools)等技术的使用。这些工具和技术可以帮助开发者更方便地实现Function Calling,提高模型的扩展性和可用性。
相比GPTs和Assistant API,Function Calling的核心优势:
Function Calling的限制:
Function Calling机制的重要意义
本文主要介绍了AI大模型连接外部世界的重大意义,下篇文章,我会介绍本文示例中提到的AI Agent(智能体),敬请期待。
本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议