ChatGPT 和 Elasticsearch:使用 ChatGPT 处理 Elastic 数据的插件

作者:Baha Azarmi

你可能已经阅读过这篇关于我们将 Elasticsearch 的相关性功能与 OpenAI 问答功能相结合的博文。 该帖子的主要思想是说明如何将 Elastic 与 OpenAI 的 GPT 模型结合使用来构建响应并向用户返回上下文相关的内容。

我们构建的应用程序可以公开一个搜索端点并被任何前端服务调用。 好消息是,现在 OpenAI 已经发布了未来 ChatGPT 插件框架的私有 alpha 版。

在此博客中,你将学习如何使用 Elastic 文档实施插件并将 ChatGPT 的使用扩展到在 Elasticsearch 中索引的任何内容。

 

什么是 ChatGPT 插件?

ChatGPT 插件是为帮助模型完成其知识或执行操作而开发的扩展。

例如,我们知道 ChatGPT 从知识角度的割接时间是 2021 年 9 月,所以任何关于近期数据的问题都不会回答。 此外,任何与超出模型训练范围的过于具体的问题相关的问题都不会得到回答。

插件可以扩大可能的应用范围并增强模型的功能,但相应地,插件的输出会被模型本身增强。

ChatGPT 目前支持的官方插件列表如下。 随着越来越多的组织尝试使用 ChatGPT,你可以预期此列表会迅速扩展:

当你浏览列表时,你会注意到用例在这里慢慢显现出来。 以 Expedia 为例,其插件正在扩展 ChatGPT 以协助规划旅行,使 ChatGPT 成为旅行规划助手。

此博客旨在为 Elastic 实现类似的目标 — 允许 ChatGPT 访问 Elastic 的当前知识库并协助你完成 Elastic 项目。

 

架构

我们将对我的同事 Jeff Vestal 在第 1 部分中提供的示例代码进行轻微修改,这会对成本产生积极影响。

我们将删除对 OpenAI API 的调用,因为现在 ChatGPT 将履行从 Elasticsearch 获取内容并将其消化回用户的角色:

 

1)ChatGPT 调用插件的 “/search” 端点。

        这个决定是基于插件 “rules”`description_for_human`(见下面的插件清单)。

2)插件代码创建一个发送到 Elasticsearch 的搜索请求。

3)文档正文和原始 url 返回给 Python。

4)插件将文档正文和 url 以文本形式返回给 ChatGPT。

5)ChatGPT 使用来自插件的信息来制作其响应

同样,这篇博文假设你已经设置了你的 Elastic Cloud 帐户,对你的内容进行了矢量化处理,并拥有一个充满数据的 Elasticsearch 集群以供使用。 如果你还没有设置所有这些,请参阅我们之前的帖子以了解要遵循的详细步骤。

插件代码

OpenAI 为 ChatGPT 构建了一个相当易于处理的插件框架。 它部署了一个公开的服务:

  • 插件 manifest,解释插件向用户和 ChatGPT 提供的内容
  • 插件 openAPI 定义,这是使 ChatGPT 能够理解可用 API 的功能描述

插件代码可以在这里找到。

插件文件结构

下面的屏幕截图显示了结构的样子:

  • 根据 OpenAI 最佳实践,插件清单存储在 .well-known 目录下的 ai-plugin.json 文件中。
  • 主要服务代码在 app.py 中。
  • Dockerfile 稍后将用于将插件部署到 Google Cloud Compute。
  • ChatGPT 插件商店中显示的插件徽标 (logo.ong),此处为 Elastic 徽标。
  • 插件的 OpenAI 描述。

Python代码

有关完整代码,请参阅 GitHub 存储库。 我们将只看这段代码的主要部分:

…
@app.get("/search")
…
@app.get("/logo.png")
…
@app.get("/.well-known/ai-plugin.json")
…
@app.get("/openapi.yaml")
…

我们去掉了所有细节,将主要部分保留在这里。 这里有两类 API:

1)OpenAI构建插件所需的:

  • /logo.png:获取插件标志
  • /.well-known/ai-plugin.json:获取插件清单
  • /openapi.yaml:获取插件 OpenAPI 描述

2.插件 API:

