chatgpt-retrieval-plugin:chatgpt检索插件简介

article/2024/11/15 0:26:48

文章目录

  • chatgpt检索插件简介
    • 加入等待名单
    • 介绍
      • 目录描述
    • 关于
      • 插件
        • API
        • 检索插件
        • 内存功能
        • 安全
        • API终端接口
    • 快速启动
    • 扩展阅读
    • TIPS1:bearer_token

chatgpt检索插件简介

引自官方:项目git地址

ChatGPT检索插件允许您通过用日常语言提问来轻松搜索和查找个人或工作文档。

加入等待名单

首先要加入官方的等待名单:https://openai.com/waitlist/plugins在这里插入图片描述
填写等待list的申请清单:在这里插入图片描述
在这里插入图片描述
官方文档中给出了一个可以访问2018年至2022年联合国年度报告的检索插件的示例视频。

介绍

ChatGPT检索插件库为使用自然语言查询进行个人或组织文档的语义搜索和检索提供了灵活的解决方案。存储库分为几个目录:

目录描述

数据存储:包含使用各种矢量数据库提供程序存储和查询文档嵌入的核心逻辑。
示例:包括示例配置、身份验证方法和特定于提供程序的示例。
models:包含插件使用的数据模型,例如文档和元数据模型。
脚本:提供用于处理和上载来自不同数据源的文档的脚本。
server:包含主要的FastAPI服务器实现。
services:包含用于分块、元数据提取和PII检测等任务的实用程序服务。
tests:包括各种矢量数据库提供程序的集成测试。
well-known:存储插件清单文件和OpenAPI架构,它们定义了插件配置和API规范。
自述文件提供了有关如何设置、开发和部署ChatGPT检索插件的详细信息。

关于

插件

插件是专门为ChatGPT等语言模型设计的聊天扩展,使它们能够访问最新信息、运行计算或响应用户请求与第三方服务交互。它们释放了广泛的潜在用例,并增强了语言模型的功能。

开发人员可以通过网站公开API并提供描述API的标准化清单文件来创建插件。ChatGPT使用这些文件,并允许AI模型对开发人员定义的API进行调用。

插件包括:

API

API模式(OpenAPI JSON或YAML格式)

为插件定义相关元数据的清单(JSON文件)

检索插件已经包含所有这些组件。阅读这里的聊天插件博客文章,并在这里找到文档。

检索插件

这是ChatGPT的一个插件,可以对个人或组织文档进行语义搜索和检索。它允许用户通过用自然语言提问或表达需求,从文件、笔记或电子邮件等数据源中获取最相关的文档片段。企业可以使用此插件通过ChatGPT向员工提供内部文档。

该插件使用OpenAI的text-embedding-ad-002嵌入模型来生成文档块的嵌入,然后使用后端的矢量数据库来存储和查询它们。作为一个开源和自托管的解决方案,开发人员可以部署自己的检索插件并在ChatGPT中注册。检索插件支持多个矢量数据库提供程序,允许开发人员从列表中选择他们喜欢的一个。

FastAPI服务器公开插件的端点,用于追加销售、查询和删除文档。用户可以通过使用元数据过滤器按来源、日期、作者或其他条件来细化搜索结果。该插件可以托管在任何支持Docker容器的云平台上,如Fly.io、Heroku或Azure Container Apps。为了使用最新的文档更新矢量数据库,插件可以连续处理和存储来自各种数据源的文档,使用传入的webhook来启动和删除端点。像Zapier或Make这样的工具可以帮助根据事件或时间表配置网络挂钩。

内存功能

检索插件的一个显著功能是它能够为ChatGPT提供内存。通过利用插件的upstart端点,ChatGPT可以将对话中的片段保存到向量数据库中,以供以后参考(只有在用户提示时)。该功能允许ChatGPT记住并检索以前对话中的信息,从而有助于获得更具上下文意识的聊天体验。在此处了解如何配置具有内存的检索插件。

安全

检索插件允许ChatGPT搜索内容的矢量数据库,然后将最佳结果添加到ChatGPT会话中。这意味着它没有任何外部影响,主要的风险考虑是数据授权和隐私。开发人员只应将他们有授权的内容添加到他们的检索插件中,并且他们可以在用户的ChatGPT会话中显示这些内容。您可以从多种不同的身份验证方法中进行选择,以确保插件的安全(更多信息请点击此处)。

API终端接口

检索插件是使用FastAPI构建的,FastAPI是一个使用Python构建API的web框架。FastAPI允许轻松开发、验证和记录API端点。请在此处查找FastAPI文档。

