接口(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
为什么大模型连接外部世界?
大模型两大缺陷:
- 并非知晓一切
- 训练数据不可能什么都有。垂直、非公开数据笔有欠缺
- 不知道最新信息。大模型的训练周期很长,且更新一次耗资巨大,还有越训越傻的风险。所以它不可能实时训练。GPT-3.5和的知识截至2021年9月,GPT-4是2023年12月
- 没有【真逻辑】。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑。所以有幻觉。
所以:大模型需要连接真实世界,并对接真逻辑系统。
用AI来做加法:
- 把100以内的所有加法算式都训练给大模型,它就可以回答100以内的加法算式,但仍有概率出错。
- 如果问它更大数字的加法,出错概率就会更大
- 因为它并不懂【加法】,只是记住了100以内的加法算式的统计规律
- 它是用字面意义做数学。
ChatGPT用Actions连接外部世界
第一次尝试:Plugins
- 2023年3月24日发布plugins,模型可以调用外部的api
- 2024年4月9日正式下线,宣告失败
第二次尝试:Actions
actions,内置在GPTS中,解决了落地场景问题
流程解析
-
通过actios的schema,GPT能读懂各个API能做什么、怎么调用
-
拿到prompt,GPT分析出是否调用API才能解析问题
-
如果调用api,生成调用参数
-
ChatGPT调用API
-
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_coordinateparameters:- name: keywordsin: querydescription: POI名称,必须是中文required: trueschema:type: string- name: regionin: querydescription: POI所在的区域名,必须是中文required: falseschema:type: stringdeprecated: false/around:get:description: 搜索给定坐标附近的POIoperationId: search_nearby_poisparameters:- name: keywordsin: querydescription: 目标POI的关键字required: trueschema:type: string- name: locationin: querydescription: 中心点的经度和纬度,用逗号分隔required: falseschema:type: stringdeprecated: false components:schemas: {}
还需要配置API Key来满足权限要求。
这里的所有name、description都是prompt,决定了GPT会不会调用你的API,调用得是否正确。
Function Calling的机制
原理和actions一样,只是使用方式有别。