/search 是这里唯一暴露给 ChatGPT 并在 Elasticsearch 中运行搜索的

插件清单

ChatGPT 将使用插件清单来验证插件的存在(可访问)。 定义如下:

{"schema_version": "v1","name_for_human": "ElasticGPTDoc_Plugin","name_for_model": "ElasticGPTDoc_Plugin","description_for_human": "Elastic Assistant, you know, for knowledge","description_for_model": "Get most recent elasticsearch docs post 2021 release, anything after release 7.15","auth": {"type": "none"},"api": {"type": "openapi","url": "PLUGIN_HOSTNAME/openapi.yaml","is_user_authenticated": false},"logo_url": "PLUGIN_HOSTNAME/logo.png","contact_email": "info@elastic.co","legal_info_url": "http://www.example.com/legal"}

这里有两点需要指出:

1)有两种说明:

  • description_for_human - 这是人们在 ChatGPT 网络用户界面中安装插件时看到的内容。
  • description_for_model - 模型了解何时使用插件的说明。

2)Python 代码中有 PLUGIN_HOSTNAME 等占位符被替换。

OpenAPI 定义

我们的代码将只向 ChatGPT 公开一个 API 端点,允许它搜索 Elastic 文档。 这是描述:

openapi: 3.0.1
info:title: ElasticDocGPTdescription: Retrieve information front the most recent Elastic documentationversion: 'v1'
servers:- url: PLUGIN_HOSTNAME
paths:/search:get:operationId: searchsummary: retrieves the document matching the queryparameters:- in: queryname: queryschema:type: stringdescription: use to filter relevant part of the elasticsearch documentationsresponses:"200":description: OK

对于定义文件,关键点是:

  • 我们获取 ChatGPT 提示内容并将其作为查询传递给我们的 Elasticsearch 集群。
  • Python 代码中替换了一些占位符,例如 PLUGIN_HOSTNAME。

在 Google Cloud Platform (GCP) 中部署 Elastic 插件

你可以选择一种部署方法来公开你的插件,也可以选择使用不同的云提供商。 我们在这篇博文中使用了 GCP——更具体地说是 Google Cloud Run 和 Google Cloud Build。 一是暴露和运行服务,二是持续集成。

设置

此设置假定你的 GCP 用户具有以下权限:

  • 在 Google Container Registry 中使用 Google Cloud Build 构建容器镜像
  • 在 Google Cloud Run 中部署容器

如果没有,你将需要更新 GCP IAM 页面上的权限。

我们将使用 gcloud CLI 来设置我们的环境。 你可以在此处找到安装说明。

安装后,运行以下命令进行身份验证:

gcloud auth

然后将项目标识符设置为你的 GCP 项目:

 gcloud config set project PROJECT_ID

你现在已准备好构建和部署。

构建和部署

第一步是使用 Cloud Build 构建容器镜像并将其推送到 Google Container Registry:

  gcloud builds submit --tag gcr.io/PROJECT_ID/my-python-app

将 PROJECT_ID 替换为你的 GCP 项目 ID,将 my-python-app 替换为你要为容器映像指定的名称。

导出 Python 代码创建 Elasticsearch 客户端所需的环境:

  export YOUR_CLOUD_ID=VALUE export YOUR_CLOUD_PASS=VALUE export YOUR_CLOUD_USER=VALUE

最后,将容器镜像部署到 Cloud Run:

  gcloud run deploy my-python-app \--image gcr.io/PROJECT_ID/my-python-app \--platform managed \--region us-central1 \--allow-unauthenticated \--set-env-vars  cloud_id=YOUR_CLOUD_ID,cloud_pass=YOUR_CLOUD_PASS,cloud_user=YOUR_CLOUD_USER

你应该会看到你的服务在 Cloud Run 中运行:

请注意,你还可以激活持续集成,以便 GitHub 存储库中的任何提交都将触发重新部署。 在服务详细信息页面上,单击设置持续部署。

 

在 ChatGPT 中安装插件

部署插件并具有可公开访问的端点后,即可将其安装在 ChatGPT 中。 在我们的例子中,由于它部署在 Google Cloud Run 中,你可以在此处获取 URL:

然后在 ChatGPT 中,进入插件商店:

 

选择做 “Develop your own plugin”:

粘贴你从 Google Cloud Run 页面复制的 URL:

确保插件已找到且有效:

按照安装说明进行操作,直到你在列表中看到你的插件可用:

让我们测试一下我们的插件!

好的,现在是最好的部分! 请记住,当你的提示超出其知识范围时,ChatGPT 会决定委托。 为确保发生这种情况,只需提出类似于此示例的问题:

通过本博客中提供的步骤,你可以创建自己的插件并将其部署在云提供商或你自己的主机上。 这使你可以开始探索增强 ChatGPT 的知识和功能,用专业和专有知识增强本已令人惊叹的工具。

你今天可以尝试本博客中讨论的所有功能! 通过注册免费的 Elastic Cloud 试用版开始。

以下是你可能会感兴趣的其他一些博客:

  • ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据
  • 使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型
  • 使用 ChatGPT 探索安全的未来

在这篇博文中,我们可能使用了由其各自所有者拥有和运营的第三方生成人工智能工具。 Elastic 对第三方工具没有任何控制权,我们对其内容、操作或使用不承担任何责任,也不对你使用此类工具可能造成的任何损失或损害承担任何责任。 使用带有个人、敏感或机密信息的 AI 工具时请谨慎行事。 你提交的任何数据都可能用于人工智能训练或其他目的。 无法保证你提供的信息将得到安全保护或保密。 在使用之前,你应该熟悉任何生成人工智能工具的隐私惯例和使用条款。

Elastic、Elasticsearch 和相关标记是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

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

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

相关文章

预测“叫停GPT-4后续AI大模型”后续:这是一个囚徒困境

文章目录 前言一、公开信内容二、公开信核心观点和诉求三、个人思考AI安全和伦理囚徒困境 总结 前言 生命未来研究所 (Future of Life Institute) 发表了一封公开信,信件:https://futureoflife.org/open-letter/pause-giant-ai-experiments/&#xff0c…

用python需要什么配置电脑,python需要的电脑配置

学习python编程需要什么配置的电脑 简单的来讲,Python的话普通电脑就可以,机器学习几大基础算法都可以,如果学习深度学习的话,选择一个配置高的台式电脑即可,其他配置留下升级空间;如果选择笔记本的话可以要强劲点的&…

Git - 如何将git修改的文件导出和导入

1.应用场景 主要用于将git修改的文件导出和导入, 帮助提高工作效率。 2.学习/操作 1.文档阅读 来自chatGPT的对话 2.整理输出 2.1 如何将git修改的文件导出来 如果您只是想将 Git 仓库中的文件导出到本地磁盘中,而不需要保留 Git 的历史记录和元数据…

chatgpt赋能python:Python如何导入数据?完整指南

Python如何导入数据?完整指南 在Python编程中,经常需要导入外部数据,而导入数据的过程并不总是简单明了的。本篇文章将会详细介绍如何使用Python导入各种数据类型,例如CSV、Excel、JSON、SQL和HTML等格式的数据。 导入CSV数据 …

chatgpt赋能python:Python文件导入:学习如何在Python中正确导入文件

Python文件导入:学习如何在Python中正确导入文件 如果你想在Python中编写实用的应用程序,你需要学会如何正确导入文件。这是Python编程的非常基础的一步,但它可以使你的编程经验变得更加流畅和高效。在本文中,我们将介绍如何在Py…

如何一步一步构建网站ChatGPT插件

在本文中,我们将一步一步地探索并构建一个名为"AI Prompt Testing"的项目。该项目是一个网站插件,旨在帮助网站生成一个ChatGPT提示测试题,以巩固当前网页的内容。 1、抽象提取 这个网站ChatGPT插件大概的效果,类比的…

ChatGPT 是什么?怎么用?如何提效?怎么赚钱变现?

我花了几天时间系统的研究了 ChatGPT 的原理、应用、实践、以及我交流群里大家的反馈。 总结一句话:要么拥抱 ChatGPT,要么被 ChatGPT 干掉,就这么简单。 ChatGpt 是什么? ChatGPT 是由 OpenAI 开发的,目前可以免费注…