使用FastAPI的好处之一是使用Swagger UI自动生成交互式API文档。当API在本地运行时,Swagger UI位于<local_host_url,即。http://0.0.0.0:8000>/文档可以用来与API端点交互,测试它们的功能,并查看预期的请求和响应模型。

该插件公开了以下端点,用于从矢量数据库中追加、查询和删除文档。所有请求和响应都是JSON格式的,并且需要一个有效的承载令牌作为授权头。

/upstart:这个端点允许上传一个或多个文档,并将它们的文本和元数据存储在矢量数据库中。这些文档被分成大约200个令牌的块,每个令牌都有一个唯一的ID。端点希望在请求主体中有一个文档列表,每个文档都有文本字段以及可选的ID和元数据字段。元数据字段可以包含以下可选子字段:source、source_id、url、created_at和author。端点返回插入文档的ID列表(如果最初没有提供ID,则会生成ID)。/upstart文件:该端点允许上传单个文件(PDF、TXT、DOCX、PPTX或MD),并将其文本和元数据存储在矢量数据库中。该文件被转换为纯文本,并被拆分为大约200个令牌的块,每个令牌都有一个唯一的ID。端点返回一个列表,其中包含插入文件的生成ID。/query:这个端点允许使用一个或多个自然语言查询和可选的元数据过滤器来查询向量数据库。端点期望在请求主体中有一个查询列表,每个查询都包含一个查询、可选的筛选器和top_k字段。filter字段应该包含以下子字段的子集:source、source_id、document_id、url、created_at和author。top_k字段指定给定查询返回的结果数,默认值为3。端点返回一个对象列表,每个对象都包含给定查询的最相关文档块的列表,以及它们的文本、元数据和相似性得分。/delete:此端点允许使用一个或多个文档的ID、元数据过滤器或delete_all标志从矢量数据库中删除它们。端点要求在请求正文中至少包含以下参数之一:id、filter或delete_all。ids参数应该是要删除的文档ID的列表;具有这些IDS的文档的所有文档块都将被删除。filter参数应该包含以下子字段的子集:source、source_id、document_id、url、created_at和author。delete_all参数应该是一个布尔值,指示是否从矢量数据库中删除所有文档。端点返回一个布尔值,指示删除是否成功。

通过在本地运行应用程序并导航到,可以找到请求和响应模型的详细规范和示例http://0.0.0.0:8000/openapi.json,或在此处的OpenAPI架构中。请注意,OpenAPI架构只包含/query端点,因为这是ChatGPT需要访问的唯一函数。这样,ChatGPT只能使用该插件基于自然语言查询或需求检索相关文档。然而,如果开发人员还想让ChatGPT能够记住以后的事情,他们可以使用/upsert端点将对话中的片段保存到向量数据库中。可以在这里找到一个清单和OpenAPI模式的示例,该模式允许ChatGPT访问/upsert端点。

要包含自定义元数据字段,请在此处编辑DocumentMetadata和DocumentMetadataFilter数据模型,并在此处更新OpenAPI架构。您可以通过在本地运行应用程序,复制在http://0.0.0.0:8000/sub/openapi.json,并使用Swagger Editor将其转换为YAML格式。或者,您可以将openapi.yaml文件替换为openapi.json文件。

快速启动

按照以下步骤快速设置并运行ChatGPT检索插件:
这里默认的是Python3.8版本,推荐3.10以上版本。
克隆存储库:git clone https://github.com/openai/chatgpt-retrieval-plugin.git
导航到克隆的存储库目录:cd /path/to/chatgpt-retrieval-plugin
安装poem:pip install poetry
你必须先创建一个pyproject.toml。进入你的项目文件夹,运行poetry初始化并按照说明进行操作。
作为另一种选择,你可以运行poetry new myproject来创建一个基本的文件夹结构和pyproject.toml。还可以查看文档。
进入我的项目目录:cd myproject
使用Python 3.10创建一个新的虚拟环境:poetry env use python

    Creating virtualenv myproject-0Nxyu3rv-py3.8 in C:\Users\86131\AppData\Local\pypoetry\Cache\virtualenvsUsing virtualenv: C:\Users\86131\AppData\Local\pypoetry\Cache\virtualenvs\myproject-0Nxyu3rv-py3.8

激活虚拟环境:poetry shell
安装应用程序依赖项:poetry install
设置所需的环境变量:
your_datastore是你的主机上安装的数据库。如redis等。

