2

AI大模型如何连接外部世界:深入解析GPTs、Assistant API和Function Calling

 6 months ago
source link: https://www.woshipm.com/ai/5996879.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

怎么让AI大模型连接外部世界,扩展其需要的能力,也可以让大模型和系统可以更好地集成,增强确定性?这篇文章里,作者就拆解了GPT连接外部世界的三种方式,不妨来看一下。

bd5f40e0-d9e9-11ed-a8b0-00163e0b5ff3.jpg

上文简单介绍了RAG的基本原理,RAG可以通过扩展大模型的知识库,让AI大模型变得更加“懂”我们。

今天我们来一起学习一下如何让AI大模型连接外部世界。

一、为什么要让大模型连接外部世界?

我们在上文中已经列举了大模型的局限性:没有实时性、无法获取私有知识等。

在此基础上,我们可以把大模型的局限性细化成以下几条:

  • 大模型获取不到实时信息,完全不清楚所谓的新闻热点,这一点很不像人类。
  • 大模型掌握的知识是有限的,遇到不懂的问题,就会开始胡编乱造,令人头痛。
  • 大模型还没掌握足够的推理能力(至少目前还不够),在处理较为复杂的问题时,准确性是存疑的,比如解决复杂的数学问题等。
  • 大模型无法获取企业的私有文档(RAG可以一定程度上解决该问题)。
  • 大模型无法获取外部系统数据库中的业务数据,比如地图相关信息、张三在某平台的消费记录等。

我们会发现,不管大模型再怎么训练,这些局限性依然会存在,并不会随着大模型的继续训练而解决。

把大模型当人看的话,再聪明的人也不可能实时接收消化新知识、不可能拿到所有的私有数据、也就不可能独自解决所有的问题,那么怎么才能让大模型变得可靠又强大呢?

答案就是:找可靠的人一起协作,解决各种复杂问题

大模型将复杂任务拆解成一个个子任务,遇到搞不定的子任务(或者有更可靠的小伙伴)时,就把问题抛给更专业的小伙伴,小伙伴把处理结果反馈给大模型,最终所有子任务都得到了更好的解决,大模型再根据子任务的处理结果,生成更加可靠的答案。

比如,大模型接收到一个任务“明天中午的天气怎么样?如果天气好的话,想去国贸附近的麻六记吃饭,不知道人多不多”,首先把任务拆解为如下子任务:

  1. 查询明天中午的天气。
  2. 需要查询国贸的位置。
  3. 再查询国贸附近麻六记的具体位置,确认该饭店是否存在。
  4. 查询麻六记的商家信息,方便打电话询问或预约。

大模型看了看自己团队里的人(接口),开始分配任务:

  1. 任务1交给天气接口,得到详细的天气信息。
  2. 任务2交给地图接口,得到国贸的位置。
  3. 再拿着任务2的结果继续让地图接口完成任务3,找到国贸附近的麻六记。
  4. 最后再调用大众点评接口完成任务4,查询麻六记的商家信息。

一切搞定,交作业:“明天中午是个大晴天,这么好的天气当然要出去耍啦。国贸附近的麻六记具体位置在xxxx,评分4.8分,一定非常美味,商家电话xxxx,您可以联系商家预约位置。

是不是靠谱多了?这个协作的模式其实就有些智能体Agent的意思了,我们下篇文章再细说Agent。

总之,连接外部世界后的大模型,可以扩展各种需要的能力,比较靠谱的完成各种复杂任务,也让大模型和系统可以更好的集成,增强确定性。

接下来,我们来介绍一下GPT连接外部世界的三种方式。

二、GPTs:自定义版本的ChatGPT

GPTs是一个自定义版本的ChatGPT,允许用户直接在界面上调整ChatGPT的功能以适应特定任务或者指令。

bda76f0a-d0d8-11ee-834c-00163e0b5ff3.jpg

除了基本的GPT配置之外,GPTs还提供了三种能力:

  1. 可以直接上传私有知识库文档,自动实现RAG。
  2. 内置了几个通用能力(capability):允许网络浏览(遇到不懂的问题会自动搜索之后再生成内容)、允许使用DALL-E生成图片(比如可以让它根据输入生成一张图片)、代码解释器(可以使用python的大部分功能)。
  3. 通过配置Actions来执行外部的动作,actions本质上就是一些我们可以执行的工具,类似于function calling,可以通过接口定义去调用其他应用的能力,这就相当于打通了GPT和其他应用的桥梁,可以互相协作,只需要配置接口定义信息即可。

看起来,GPTs既强大又方便,但是它却又很多的限制:

  • 只有ChatGPT Plus用户才能访问。
  • 界面不可定制,不能集成进自己的产品。
  • RAG功能,最多只能传10个文件。

也就是说,GPTs相当于自己用提示词和Actions扩展出一个定制功能的ChatGPT,但始终还是个ChatGPT。

GPTs虽然无法集成到自己的系统中,但比较适合作为功能演示的demo,和用户解释清楚系统的能力边界。

三、Assistant API:将GPT集成到系统中的开发者接口

OpenAI的Assistant API是一个允许开发者在应用中集成GPT功能的接口。

简单来说,GPTs是界面化的操作,Assistant API则是针对开发者提供的接口。

目前,Asssistant API支持三种工具:文件RAG、代码解释器和Function Calling。

Asssistant API有如下特点:

  • 可以把GPT的功能集成到自己的系统中。
  • 可以传比GPTs更多的文件。
  • 国内无法访问,只能服务国外用户(国产大模型或开源大模型也会陆续开放自己的Assistant 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,但一定会陆续开放,没有Function Calling的大模型无法和其他系统连接,几乎没有可用性。
  • 接口定义会消耗额外的token,费钱。
  • 即便使用了Function Calling,仍然要注意结果永远不是永远正确的,产品经理需要建立在这个假设基础上,去推敲功能的可行性。
  • 需要评估Bad Case的影响范围,并做好系统兼容和用户预期管理。

Function Calling机制的重要意义

  • 理论上来说,通过Function Calling,任何功能都可以和大模型结合,提供更好的用户体验。
  • Function Calling机制是AI Agent化的重要组成部分。
  • Function Calling给大模型的应用提供了无数的可能性,长期来看,落地过程中的各种幻觉问题一定会得到优化和解决,路途只会越来越平坦,前方只会越来越光明。

本文主要介绍了AI大模型连接外部世界的重大意义,下篇文章,我会介绍本文示例中提到的AI Agent(智能体),敬请期待。

本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK