最新动态
ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力
2024-12-26 03:12


  OpenAI在6月13号升级了ChatGPT,推出了类似其网页版插件的功能——函数调用(Function calling),13号当天我在很多微信公众号就看到了这个消息,甚至有人将函数调用称为杀手级特性,正好周末有空,就写个Demo试用下,验证下它是平平无奇还是真的能让人眼前一亮。

  官网给出的函数调用示例是接入查询天气的能力,我看到第一反应 就这……。但当我写了一个简单抓取网页文本的函数,并将其接入到ChatGPT中后,我突然意识到这确实是一个非常强大的功能。之前的ChatGPT只能用文本交互,文本有个特点就是其规范性非常非常弱,同样的语义两个不同的人表述出来可能就是完全不同的两句话,导致我们很难用自然语言区控制普通的程序。而这次的函数调用能力,让其具备了输出强规范的内容,可以用来调起其他程序。这也意味着ChatGPT具备了和普通程序交互的能力,可想象的空间非常大。

  接下来我就用我实现的ChatGPT网页分析能力作为示例,演示下如何让ChatGPT接入普通的python函数,最后我再总结下函数调用的能力和局限,顺便也畅想下函数调用到底还可以实现什么样的强大功能。

  首先就是要定义好普通的python函数,我这里写了一个简单的网页爬取的功能,给定url就可以抓取到网页上面的文本内容。这里只是一个简单实现,可能部分网页无法正常抓取。

  这里使用的是request包发起请求,使用bs4的BeautifulSoup来解析html标签,代码将html中所有的段落、代码、标题内容都抓取出来。

  这一步的作用就是把可以调用的普通函数信息用ChatGPT可以识别的格式描述出来,这里OpenAI直接采用了JSON-Schema。也比较简单,就是描述出来有哪些函数可以用、函数分别实现了什么样的功能、每个函数有哪些参数、哪些是必填参数、哪些是选填参数…… 这里我用来抓取url对应文本的函数描述如下:

  注意,这里functions可以有不止一个,只要你能准确将函数功能及入参格式用json-schema描述出来,ChatGPT就能给你调起。 另外这里为了方便调起,我们还需要保存一个方法名到实际方法的映射关系,具体如下:

  接下来我们只需要在原有Api的参数中增加functions,让ChatGPT知晓有哪些函数可以调用,然后让他决定要不要调。完整的代码及注释如下:

我们简单验证下效果:

返回结果如下:

  可以看到对于我博客的网址还是非常好用的,我也测试了CSDN、掘金等技术网站,也可以正常使用。但有些网站拿不到结果,不是ChatGPT不行,而是我get_text_from_url方法写的太low了,有些情况下确实没法抓取到内容。

备注:使用函数调用时需要升级最新的openai包,另外目前也只有gpt-3.5-turbo-0613和gpt-4-0613两个模型才支持函数调用,其他模型还不支持。

   不管是从官网查询天气的示例,还是从我这个抓取网页的示例来看,接入函数调用的能力并不复杂。另外需要注意到的一点,虽然这个功能叫函数调用,但ChatGPT并不会帮你去调这些函数,而是帮你判断何时去调用这些函数,给你调用函数所需要的参数,最终肯定得是由你自己去调用函数的。从它的返回数据格式可以看出,当前版本的函数调用还有个局限点,就是当前版本只能在一次对话中调起一个函数,如果遇到那种需要多次调用的操作,就只能通过多轮对话的方式实现了。

   虽然函数调用这个功能看似简单,但我觉得这个功能让ChatGPT拥有了和现有程序打通的能力,以前它只能帮你做决策、给建议,但现在它还可以去帮你执行。举个很实际的例子,现在ChatGPT用的最多的地方就是客服之类的问答场景,现在的系统只能做一些信息交换,比如商品咨询、退换货信息咨询……,但如果接入函数调用功能,用户就可以直接在对话的过程中完成整个流程,这现在是完全可以做到的,不过这个东西刚出来,其决策的可靠性还需要验证,连OpenAI在官网上都提示:

We strongly recommend building in user confirmation flows before taking actions that impact the world on behalf of users (sending an email, posting something online, making a purchase, etc).
我们强烈建议在代表用户采取影响世界的动作(发送电子邮件、在线发布内容、进行购买等)之前,先由用户确认。

  如果你还意识不到函数调用的强大能力,我再举一些简单的例子:如果ChatGPT和你的日历打通,那它是不是就可以帮你管理日程了; 如果和你的笔记打通,那它是不是就可以帮你整理笔记了;甚至是和你的股票账号打通,是不是就可以帮你炒股了;如果和脑机接口打通,那它是不是就可以控制……

ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力

    以上就是本篇文章【ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/13148.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评