科创板首批9家企业及其招股说明书下载链接

今天(2019-3-22),科创板首批9家企业名单公布,分别为晶晨半导体、睿创微纳、天奈科技、江苏北人、利元亨、宁波容百、和舰芯片、安瀚科技、武汉科前生物。 9份招股书下载链接(仅2019-3-29之前有效) 链接: ht…

2021年科创板股权激励研究报告发布

编者按:科创板于2019年正式开板,开启A股市场注册制,允许同股不同权的公司和未盈利的公司上市,A股迅速扩容。截至2021年6月21日,共有接近300家公司在科创板注册上市。科创板众多上市公司实施股权激励计划,对…

天岳先进登陆科创板:上市首日一度破发,预计全年扣非后利润下滑

1月12日,山东天岳先进科技股份有限公司(下称“天岳先进”,SH:688234)在上交所科创板上市。据了解,天岳先进的发行价为82.79元/股,发行股份数量为约4297.11万股,募资金额为35.58亿元。 按发行价计…

这些科创板的上市公司,你们都了解吗?

之前,科创板的出台,引发了行业激烈反响。随着科创板走入正轨,就在2019年7、8、9三个月内,就有不同类型的科技公司上市在了科创板。 那么,这些科创板的上市公司,你们都了解吗? 点击添加图片描述…

旷视科技在科创板上市发行注册进程恢复,三年研发投入超过26亿元

2022年5月16日,上交所科创板披露的信息显示,根据《科创板首次公开发行股票注册管理办法(试行)》第三十条的相关规定,恢复旷视科技有限公司(下称“旷视科技”)发行注册程序。 这意味着&#xff…

科创板IPO上市条件

科创板IPO上市条件 1、符合中国证监会规定的发行条件; 2、发行后股本总额不低于人民币3千万元; 3、首次公开发行的股份达到公司股份总数的25%以上,公司股本总额超过人民币4亿元的,首次公开发行股份的比例为10%以上;…

科创板将迎做市商机制,做市商到底是什么?

监会近日发布《证券公司科创板股票做市交易业务试点规定(征求意见稿)》,简称《做市规定》,向社会公开征求意见。《做市规定》共十七条,主要包括做市商准入条件、准入程序、做市券源安排、内部管控、风险监测监控、监管…

新点软件登陆科创板:上市首日破发,腾讯、建发股份参与认购

11月17日,国泰新点软件股份有限公司(下称“新点软件”,SH:688232)在上交所科创板上市。上市首日,新点软件便跌破发行价,盘中最低价一度跌至41.02元/股。 与之对的是,新点软件的发行价为48.49元…

康鹏科技将于12月16日上会:曾在纽交所上市,由杨建华家族控股

近日,上海康鹏科技股份有限公司(下称“康鹏科技”)在上海证券交易所递交招股书(上会稿),准备在科创板上市。据贝多财经了解,康鹏科技将于2022年12月16日接受科创板上市委的现场审议。 根据公开信…

赛卓电子冲刺科创板上市:计划募资11亿元,股东包括尚颀资本等

12月28日,赛卓电子科技(上海)股份有限公司(下称“赛卓电子”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺上市,赛卓电子计划募资11亿元,将用于车规级芯片研发及产业化项…

[创业之路-68]:科创板上市公司符合哪些条件

上交所发布《关于在上交所设立科创板并试点注册制相关情况答记者问》。上交所将认真落实习指示,在证监会的指导下,积极研究制订科创板和注册制试点方案,向市场征求意见并履行报批程序后实施。科创板是独立于现有主板市场的新设板块&#xff0…

国家高新技术企业,科创板上市会更容易吗?

企业在申请了国家高新技术认定通过之后,如果还想再去申请科创板上市,那么如有国家高新技术的话,就一定可以去申请科创板上市吗? 有国家高新技术资格上科创板会不会更容易?!其实国家高新技术认定的企业&…

纵目科技冲刺科创板上市:拟募资20亿元,股东阵容强大

11月23日,纵目科技(上海)股份有限公司(下称“纵目科技”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺上市,纵目科技计划募资20亿元,拟用于上海研发中心建设项目、东阳智…