ChatGPT 开源了第一款插件,都来学习一下源码吧!

3 月 23 日,OpenAI 又投出了一枚重磅炸弹:为 ChatGPT 推出插件系统!

此举意味着 ChatGPT 将迎来“APP Store”时刻,也就是围绕它的能力,形成一个开发者生态,打造出基于 AI 的“操作系统”!

插件系统将为 ChatGPT 带来质的飞跃,因为借助于插件服务,它可以获取实时的互联网信息、调用第三方应用(预定酒店航班、点外卖、购物、查询股票价格等等)。

ChatGPT 是一个无比聪明的大脑,而插件会成为它的眼睛、耳朵、手脚、甚至于翅膀,能力惊人,未来不敢想象!

官方目前提供了两个插件:

  • 一个网页浏览器。利用新必应浏览器的 API,实时搜索互联网内容,并给出答案和链接

  • 一个代码解释器。利用 Python 解释器,可以解决数学问题、做数据分析与可视化、编辑图片、剪辑视频等等,还支持下载处理后的文件

另外,OpenAI 还开源了一个知识库检索插件 chatgpt-retrieval-plugin ,这个插件通过自然语言从各种数据源(如文件、笔记、邮件和公共文档)检索信息。有了开源代码后,开发者可以部署自己的插件版本。

想象一下,假如我提供了一个“Python 知识库插件”,以所有官方文档作为数据源,那以后有任何 Python 使用上的问题,我就只需询问 ChatGPT,然后它调用插件并解析数据,最后返回给我准确的答案。这将节省大量的时间!

不仅如此,你还可以用书籍作为数据源,打造出“西游记知识库”、“红楼梦知识库”、“百科全书知识库”、“个人图书馆知识库”,等等;以专业领域的论文与学术期刊为数据源,创造出一个专家助手,从此写论文查资料将无比轻松;以苏格拉底、乔布斯、马斯克等名人的资料为数据源,创造出人格化的个人顾问……

作为第一个开源的 ChatGPT 插件,chatgpt-retrieval-plugin 项目一经发布,就登上 Github 趋势榜第一,发布仅一周就获得 11K stars。

这个项目完全是用 Python 写的,不管是出于学习编程的目的,还是为了将来开发别的插件作借鉴,这都值得我们花时间好好研究一下。

接下来,我将分享自己在阅读项目文档和源码时,收获到的一些信息。

首先,该项目含 Python 代码约 3 K,规模不算大。项目结构也很清晰,目录如下:

目录描述
datastore包含使用各种向量数据库提供程序存储和查询文档嵌入的核心逻辑
examples包括配置示例、身份验证方法和面向程序提供方的示例
models包含插件使用的数据模型,例如文档和元数据模型
scripts存放实用的脚本,用于处理和上传来自不同数据源的文件
server存放主要的 FastAPI 服务端实现
services包含用于任务(如分块、元数据提取和 PII 检测)的实用服务
tests包括各种向量数据库提供程序的集成测试
.well-known存储插件清单文件和 OpenAPI 格式,定义插件配置和 API 规范等信息

除去示例、测试、配置文件等内容外,最主要的三个目录如下:

datastore 数据存储

数据源的文本数据会被映射到低维度向量空间,然后存储到向量数据库中。官方已提供 Pinecone、Weaviate、Zilliz、Milvus、Qdrant、Redis 这几种数据存储方案的示例。另外,有几个 pull requests 想要加入 PostgreSQL 的支持,大概率将来会合入。

这里使用了抽象工厂设计模式 ,DataStore 是一个抽象类,每种数据存储库是具体的实现类,需要实现三个抽象方法:

(1)_upsert(chunks: Dict[str, List[DocumentChunk]]) -> List[str] 方法,接收一个字典参数,包含有 DocumentChunk 对象列表,将它们插入到数据库中。返回值为文档 ID 的列表。

(2)_query(queries: List[QueryWithEmbedding]) -> List[QueryResult] 方法,接收一个列表参数,包含被 embedding 的查询文本。返回一个包含匹配文档块和分数的查询结果列表。

(3)delete(ids: Optional[List[str]] = None, filter: Optional[DocumentMetadataFilter] = None, delete_all: Optional[bool] = None, ) -> bool  方法,根据 id 和其它过滤条件删除,或者全部删除。返回操作是否成功。

值得注意的是,该目录下的factory.py 模块使用了 Python 3.10 新引入的 match-case 语法,紧跟着 Python 社区的新潮流呢~

server 服务端接口

这个目录只有一个main.py 文件,是整个项目的启动入口。它使用了目前主流的 FastAPI 框架,提供了增删改查的几个 API,另外使用 uvicorn 模块来启动服务。

  • /upsert-file 接口,用于上传单个文件,将其转换为 Document 对象,再进行新增或更新

  • /upsert 接口,上传一系列的文档对象,用于新增或更新

  • /query 接口,传入一系列的文本条件,转成 QueryWithEmbedding 对象后,再从向量数据库查询

  • /delete 接口,根据条件删除或者全部删除数据库中的数据

