Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者:来自 Elastic Tomás Murúa

了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。

Elasticsearch 8.16 具有一项新功能,可让你将 PDF 文件直接上传到 Kibana 并使用 Playground 进行分析。在本文中,我们将了解如何通过上传 PDF 格式的简历然后使用 Playground 与其交互来使用此功能。

Playground 是一个托管在 Kibana 中的低代码平台,可让你创建 RAG 应用程序并与你的内容聊天。你可以在这篇文章中阅读有关它的更多信息,甚至可以使用此链接对其进行测试。

更多阅读 “在不到 5 分钟的时间内将威胁情报 PDF 添加为 AI 助手的自定义知识”。

使用 Playground 与你的 PDF 聊天

提示:你可以根据文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch” 及 “Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana” 在本地部署自己的 Elastic Stack。你需要针对 Kibana 进行如下的配置。你需要使用命令 bin/kibana-encryption-keys generate 来生成 keys,并把结果拷贝到 kibana.yml 里进行配置。
 

$ bin/kibana-encryption-keys generate
Kibana is currently running with legacy OpenSSL providers enabled! For details and instructions on how to disable see https://www.elastic.co/guide/en/kibana/8.17/production.html#openssl-legacy-provider
## Kibana Encryption Key Generation UtilityThe 'generate' command guides you through the process of setting encryption keys for:xpack.encryptedSavedObjects.encryptionKeyUsed to encrypt stored objects such as dashboards and visualizationshttps://www.elastic.co/guide/en/kibana/current/xpack-security-secure-saved-objects.html#xpack-security-secure-saved-objectsxpack.reporting.encryptionKeyUsed to encrypt saved reportshttps://www.elastic.co/guide/en/kibana/current/reporting-settings-kb.html#general-reporting-settingsxpack.security.encryptionKeyUsed to encrypt session informationhttps://www.elastic.co/guide/en/kibana/current/security-settings-kb.html#security-session-and-cookie-settingsAlready defined settings are ignored and can be regenerated using the --force flag.  Check the documentation links for instructions on how to rotate encryption keys.
Definitions should be set in the kibana.yml used configure Kibana.Settings:
xpack.encryptedSavedObjects.encryptionKey: 089ece1da90e06979df869aeea056c0d
xpack.reporting.encryptionKey: 33f894a54859d35e719c313f50092997
xpack.security.encryptionKey: c4442e114df718c8176eace3347dff0c

步骤

  1. 配置 Elasticsearch 推理服务端点
  2. 将 PDF 上传到 Kibana
  3. 与 Playground 中的数据交互

配置 Elasticsearch 推理服务端点

要运行语义搜索,我们必须首先配置一个推理端点(inference endpoint)。在此示例中,我们将使用 Elasticsearch 推理端点。此端点提供:

  • 重新排序
  • 稀疏嵌入
  • 文本嵌入

在此示例中,让我们选择稀疏嵌入(sparse embedding):

PUT _inference/sparse_embedding/my-elser-model
{"service": "elasticsearch","service_settings": {"adaptive_allocations": {"enabled": true,"min_number_of_allocations": 1,"max_number_of_allocations": 10},"num_threads": 1,"model_id": ".elser_model_2"}
}

配置完成后,通过检查 Kibana UI 中的 Search > Relevance > Inference Endpoint 来确认模型已正确加载到 Kibana 中。

你也可以进行手动加载。详细步骤请参阅文章 “Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR”。

将 PDF 上传至 Kibana

我们将上传初级开发人员的简历,以了解如何使用 Kibana 上传文件功能。

转到 Kibana UI 并按照以下步骤操作:

接下来,对于 Import Data,我们有两个选项:

Simple:这是默认选项,它允许我们快速将 PDF 上传到索引中,并自动使用索引信息创建数据视图。

Advanced:此选项允许我们自定义映射或添加摄取管道。在这些设置中,你可以:

  • 添加 semantic text 类型的字段。
  • 索引设置:如果你想要配置分片或分析器等内容。
  • 索引映射:如果你想要更改字段类型或定义数据的方式。
  • 摄取管道:如果你想在索引数据之前对其进行更改。

转到 “Advanced” 并选择 “Add additional field”:

选择字段 attachment.content;在 “copy to field” 中输入 “content”,并确保推理端点是 my-elser-model:

