ChatGPT 的 Function Call 如同 C3PO 和 R2-D2 联手_每日热议
时间:2023-06-27 21:58:30来源:清一色财经

Function call 简单的说,就是把原来 ChatGPT 的 API 中 completetions 的调用,从原来只支持 messages(messages里面又可以指定 system,user,assistant 三个角色),扩展到还可以提供 functions。

ChatGPT 6 月 13 日的发布里面的 Function Call 的功能,把自然语言的世界和现在已经有的编程语言的世界打通了。虽然最终我认为整个世界将会是自然语言的世界,但是毕竟现在所有的计算机系统都还是代码和API 的世界。从存量的角度来说,这是和现有系统兼容的最好的办法。


【资料图】

这件事情让我想起了《星球大战》里面的一对可爱的机器人。金黄色人型的有点傻的 C3PO,精通礼仪和协议,会各种语言;还有一个 R2-D2,就是那个矮矮的圆圆的,是宇航技工机器人(Astromesh Droid),精通计算和与计算机系统用“嘀嘟嘟嘟”的声音通信。他们两个搭配在一起工作,倒是完美:R2-D2 负责干活,获取信息,C3PO 负责翻译成人的语言。这个合作关系,就如同现在的 ChatGPT 和 API 的关系一样。

Function call 简单的说,就是把原来 ChatGPT 的 API 中 completetions 的调用,从原来只支持 messages(messages里面又可以指定 system,user,assistant 三个角色),扩展到还可以提供 functions。ChatGPT 会根据 functions 里面每个 function 描述里面「字面」的意思,通过简单的逻辑判断用户的问题用这个函数是否可以回答。如果可以的话,把用户的问题中间可以作为参数的部分提取出来,并且返回一个结构化的函数调用数据结构。

代码的世界再通过严格的 JSON 格式定义的函数调用方法调用函数,然后再把结果返还给 ChatGPT。ChatGPT 根据函数的结果,再继续回答用户的问题。

比如我自己的机器人的 functions 是这么写的:

functions = [    {        "name": "get_articles",        "description": "Get List of articles",        "parameters": {                "type": "object",                "properties": {                    "start": {                        "type": "integer",                        "description": "The starting point of index of articles",                    },                    "end": {                        "type": "integer",                        "description": "The ending point of index of articles",                    },                },            "required": [],        },    },    {        "name": "read",        "description": "Get value from database",        "parameters": {                "type": "object",                "properties": {                    "key": {                        "type": "string",                        "description": "The key to store the value ",                    },                },            "required": ["key"],        },    },    {        "name": "save",        "description": "Save value to the database",        "parameters": {                "type": "object",                "properties": {                    "key": {                        "type": "string",                        "description": "The key to store the value ",                    },                    "value": {                        "type": "string",                        "description": "The value to store the value ",                    },                },            "required": ["key", "value"],        },    },    {        "name": "run_node",        "description": "Run node.js code",        "parameters": {                "type": "object",                "properties": {                    "code": {                        "type": "string",                        "description": "The node.js code I want to use to evaluate",                    },                },            "required": ["code"],        },    }]

其中包括获取以前的文章的函数,通用的保存和读取的函数,以及执行 Node.js代码的函数。

如果我问:

User: 最近的5篇文章是什么?

ChatGPT 会回答:

Function: {"name": "get_articles", "arguments": "{\n "start": 0,\n "end": 5\n}"}fda

它把参数都准备好了。这个是在 GPT-3 里面就很成熟的功能,只不过这样子更加稳定可控了。

如果问:

User: 现在几点了

ChatGPT 会把凡是用 Node.js的代码可以回答的问题都转变成 Node.js 的调用:

Function: {"name": "run_node", "arguments": "{\n "code": "new Date().toLocaleTimeString()"\n}"}

这些问题包括时间,算数等等。我们就可以把 Node.js 系统的世界和 ChatGPT 的自然语言的世界联系在了一起。(不过一定要注意,这个例子的安全隐患和太平洋那么大。如果让他返回系统的信息,以及删除一些文件,它也会开心的照做,并且真的能做到。)