在这几个接口中,增改删功能主要是给开发者/维护者使用的,ChatGPT 只需调用插件的查询接口。因此,代码中还创建了一个“/sub”子应用,只包含/query 接口,提供给 ChatGPT 调用。

另外,它使用 FastAPI 的 mount 方法挂载了一个“/.well-known”静态文件目录,暴露了关于本插件的基本信息,例如名称、描述、作者、logo、邮箱、提供给 OpenAPI 的接口文档等等。

services 任务处理方法

这个目录下是一些通用的函数,比如下面这些:

(1)chunks.py 文件包含了将字符串和 Document 对象分割成小块、以及为每个块获取嵌入向量的函数。

(2)file.py 文件提供了从上传的文件中提取文本内容及元数据的函数。目前支持解析的文件类型包括 PDF、纯文本、Markdown、Word、CSV 和 PPTX。

(3)openai.py 文件包含两个函数:get_embeddings 函数使用 OpenAI 的 text-embedding-ada-002 模型对给定的文本进行嵌入。get_chat_completion 函数使用 OpenAI 的 ChatCompletion API 生成对话。

整个而言,这个插件的几个接口功能很清晰,代码逻辑也不算复杂。核心的文本嵌入操作是借助于 openai 的 Embedding 接口,文本分块信息的存储及查询操作,则是依赖于各家向量数据库的功能。

YouTube 上有博主手画了一张示意图,字体虽潦草,但大家可以意会一下:

他这个视频 值得推荐一看,因为 up 主不仅简明地介绍了插件的工作原理,还手把手演示如何部署到 Digital Ocean、如何修改配置、如何调试,而且他有 ChatGPT 的插件权限,可以将自己部署的插件接入 ChatGPT,现场演示了知识库插件的使用!

视频:https://www.youtube.com/watch?v=hpePPqKxNq8

目前,关于 ChatGPT 插件的介绍、开发及配置等资料还比较少,毕竟是新推出的。但是,申请 waitlist 的个人和组织已经数不胜数了,一旦开放使用,各式各样的插件一定会像 Python 社区丰富的开源库一样,也将极大扩展 ChatGPT 的生态。

最后,插件 chatgpt-retrieval-plugin 的官方文档是最为详细的一手资料,推荐大家研究一番。https://github.com/openai/chatgpt-retrieval-plugin

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源版ChatGPT,30分钟训完,性能堪比GPT3.5!

转自:新智元 话说,ChatGPT 开源,是一件好事吗? 此前,OpenAI 不 Open 的事件,已经引发了坊间的诸多争议。 光放出基准和测试结果,不提供训练数据、成本、方法,是真的要「赢家通吃」了…

2023-02-18 什么是chatGPT?如何使用chatGPT?chatGPT可以胜任人类当前哪些工作?.什么是openAI?chatGPT的使用示例