字段 copy_to 用于将内容从 attachment.content 复制到 (content) 的新 semantic_text 字段,该字段使用底层推理端点(本例中为 Elastic 的 ELSER)自动生成向量嵌入。这使语义和文本字段都可用,因此你可以运行全文、语义或混合搜索。

配置完所有内容后,单击 “Import”:

现在索引已经创建,我们可以使用 Playground 来探索它。

与 Playground 中的数据交互

连接到 Playground

配置索引并上传简历后,我们现在需要将索引连接到 Playground。单击 “Connect to an LLM” 并选择其中一个选项。

配置聊天机器人

配置完 Playground 并索引了 Alex Johnson 的简历后,我们就可以与数据进行交互了。使用语义搜索和 LLMs,我们可以使用自然语言提出问题并获得答案,即使文档中没有我们在查询中使用的关键字,如下例所示:

使用说明菜单,我们可以控制聊天机器人的行为并定义响应格式等功能。它还可以包含引用,以确保答案有充分依据。

如果我们转到 “Query” 选项卡,我们可以看到 Playground 生成的查询,并且我们添加了 text 和 semantic_text 字段,Playground 将自动生成混合查询以规范化不同类型的查询之间的分数。

Playground 不仅可以回答问题,还可以帮助我们了解 RAG 系统的内部组件,例如查询、检索阶段、上下文和提示说明。

试试看吧!

通过 Elasticsearch 8.16 更新,我们可以使用 Kibana UI 轻松上传 PDF/Word/Powerpoint 文件。它可以在简单模式下自动创建索引,你可以使用高级模式自定义索引并根据你的需求进行定制。

上传文件后,你可以访问 Playground 并快速轻松地与他们聊天,因为 Playground 将处理 LLM 交互并根据你要搜索的字段类型提供最佳查询。

想要获得 Elastic 认证?了解下一次 Elasticsearch 工程师培训的时间!

Elasticsearch 包含许多新功能,可帮助你为你的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在你的本地机器上试用 Elastic。

原文:Chatting with your PDFs using Playground - Elasticsearch Labs

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

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

相关文章

[免费]SpringBoot+Vue新能源汽车充电桩管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue新能源汽车充电桩管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue新能源汽车充电桩管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息化时代的到来&#xff0…

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二)

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

ffmpeg7.0 aac转pcm

#pragma once #define __STDC_CONSTANT_MACROS #define _CRT_SECURE_NO_WARNINGSextern "C" { #include "libavcodec/avcodec.h" }//缓冲区大小(缓存5帧数据) #define AUDIO_INBUF_SIZE 40960 /*name depthu8 8s16 …

【Uniapp-Vue3】pages.json页面路由globalStyle的属性

项目的全局配置在pages.json中。 一、导航栏设置 二、下拉刷新设置 下拉就可以看到设置的样式 三、上拉触底 这个页面中,向下滑动页面到底部就会输出“到底了” 现在将触底距离设置为500 走到半路就会输出“到底了”

openGauss 6.0 LTS 实现高可用性部署

openGauss 6.0 LTS是华为开发的企业级分布式数据库:高性能、高可用性、强扩展性,基于PostgreSQL,支持SQL和JSON数据类型,提供高并发、高吞吐量的处理能力,适合金融、电信、政府等行业使用,6.0版本主要增强了…

对比学习 (Contrastive Learning) 算法详解与PyTorch实现

对比学习 (Contrastive Learning) 算法详解与PyTorch实现 目录 对比学习 (Contrastive Learning) 算法详解与PyTorch实现1. 对比学习 (Contrastive Learning) 算法概述1.1 自监督学习1.2 对比学习的优势2. 对比学习的核心技术2.1 正样本对与负样本对2.2 对比损失函数2.3 数据增…

前端开发:Web前端和HTML

一、解释 1.Web前端开发? Web前端开发是指创建用户在浏览器中直接交互和体验的部分的过程。‌前端开发主要涉及HTML、CSS和JavaScript这三大核心技术。HTML用于构建网页内容的骨架,CSS用于设置和控制网页的外观和布局,而JavaScript则赋予网…

LeetCode 热题 100_腐烂的橘子(52_994_中等_C++)(图;广度优先遍历(队列))

