用Function Calling 连接大模型和业务,用自然语言连接系统的认知

前言

本篇文章,我们重点介绍Function Calling的机制和应用,在其原理上,也讲解了为什么会有plugin、GPTs出现等等。

1.大模型应用的一切,是自然语言连接系统的认知

2.在Function Calling的应用中,是如何把大模型和业务连接起来的

3.OpenAI用GPTs连接外部世界

我们本文和后续文章,在实际的应用,都会以ChatGPT来讲,无他,公认的,ChatGPT的能力毋庸置疑。

自然语言连接一切(Natural Language Interface),接口的进化

我们以前的接口,经历了多个版本的进化:

image.png

在这个过程中,媒介发生很多变化,但是都离不开一个共同点,那就是要有约定,要有规划,要有程序员的对接实现。

而在面对ChatGPT为例的一系列大模型,我们在面对的就是自然语言的接口,在这个强大的能力加持下,我们在面对计算机等智能设备时,我们可以用自然语言对它发出指令,实现我们的意图。

这里重新强调了这一点,是因为我们要清楚,面对AIGC的重大革新,不管是我们在日常生活中使用LLM,还是我们要基于LLM做应用开发,我们思维上首先要转变的就是要把计算机当成一个人,有了这个认识,接下来我们才能更好的使用它。

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

有的伙伴可能会说,大模型既然能力已经很强了,为什么还要连接外部世界呢。之前我们也讲过,大模型有它自己的能力缺陷,或者说不擅长的:

  1. 并非知晓一切

    1. 训练数据不可能什么都有。垂直、非公开数据必有欠缺
    2. 不知道最新信息。大模型的训练周期很长,且更新一次耗资巨大,还有越训越傻的风险。所以 ta 不可能实时训练。GPT-3.5 的知识截至 2021 年 9 月,GPT-4 是 2023 年 12 月。
  2. 没有「真逻辑」。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑,所以有幻觉。

为了解决这个问题,就是我们所说的要连接外部世界:大模型需要连接真实世界,并对接真逻辑系统。

Function Calling 的机制

我们说,Function Calling 技术可以把大模型和业务系统连接,实现更丰富的功能。我们先看下它的由来和定义,以及用途,就能理解这一点了。

Function Calling的定义

函数调用(Function Calling) 是 OpenAI 在 6 月 13 日发布的新能力。根据官方博客描述,函数调用能力可以让模型输出一个请求调用函数的消息,其中包含所需调用的函数信息、以及调用函数时所携带的参数信息。这是一种将 GPT 能力与外部工具 / API 连接起来的新方式。

支持函数调用的新模型,可以根据用户的输入自行判断何时需要调用哪些函数,并且可以根据目标函数的描述生成符合要求的请求参数。

Function Calling 的机制

它的使用逻辑是这样的,我们用张图来解释;

image.png

Function Calling 完整的官方接口文档:platform.openai.com/docs/guides…

我们可以看到,对于人来讲,我们还是一段自然语言的prompt输入,得到一个自然语言的回答,但是因为有了Function Calling,可以通过开发各种各样的函数,来丰富和增强大模型的能力。

Function Calling 的示例、体验

我们来看一个 Function Calling的简单使用实例:

需求:定义一个函数,可以让chatgpt进行精确的数学计算,并返回精确结果。

实现:

输出结果:

{
    "content": null,
    "role": "assistant",
    "function_call": null,
    "tool_calls": [
        {
            "id": "call_EoBm8iVtl000rAZSyWe9qlk8",
            "function": {
                "arguments": "{"numbers":[1,2,3,4,5,6,7,8,9,10]}",
                "name": "sum"
            },
            "type": "function"
        }
    ]
}
=====GPT回复=====
{
    "content": null,
    "role": "assistant",
    "function_call": null,
    "tool_calls": [
        {
            "id": "call_EoBm8iVtl000rAZSyWe9qlk8",
            "function": {
                "arguments": "{"numbers":[1,2,3,4,5,6,7,8,9,10]}",
                "name": "sum"
            },
            "type": "function"
        }
    ]
}
=====函数返回=====
55
=====最终回复=====
The sum of 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 is 55.

支持 Function Calling 的国产大模型

  • Function Calling 会成为所有大模型的标配,支持它的越来越多
  • 不支持的大模型,某种程度上是不大可用的

百度文心大模型

官方文档:cloud.baidu.com/doc/WENXINW…

