前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于ChatGPT3.5,如何实现可联网查询的对话机器人

基于ChatGPT3.5,如何实现可联网查询的对话机器人

原创
作者头像
brzhang
修改2023-05-25 14:07:51
2.7K0
修改2023-05-25 14:07:51
举报
文章被收录于专栏:玩转全栈玩转全栈

背景

众所周知,OpenAI 开发了一款名为 "Web Browsing" 的插件,它利用 Bing 的 API 在互联网上搜索、整理、总结问题的相关信息,然后给出具体答案,然而ChatGPT4以下是不具备联网能力,这也许是很多人充值PLUS的原因,因为不能获取实时的信息,也有可能造成回答与实际环境脱节,但是大多数人没有那个预算,现实就摆在眼前,既要使用ChatGPT3.5的廉价的token能力,又想让他带上联网的功能,拼一拼,单车变摩托,这个可以实现吗?

很显然,这篇文章的出现,你应该已经猜到这个是可以实现的,下面,我带你来一步步实现。

原理

所谓的联网,就是基于从网络上搜索的信息作为上下文进行提问,一句话,就这呢简单,但是实现起来需要考虑两个点:

1、使用什么搜索引擎就行搜索,最好是开源的

2、搜索出来的内容如何传递给到 ChatGPT接口,是否会超过token的限制

3、怎么样组织好prompt

解决好以上3个问题,那这个问题自然就迎面而解了,别着急,我们问问ChatGPT,这些问题有没有答案。

第一个问题,找开源的搜索工具

对于这些21年就一定很成熟的技术,ChatGPT还不是手到擒拿,直接就给出了一个开源的搜索工具

duckduckgo_search,这里是他的官网 https://github.com/deedy5/duckduckgo_search

一看,还真不错,不仅仅支持搜索文本,还支持搜索图片,甚至视频

当然,我们关心的只是图片。

第一个问题,搜索的内容如何进行处理,把他作为上下文提供给到ChatGPT接口

这个嘛,就直接贴代码了

第三个问题,如何组织好prompt

还是直接给出代码,这就很清晰了,实际上就是把上面我们通过duckduckgo_search给到的关键字查到的内容,交给prompt中的占位符去重新组织一下

第四个问题,如果token超了怎么办

解决问题的办法是,我们可以使用langchain工具来做索引,做embedding,然后通过近似搜索来找到相关性比较大的上下文,或者,搜索工具,我们就取前面的2-3条的摘要,通常就不会超出。就如上面那个步骤,我的max_result设置的是5,保险的话,可以调整小点,比如到3。这是一个经验值,基本不会超。

总结

至此,一个代联网搜索能力的基于ChatGPT3.5 的工具就实现了,相信你在了解原理之后,自己也能轻松的完成一个。

推荐

这里也推荐一个代联网搜索能力的工具,bing就不说了,还有一个个人觉得做得非常牛逼。

https://www.perplexity.ai/ ,这个工具也支持使用ChatGPT4,限制是每3小时5次,都是免费的,可能是目前为止发现的最好的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 原理
    • 第一个问题,找开源的搜索工具
      • 第一个问题,搜索的内容如何进行处理,把他作为上下文提供给到ChatGPT接口
        • 第三个问题,如何组织好prompt
          • 第四个问题,如果token超了怎么办
          • 总结
          • 推荐
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档