关于agi中的Function Calling深入解析

news2024/11/23 23:42:55

接口(Interface)

两种常见接口:

1、人机交互接口,User Interface,简称UI

2、应用程序编程接口,Application Programming Interface,简称API

接口能【通】的关键,是两边都要遵守约定。

  • 人要按照UI的设计来操作。UI的设计要符合人的习惯
  • 程序要按照API的设计来调用。API的设计要符合程序惯例。

在日常工作中,调试接口会遇到很多的问题:

  • 文档坑,由于文档写得不规范,不好,要花大把时间有研究。 
  • 大小写坑,接口参数名称大小的问题
  • 参数顺序坑
  • 参数类型坑,由于不同语言,参数的类型不可能不一样

接口的进化 

  • 命令行,Command Line Interface,简称CLI(DOS、Unix/Linux shell,Widows Power Shell)
  • 图形界面,Graphical User Interfae,简称GUI(Windows、MacOS、IOS、Android)
  • 语言界面,Conversational User Interface,简称CUI,或Natural-Language User Interface,简称LUI
  • 脑机接口,Brain-Computer Interface,简称BCi

 什么是API

  •         从本地到远程,从同步到异步,媒介发生很多变化,但本质一直没变:程序员的绽
  •         现在,开始进行到自然语言接口,Natural-Languagge Interface,简称NLI

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

 大模型两大缺陷:

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

所以:大模型需要连接真实世界,并对接真逻辑系统。

用AI来做加法:

  1. 把100以内的所有加法算式都训练给大模型,它就可以回答100以内的加法算式,但仍有概率出错。
  2. 如果问它更大数字的加法,出错概率就会更大
  3. 因为它并不懂【加法】,只是记住了100以内的加法算式的统计规律
  4. 它是用字面意义做数学。

ChatGPT用Actions连接外部世界 

第一次尝试:Plugins 

  •  2023年3月24日发布plugins,模型可以调用外部的api
  • 2024年4月9日正式下线,宣告失败

第二次尝试:Actions 

actions,内置在GPTS中,解决了落地场景问题 

流程解析

  1. 通过actios的schema,GPT能读懂各个API能做什么、怎么调用

  2. 拿到prompt,GPT分析出是否调用API才能解析问题 

  3. 如果调用api,生成调用参数

  4. ChatGPT调用API

  5. API返回结果,GPT读懂结果,整合到回答中

最后,把AI当人看。 

Actions开发示例

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来满足权限要求。

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

Function Calling的机制

原理和actions一样,只是使用方式有别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1617271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

easyexcel升级3.3.4失败的经历

原本想通过easyexcel从2.2.6升级到3.3.3解决一部分问题,结果之前的可以用的代码,却无端的出现bug 1 Sheet index (1) is out of range (0…0) 什么都没有改,就出了问题,那么问题肯定出现在easyexcel版本自身.使用模板填充的方式进…

从构成看自来水厂自动化控制系统的创新与发展

自来水厂自动化控制系统涵盖了多个关键组成部分,包括水管理云平台、供水监控系统以及供水调度平台。 系统内嵌了一系列自主创新的核心算法,这些算法结合了数学建模、机器仿真和流体力学等多元数据模型,以优化设备间的关联和控制关系&#xf…

top实时系统监控工具-读书笔记(十一)

top 是 Linux 系统中一个非常实用的实时系统监控工具,它可以实时显示系统中各个进程的资源使用情况,包括 CPU 占用率、内存占用量、进程运行状态等信息。 命令格式 top 的基本格式如下: top [选项] 常用选项及其作用 -d 或 --delsay&…

Php-WebView 现代跨平台 GUI分享

GitHub :php-webview 一个用于 C/C 的小型跨平台 Web 视图库,用于构建现代跨平台 GUI。 该项目的目标是为最广泛使用的平台创建一个通用的 HTML5 UI 抽象层。 它支持双向 JavaScript 绑定(从 C/C 调用 JavaScript 和从 JavaScript 调用 C/C)。…

算法刷题-15

3.31 笔试真题2/5 皇后攻击位置 国际象棋比赛上,行数是数字1-8,列数是字母a到h,比如第二行第四列就是d2 现在在某位置放置一个皇后的话,皇后能攻击到的位置有哪些(皇后攻击直线与斜线) 输入&#xff1…

LMbench单独执行某一个组件 | benchmark教程

LMbench官网 > https://lmbench.sourceforge.net/man/ 下载源码,编译得到的Benchmark是由很多文件组成的,上面的链接中官方给出了每个组件的各参数的含义,可以对照着修改使用,以达到测试在某个组件上表现的作用。 以bw_mem为例…

【学习分享】通俗易懂!最早(晚)开始时间