百度文心系列大模型有四个。按发布时间从早到晚是:

  1. ERNIE-Bot - 支持 Function Calling
  2. ERNIE-Bot-turbo
  3. ERNIE-Bot 4.0
  4. ERNIE-Bot 3.5 - 支持 Function Calling

参数大体和 OpenAI 一致。

MiniMax

官方文档:api.minimax.chat/document/gu…

  • 这是个公众不大知道,但其实挺强的大模型,尤其角色扮演能力
  • 如果你曾经在一个叫 Glow 的 app 流连忘返,那么你已经用过它了
  • 应该是最早支持 Function Calling 的国产大模型
  • Function Calling 的 API 和 OpenAI 1106 版之前完全一样,但其它 API 有很大的特色

ChatGLM3-6B

官方文档:github.com/THUDM/ChatG…

  • 最著名的国产开源大模型,生态最好
  • 早就使用 tools 而不是 function 来做参数,其它和 OpenAI 1106 版之前完全一样

讯飞星火 3.0

官方文档:www.xfyun.cn/doc/spark/W…

和 OpenAI 1106 版之前完全一样。

OpenAI 用 Actions 连接外部世界

第一次尝试用 Plugins 连接真实世界,但产品很不成功,原因:

  1. 不在「场景」中,不能提供端到端一揽子服务
  2. 缺少「强 Agent」调度,只能手工选三个 plugin,使用成本太高

第二次尝试,升级为 Actions,内置到 GPTs 中,解决了落地场景问题。

小瓜 GPT 已经接入了高德地图 actions,可以试试问位置相关的问题:chat.openai.com/g/g-DxRsTzz…

工作流程:

image.png

和Funtion Calling有点不一样,但是基本原理都是一样的

Actions对接示例

把 API 对接到 GPTs 里,只需要配置一段 API 描述信息:

openapi: 3.1.0
info:
  title: 高德地图
  description: 获取 POI 的相关信息
  version: v1.0.0
servers:
  - url: https://restapi.amap.com/v5/place
paths:
  /text:
    get:
      description: 根据POI名称,获得POI的经纬度坐标
      operationId: get_location_coordinate
      parameters:
        - name: keywords
          in: query
          description: POI名称,必须是中文
          required: true
          schema:
            type: string
        - name: region
          in: query
          description: POI所在的区域名,必须是中文
          required: false
          schema:
            type: string
      deprecated: false
  /around:
    get:
      description: 搜索给定坐标附近的POI
      operationId: search_nearby_pois
      parameters:
        - name: keywords
          in: query
          description: 目标POI的关键字
          required: true
          schema:
            type: string
        - name: location
          in: query
          description: 中心点的经度和纬度,用逗号分隔
          required: false
          schema:
            type: string
      deprecated: false
components:
  schemas: {}

还需要配置 API key 来满足权限要求。

image.png

这里的所有 namedescription 都是 prompt,决定了 GPT 会不会调用你的 API,调用得是否正确。

GPTs 与它的平替们

[OpenAI GPTs]

  1. 无需编程,就能定制个性对话机器人的平台
  2. 可以放入自己的知识库,实现 RAG(后面会讲)
  3. 可以通过 actions 对接专有数据和功能
  4. 内置 DALL·E 3 文生图和 Code Interpreter 能力
  5. 只有 ChatGPT Plus 会员可以使用

推荐两款平替:

字节跳动 Coze(扣子)[中国版]

  1. 国际版可以免费使用 GPT-4 等 OpenAI 的服务!大羊毛!
  2. 中国版发展势头很猛,使用云雀大模型
  3. 功能更强大

[Dify]

  1. 开源,中国公司开发
  2. 功能最丰富
  3. 可以本地部署,支持非常多的大模型
  4. 有 GUI,也有 API

有这类无需开发的工具,为什么还要学大模型开发技术呢?

  1. 它们都无法针对业务需求做极致调优
  2. 它们和其它业务系统的集成不是特别方便

总结

大模型需要,且我们一直都在努力连接外部世界,从ChatGPT的plugin,到GPTs,再到Function Calling。 我们都想给大模型更丰富,更强大的能力。

大模型中的Function Calling更是一种强大的功能,它能够增强模型的功能、提高数据的准确性并提升、用户体验。随着技术的不断发展,Function Calling的应用场景将会越来越广泛,为人工智能领域的发展带来更多的可能性。

同时,在实际落地场景中,给了开发者提供了更多的自由度,我们可以加强输入,也可以整合输出,来增强自己业务的目的。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员辣条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值