文章目录 1.什么是chatGPT?2.如何使用chatGPT?3.chatGPT可以胜任人类当前哪些工作?4.什么是openAI?5,使用示例一:旅游攻略6.使用示例二:AI绘画 1.什么是chatGPT? chatGPT本质上是一个应用在对话场景中的语言模型,它是基于GPT3.5(Generative Pre-trained Transformer,是指…

人类与ChatGPT:互动中的共同进步

一、ChatGPT的发展历程 1. GPT模型 ChatGPT是由OpenAI推出的一款聊天机器人,其核心技术基于GPT模型。GPT模型(Generative Pre-training Transformer)是一种基于Transformer结构的预训练语言模型。它在大规模的文本语料库上进行无监督的预训…

零基础解读ChatGPT:对人类未来工作是威胁还是帮助?

摘要:火到现在的ChatGPT到底是什么?它背后有哪些技术?对于我们的工作和生活会有啥影响?快来一起了解吧~ 本文分享自华为云社区《零基础解读ChatGPT:对人类未来工作是威胁还是帮助?》,作者&#…

ChatGPT 是一种受到广泛关注的人工智能技术,它具备生成自然语言的能力,能够完成一些简单的文本生成、对话交互等任务。随着人工智能技术的不断发展,有人开始质疑 ChatGPT 是否能取代程序员,推动

ChatGPT 是一种受到广泛关注的人工智能技术,它具备生成自然语言的能力,能够完成一些简单的文本生成、对话交互等任务。随着人工智能技术的不断发展,有人开始质疑 ChatGPT 是否能取代程序员,推动着人类的智能化进程。本文将围绕“C…

【人工智能AI2.0】国产开源 ChatGPT: ChatGLM-6B 搭建属于你的永远免费的本地 ChatGPT

国产开源 ChatGPT: ChatGLM-6B 搭建属于你的永远免费的本地 ChatGPT 文章目录 国产开源 ChatGPT: ChatGLM-6B 搭建属于你的永远免费的本地 ChatGPTChatGLM-6B 介绍硬件需求使用方式环境安装代码调用Demo网页版 Demo命令行 Demo低成本部署模型量化CPU部署ChatGLM-webuiInstallre…

ChatGPT火了,对话式人工智能还能干嘛?

身兼数职的ChatGPT      从2022火到了2023      连日来一直是各大平台的热议对象      其实除了写诗、敲代码、处理文档      以ChatGPT为代表的      对话式人工智能      还有更重要的工作要做      对话式AI与聊天机器人      相信大多数人…

最近爆火chatGTP是人工智能还是人工智障?

关于chatGTP和一些话题? OpenAI 发布了 ChatGPT,是一个可以对话的方式进行交互的模型,因为它的智能化,得到了很多用户的欢迎。 ChatGPT是InstructGPT的兄弟模型,可以以对话的形式与用户交互,这使得ChatGPT能够回答问…

人工智能与Chat GPT

一本书全面掌握ChatGPT,既有向ChatGPT提问的技巧, 也有构建自己的ChatGPT模型的方法,涵盖开发背景、关联技术、使用方法、应用形式、实用案例等 人工智能是我们这个时代最热门的话题,人们既希望它能代替我们做一些工作&#xff0c…

CHATGPT是什么意思,人工智能软件chatGPT怎么用

在介绍 ChatGPT 平台之前,我们首先需要了解人工智能和自然语言处理(NLP)的概念,这对于进一步了解 ChatGPT 的使用非常重要。 人工智能是计算机科学中的一个分支,专注于研究如何赋予计算机类似于人类的智能。自然语言处…

阿猫智能机器人称:国内用户轻松训练类ChatGPT等大语言模型,使得人人都能拥有自己的ChatGPT!

4月12日,微软宣布开源了Deep Speed Chat,帮助用户轻松训练类ChatGPT等大语言模型,使得人人都能拥有自己的ChatGPT!(国内chatgpt平台阿猫智能机器人项目合作地址:https://3amao.comGptChat, AI, APIhttps://…

因为自家ChatGPT,谷歌「内讧」了

机器之心编辑部 首个 demo 就出错,发布会毫无亮点,谷歌的仓促连自家员工也看不下去了。 如今看来,微软和高启强一样,是略懂兵法的,微软使出了一招疲秦之策:早就开始了必应与 ChatGPT 的整合,然后…

苹果震撼发布首款头显,搭配强悍Mac和iOS 17等全新产品,价值25000元!

🌷 博主 libin9iOak带您 Go to New World.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发…

谷歌版 ChatGPT 首秀大翻车,市值暴跌 7000 亿!

转自 | 机器之心 现在看来,拼第一枪,微软赢了。 如今的谷歌,有点秦失其鹿的味道。 在微软更新 ChatGPT 加持的必应搜索之后,大家都极为关注谷歌 Bard 的首秀。怎知近日曝出的 Demo 大翻车,导致股票一夜之间暴跌 7000 亿…

ChatGPT引爆新一轮科技军备赛

出品|虎嗅科技组 作者|齐健 陈伊凡 编辑|陈伊凡头图|电影《华尔街之狼》 “一场针对AI的‘完美风暴’正在形成。” 一位产业投资人如此描述。 一时间,街头巷尾都在热议一个叫做ChatGPT的产品,ChatGPT相关概…

CSDN-InsCode (一个支持ai编程的代码分享社区网站)使用初体验

我叫Aaron,是一家研二在读计算机系学生。目前正在一家公司就职java后端研发实习。想往常一样正在逛csdn 的精选,看到一条 "Inscode 支持ai编程"的消息,我赶紧点进去看了下详情,并试用了Inscode的网站。在chatGPT大火的今天&#xf…

谷歌版ChatGPT首秀,第一个Demo就大翻车,市值暴跌7000亿

在微软更新 ChatGPT 加持的必应搜索之后,大家都极为关注谷歌 Bard 的首秀。怎知近日曝出的 Demo 大翻车,导致股票一夜之间暴跌 7000 亿人民币。而看微软那边,风景独好。 前后脚发布新一代 AI 搜索,人们的期待却完全反过来&#xf…

ChatGPT在GIS领域应用初测

1 引言 ChatGPT是由OpenAI开发的一种大型语言模型,它使用了Transformer架构,在大量现实世界文本数据上训练,以捕捉人类语言的复杂性和多样性。能够实现许多人工智能语言处理任务,如回答问题、进行翻译、修改代码、生成文档、文本等…

迎战 ChatGPT,Google 重组部门以专注 Bard 开发!

整理 | 朱珂欣 出品 | CSDN(ID:CSDNnews) 自从 ChatGPT 横空出世以来,完全可以用“杀疯了”来形容! 尤其是整合了 ChatGPT 的新版 Bing ,实现了“搜索答案聊天创造”相结合,一时之间让许多用户…

谷歌版ChatGPT翻车了!市值暴跌7000亿

源|机器之心 现在看来,拼第一枪,微软赢了。 如今的谷歌,有点秦失其鹿的味道。 在微软更新 ChatGPT 加持的必应搜索之后,大家都极为关注谷歌 Bard 的首秀。怎知近日曝出的 Demo 大翻车,导致股票一夜之间暴跌…