接下来基于这个连接器应该有非常多有趣的应用。虽然这件事情以前用 LangChain 或者自己直接写代码也可以实现。但很多事情都是,如果在最简单的地方再简单一点的效果比在很复杂的地方简化很多还大。

随着 Function Call 的支持,ChatGPT API 里面的角色(role)参数,也从三种扩充到了四种:

systemassistantuserfunction

这四种,恰恰对应于自然世界的四样东西:system 相当于上帝或者大自然(机器人就是那样被创造的,所拥有的角色就如同是被上帝设定的);assistant 就是服务用户的机器人;user 就是和机器人交互的人类;而function 则代表着这个世界,是用户和机器人之外的第三方。机器通过函数从中获取信息,也通过函数改变它的状态。

这个 C3PO 和 R2-D2 的合作,我们既可以看作 ChatGPT 有了调用物理世界的能力,也可以看成是所有的计算机函数接口都有了人类语言的能力。

标签:

最新
  • ChatGPT 的 Function Call 如同 C3PO 和 R2-D2 联手_每日热议

    Functioncall简单的说,就是把原来ChatGPT的API中completetions的调用

  • 方正富邦基金闻晨雨离任3只基金_热消息

    方正富邦基金闻晨雨离任3只基金---中国经济网北京6月26日讯今日,方正

  • 言うに及ばない_言及之而不言打一字

    1、谜底是适。2、有话不言,是指话字去掉言字旁,剩下舌字。3、就要走

  • 国漫中的夏目友人帐,都市治愈美食番,《李林克的小馆儿》开播-每日热讯

    人物画风虽然简单,制作质量却是上乘,每一个镜头的展现都体现着“精

  • 牵手吉林、黑龙江两地政府LP 深创投掘金东北 已成立8支基金

    近日,深创投龙江产业基金设立签约仪式在哈尔滨举行。由黑龙江省金融控

  • 天天热推荐:从单向帮扶到高质量的“双向奔赴” 广东汕尾把特区“搬进家”

    央视网消息:今天(6月26日)的“高质量发展调研行”,我们走进地处粤东

  • 当前速读:世界互联网大会数字文明尼山对话开幕式举行

    海报新闻记者满倩倩丛萍李义芳孙靓邢德蕊夏岩松济宁报道6月26日上午,

  • 不真正无因管理的情形怎么样? 不真正无因管理的分类分别是什么?-天天热点

    不真正无因管理的情形怎么样?管理他人事务却没有为他人谋利益的意思

  • 观热点:山东矿机个股怎么样?山东矿机后期走势如何?

    山东矿机个股怎么样根据赢家江恩星级评定模型,给予山东矿机(002526

  • 混合基金适合长期持有吗?买混合基金有什么技巧 全球动态

    混合基金适合长期持有吗?混合基金是一种同时投资股票、债券等多种资

  • 这国境内核武,俄方将“保留控制权”

    据俄罗斯《消息报》网站报道,俄罗斯外交部长拉夫罗夫6月24日在集体安

  • 安凯微(688620.SH):股票将于6月27日科创板上市-微头条

    格隆汇6月25日丨安凯微(688620 SH)公布,公司股票将于2023年6月27日在

  • 高考出分后如何选专业,进来看看吧

    潮新闻客户端编辑周怿培施菲菲品新闻,聊话题,识冷暖。夜晚潮回,一起

  • 凯旋新世界法拍房3220.4万元高价成交 溢价率108%

    5月20日上午,凯旋新世界-广粤尊府一套法拍房在100轮竞拍之后最终确定

  • 网满格为什么网速很慢(为什么网速很慢)

    1、【问题描述】:电脑运行慢,操作起来电脑需要反映一段时间。2、【原

  • 长江“黄金水道”效益凸显

    央视网消息(新闻联播):今天(6月18日),三峡集团发布消息,三峡船闸自

  • 旅游
    • 三家合作,开发下一代氨发动机|今亮点

    • 美团在包头成立科技新公司#注册资本400万美元-全球热点评

    • 山东多地开“凉方”应对高温,出现这种症状要警惕 天天最资讯

    • “雨”量有点小,意欲何为?