【学习分享】通俗易懂!最早(晚)开始时间 前言一、什么是最早(晚)开始时间?二、什么是关键路径?三、实例四、小结 前言 看了这么多篇求解最早开始时间和最晚开始时间的文章,结果一篇…

RTSP/Onvif视频监控平台EasyNVR如何提高匿名用户的用户名和密码安全性?

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

vue3中所有页面需要手动刷新一下才能显示,控制台没有报错

1.问题 登录进来是进入首页,然后切换任何页面都是空白,但是控制台没有报错。在其他页面刷新后却能显示,然而切换到首页刷新后再切换到其他页面又是空白。 2.解决问题 原因:在于首页给了两个根标签,我把其中一个根标签…

解决VSCode中“#include错误,请更新includePath“问题

目录 1、问题原因 2、解决办法 1、问题原因 在编写C程序时,想引用头文件但是出现如下提示: (1)首先检查要引用的头文件是否存在,位于哪里。 (2)如果头文件存在,在编译时提醒VSCo…

ROM修改进阶教程------安卓7_____安卓13去除签名验证操作步骤解析

同类博文: 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】_qcn改区域锁-CSDN博客 安卓系列机型rom修改。如果你删减了系统相关的app。那么严重会导致开机系统卡米 定屏等问题。这类一般都是系统签名验证导致的。而破解签名验证一般都是修改…

JsonPath实战

概述 JsonPath&#xff0c;GitHub是一种简单的方法来提取给定JSON文档的部分内容&#xff0c;提供类似正则表达式的语法来解析JSON文档。 特性 入门 引入如下Maven依赖&#xff1a; <dependency><groupId>com.jayway.jsonpath</groupId><artifactId&…

Centos7虚拟机与真机乎ping以及虚拟机ping不通的原因

虚拟机网络完全正常的标准 物理机可以ping通虚拟机的IP虚拟机可以ping通物理机的IP虚拟机可以ping通baidu.com等网站 使用工具版本&#xff1a;Centos7 前提&#xff1a; 虚拟机必须开机才可以连接访问 克隆出来的虚拟机一定要手动修改IP&#xff0c;IP冲突的情况下不能联网 …

会员邀请:中华环保联合会征集会员单位、行业专家

为进一步发展壮大会员队伍&#xff0c;我们将充分吸收水环境治理领域具有先进理念、技术创新、表现突出的优秀企事业单位作为会员。依托院士、专家团队的技术力量为企业、园区、区域流域、地方政的水环境问题提供全过程一站式服务;为企业搭建全产业链布局的专业服务平台&#x…

常见的数据抽取工具对比

1.什么是ETL? ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程&#xff0c;是数据仓库的生命线。 …

羊大师分析,夏季羊奶的适合人群有哪些?

羊大师分析&#xff0c;夏季羊奶的适合人群有哪些&#xff1f; 夏季羊奶的适合人群相当广泛&#xff0c;主要包括以下几类人群&#xff1a; 生长发育中的孩子&#xff1a;羊奶富含营养&#xff0c;特别是蛋白质和矿物质&#xff0c;对孩子的生长发育有积极的促进作用。 中老年…

6.2 整合MongoDB

6.2 整合MongoDB 1. MongoDB简介2. MongoDB安装2.1 下载2.2 配置MongoDB2.3 MongoDB的启动和关闭1. 启动MongoDB2. 关闭MogoDB 2.4 安全管理 ***************************************************************************** 1. MongoDB简介 MongoDB是一种面向文档的数据库管…

txt转epub,epub转txt在线转换,电子书格式转换器!

随着电子书阅读器的普及&#xff0c;EPUB格式已成为数字出版的标准格式之一。EPUB文件不仅具有跨平台的兼容性&#xff0c;还提供了丰富的排版和交互功能&#xff0c;使得读者在阅读过程中获得更好的体验。然而&#xff0c;许多用户手中的电子书资源可能仍是以TXT格式存在。 T…

C++之类和对象--赋值运算符重载和const成员函数

目录 1.赋值运算符重载 1.1运算符重载 1.2赋值运算符重载 1.3其它特性 2.const成员函数 3.取地址及const取地址操作符重载 hello&#xff0c;欢迎大家来到小恶魔频道&#xff0c;今天讲解的是C里面的赋值运算符重载以及const成员函数 1.赋值运算符重载 1.1运算符重载 运…

CentOS-7安装grafana

一、通用设置&#xff08;分别在4台虚拟机设置&#xff09; 1、配置主机名 hostnamectl set-hostname --static 主机名2、修改hosts文件 vim /etc/hosts 输入&#xff1a; 192.168.15.129 master 192.168.15.133 node1 192.168.15.134 node2 192.168.15.136 node33、 保持服…