LeetCode 热题 100_腐烂的橘子(52_994) 题目描述:输入输出样例:题解:解题思路:思路一(广度优先遍历(队列)): 代码实现代码实现(思路一…

C#,图论与图算法,输出无向图“欧拉路径”的弗勒里(Fleury Algorithm)算法和源程序

1 欧拉路径 欧拉路径是图中每一条边只访问一次的路径。欧拉回路是在同一顶点上开始和结束的欧拉路径。 这里展示一种输出欧拉路径或回路的算法。 以下是Fleury用于打印欧拉轨迹或循环的算法(源)。 1、确保图形有0个或2个奇数顶点。2、如果有0个奇数顶…

[文献精汇]使用 LSTM Networks 的均值回归交易策略

Backtrader 策略实例 [Backtrader]实例:均线策略[Backtrader] 实例:MACD策略[Backtrader] 实例:KDJ 策略[Backtrader] 实例:RSI 与 EMA 结合[Backtrader] 实例:SMA自定义数据源[Backtrader] 实例:海龟策略[Backtrader] 实例:网格交易[Backtrader] 实例: 配对交[Backtrader] 机…

用gpg和sha256验证ubuntu.iso

链接 https://ubuntu.com/tutorials/how-to-verify-ubuntuhttps://releases.ubuntu.com/jammy/ 本文是2的简明版 sha256sum介绍 sha256sum -c SHA256SUMS 2>&1这段脚本的作用是验证文件的 SHA-256 校验和。具体来说,命令的各个部分含义如下: …

使用VSCode搭建Ruby on Rails集成开发环境

目录 背景选择插件配置插件 背景 在windows平台下开发Ruby on Rails,之前使用的IDE是Rubymine,但是发现激活码失效了,于是怀着折腾的心思在VSCode上搭建一下Ruby on Rails集成开发环境,后来搭建好了之后,发现使用起来…

SpringData-Redis缓存之RedisTemplate

一、概述 大多数用户可能会使用RedisTemplate及其相应的包org.springframework.data.redis.core或其反应式变体ReactiveRedisTemplate。由于其丰富的功能集,该模板实际上是Redis模块的中心类。该模板为Redis交互提供了高级抽象。虽然[Reactive]RedisConnection提供…

WeakAuras NES Script(lua)

WeakAuras NES Script 修星脚本字符串 脚本1:NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…

【江协STM32】11-2/3 W25Q64简介、软件SPI读写W25Q64

1. W25Q64简介 W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景存储介质:Nor Flash(闪存)时钟频率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI)存储容…

沸点 | 聚焦嬴图Cloud V2.1:具备水平可扩展性+深度计算的云原生嬴图动力站!

近日,嬴图正式推出嬴图Cloud V2.1,此次发布专注于提供无与伦比的用户体验,包括具有水平可扩展性的嬴图Powerhouse的一键部署、具有灵活定制功能的管理控制台、VPC / 专用链接等,旨在满足用户不断变化需求的各项前沿功能&#xff0…

【IDEA版本升级JDK21报错方法引用无效 找不到符号】

java: 方法引用无效 找不到符号 符号: 方法 getFirst() 位置: 接口 java.util.List 升级JDK21版本遇到问题,报错找不到符号 但是点进去又能发现这个函数,证明能够找到这个方法,但是就是报错 java: 方法引用无效 找不到符号 符号: …

Elasticsearch入门学习

Elasticsearch是什么 Elasticsearch 是一个基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展的数据存储和矢量数据库。 它针对生产规模工作负载的速度和相关性进行了优化。 使用 Elasticsearch 近乎实时地搜索、索引、存储和分析各种形状和大小的数据。 特点 分布式&a…

重邮+数字信号处理实验六:用 MATLAB 设计 IIR 数字滤波器

一、实验目的 1、加深对 IIR 数字滤波器设计方法和设计步骤的理解; 2、掌握用模拟滤波器原型设计 IIR 数字滤波器的方法; 3、能编写 MATLAB 函数,掌握设计 IIR 数字滤波器的函数调用方法; 4、根据不同的应用场景&#xff0…

【JAVA 基础 第(18)课】HashSet 使用方法详解

HashSet:Set 接口的实现类,存放无序的,不可重复的元素 判断是否为重复的对象 比较hashCode()方法的返回值,如果不同,判定为不同的对象,如果相同,执行第二步判断equals()方法的返回值,如果为tr…