export DATASTORE=<your_datastore>
export BEARER_TOKEN=<your_bearer_token>
export OPENAI_API_KEY=<your_openai_api_key>
<Add the environment variables for your chosen vector DB here>

本地运行API:poetry run start
访问API文档:http://0.0.0.0:8000/docs并测试API端点(确保添加您的承载令牌)。
有关设置、开发和部署ChatGPT检索插件的更多详细信息,请参阅完整开发部分。

扩展阅读

【尝鲜版】ChatGPT插件开发指南

TIPS1:bearer_token

Bearer认证的核心是Token,Bearer验证中的凭证称为BEARER_TOKEN,或者是access_token,它的颁发和验证完全由我们自己的应用程序来控制,而不依赖于系统和Web服务器,可以使用https://jwt.io/生成。
在这里插入图片描述

例子:

    HEADER:ALGORITHM & TOKEN TYPE ❗ 🔄{"alg": "HS256","typ": "JWT"}PAYLOAD:DATA ❗ 🔄{"sub": "1234567890","name": "John Doe","iat": 1516239022}VERIFY SIGNATURE ❗ 🔄HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),your-256-bit-secret) secret base64 encoded

生成的bearer_token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

http://chatgpt.dhexx.cn/article/kicfdyR6.shtml

相关文章

AIPRM for ChatGPT插件让ChatGPT如虎添翼

ChatGPT大热&#xff0c;家人们都申请到了账号&#xff0c;可是总是在一问一答的基础上来完成基本的应用&#xff0c;而不能很好的使用「咒语」&#xff08;Prompt&#xff09;&#xff0c;收获的答案不是通过很多次的反复问获取答案&#xff0c;就是获取的不是想要的答案。所以…

基于chatGPT插件开发

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是指通过计算机模拟人类智能的一种技术。AI技术的发展涉及到多个学科领域&#xff0c;包括计算机科学、数学、统计学、心理学、哲学等。目前AI技术最火爆的莫过于chatGPT4.0&#xff0c;它不但在智能方面…

【最新整理】一起看看86 个 ChatGPT 插件

今天我们来看看这86个插件都是做什么的&#xff1f; Shimmer&#xff1a;跟踪膳食并获得更健康生活方式的见解 World News&#xff1a;总结新闻头条 Bohita&#xff1a;用您能描述的任何图像制作服装 Portfolio Pilot&#xff1a;您的 AI 投资指南&#xff1a;投资组合评估…

一个插件,让你的 ChatGPT 不再报错!

最近几天&#xff0c;相信大家都发现了 ChatGPT 一个问题&#xff0c;就是官网报错越来越频繁了。 当你需用 ChatGPT 来处理一些比较琐碎的任务时&#xff0c;一旦你离开页面时间比较久&#xff0c;再度返回跟它进行对话&#xff0c;就会出现如下报错&#xff1a; 虽然这个报错…

ChatGPT所有插件详细教程

​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 官方插件 ​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 插件名称&#xff1a;KeyMate.AISearch 描述&#xff1a;使用自定义搜索引擎进行…

【ChatGPT案例】10大ChatGPT谷歌插件神器

ChatGPT相信大家都用过&#xff0c;但是如何高效使用&#xff0c;并真正挖掘出ChatGPT的强大能力呢&#xff1f;关键之处就在于Prompts&#xff01; 可是&#xff0c;编写prompts是一门熟能生巧的技术活&#xff0c;我们能不能一键拥有那些惊艳的prompts呢&#xff1f;答案就是…

【chatgpt插件-ChatGPT Sidebar】

ChatGPT Sidebar google chrome插件搜索

ChatGPT插件:让你的 ChatGPT 与众不同!

这个 Chrome 浏览器插件是作者觉得原本的 ChatGPT 界面不太丰富&#xff0c;然后想着自己写一个插件把它变得更加好看一点 &#x1f92a;&#xff0c;因此把这个插件取名为 ChatGPT-theme&#xff0c;目前插件已经发布了是 1.0.1 版本的&#xff0c;因为 1.0.0 作者测了一下有些…

如何使用ChatGPT自带插件

OpenAI的插件将ChatGPT连接到第三方应用程序。这些插件使ChatGPT能够与开发者定义的API进行交互&#xff0c;增强ChatGPT的能力&#xff0c;并使其能够执行广泛的操作。插件使ChatGPT能够做如下事情&#xff1a; 获取实时信息&#xff1b;例如&#xff0c;体育比分&#xff0c…

又有新动作 ChatGPT推出插件功能,并开源

北美时间3月23日&#xff0c;Open AI在官网宣布推出ChatGPT插件功能&#xff0c;同时开源知识库检索插件源代码&#xff01;&#xff08;插件申请地址&#xff1a;https://openai.com/waitlist/plugins&#xff09;欢迎使用体验【V起来助手】ChatGPT插件、AI单聊、AI作画等等&a…

4个最实用最强大ChatGPT插件

GPT的插件有很多&#xff0c;功能也很强大&#xff0c;这些插件是自定义模块&#xff0c;可以集成到为特定行业量身定制的 AI 聊天机器人中&#xff0c;包括电子商务、医疗保健、金融和教育。使用 ChatGPT 插件&#xff0c;您现在可以做的不仅仅是聊天。今天给大家分享4个经常使…

七款非常好用的 ChatGPT 开源插件

推荐7款很好用的 ChatGPT 开源插件 1. ChatGPT ProBot 这是一个基于chatGPT实现的Github机器人&#xff0c;可以让chatGPT帮你审核代码、重构代码&#xff0c;还可以在Github页面上和它进行聊天&#xff0c;咨询问题。 仓库地址: github.com/oceanlvr/Ch… 2.chatgpt-api 这…

chatGPT插件是什么,chatGPT插件作用介绍

简介 openAI团队已经在 ChatGPT 中实现了对插件的初步支持。插件是专门为以安全为核心原则的语言模型设计的工具&#xff0c;可帮助 ChatGPT 访问最新信息、运行计算或使用第三方服务。 目前体验与开发需要先加入等候名单。 官网介绍链接 https://openai.com/blog/chatgpt-plu…

chatgpt赋能python:Python写股票分析软件

Python写股票分析软件 Python作为一种高级编程语言&#xff0c;其简洁的语法及强大的数据处理和分析能力&#xff0c;广泛应用于数据科学、人工智能等领域。同时&#xff0c;在金融领域&#xff0c;Python也得到了广泛的应用&#xff0c;特别是在股票分析领域。 股票分析的重…

chatgpt赋能python:用Python编写股票交易策略

用Python编写股票交易策略 股票市场是一个追求高效和即时性的市场。对于投资者和操盘手来说&#xff0c;了解市场数据、理解市场动态并作出及时的响应是至关重要的。Python是一种功能强大且易于学习的编程语言&#xff0c;越来越多的投资者和操盘手正在使用Python来编写股票交…

SpringBoot3.0整合chatGPT

导读 导读 | 12月总体来说互联网的技术圈是非常热闹的&#xff0c;chatGPT爆火&#xff0c;SpringBoot3.0发布等重磅陆消息续进入大家的视线&#xff0c;而本文作者将以技术整合的角度&#xff0c;带大家把最火的两个技术整合在一起。读完本文&#xff0c;你将熟悉SpringBoot3…

【生活工作经验 十】ChatGPT模型对话初探

最近探索了下全球大火的ChatGPT&#xff0c;想对此做个初步了解 一篇博客 当今社会&#xff0c;自然语言处理技术得到了迅速的发展&#xff0c;人工智能技术也越来越受到关注。其中&#xff0c;基于深度学习的大型语言模型&#xff0c;如GPT&#xff08;Generative Pre-train…

【尝鲜版】ChatGPT插件开发指南

3月23日&#xff0c;OpenAI官方发布了一则公告&#xff0c;宣告ChatGPT已经支持了插件功能&#xff0c;现在处于内测阶段。插件的意义不仅仅在于功能的扩展&#xff0c;它直接让ChatGTP拥有了联网的能力&#xff01;简直是猛兽出笼、蛟龙出海&#xff0c;要让ChatGPT大杀特杀啊…

chatgpt赋能python:Python编写股票软件-从入门到实战

Python编写股票软件-从入门到实战 股票是金融市场中重要的交易品种&#xff0c;每个交易者都希望通过各种工具和分析方法更好地掌握股价动态、分析趋势并做出交易决策。Python作为一种强大的开发语言&#xff0c;具有简单易学、高效、稳定的特点&#xff0c;并且在数据分析和科…

ChatGPT为什么可以取代那么多职位?

最近的ChatGPT段子满天飞&#xff0c;以至于&#xff0c;不聊ChatGPT咱都不好意思在社交媒体上发言了。 这种力度的出圈&#xff0c;各种长期离线好友&#xff0c;甚至我妈都来问我&#xff0c;这是啥玩意啊&#xff1f; “十年老友&#xff0c;不请自来”&#xff1f;这架势&…