作者:来自 Elastic Jhon Guzmán

了解如何将 Vertex AI 与 Elasticsearch 集成来创建 RAG 应用。按照本教程配置一个 Gemini 模型并在 Kibana 的 Playground 中使用它。

更多阅读:

  • Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用
  • 在本地电脑中部署阿里 Qwen3 大模型及连接到 Elasticsearch

想要获得 Elastic 认证吗?看看下一期 Elasticsearch Engineer 培训什么时候开始!

Elasticsearch 拥有大量新功能,可以帮助你为你的用例构建最佳搜索解决方案。深入学习我们的示例 notebooks 以了解更多,开始免费的 cloud 试用,或者现在就在本地机器上尝试 Elastic。


从 Elasticsearch 版本 9.1.0 开始,你可以集成 Vertex AI 模型(包括 Gemini),并在 Elasticsearch 中使用它们。这个最新版本在现有的 embedding 和 reranking 功能上新增了 completion 和 chat_completion 能力,因此你可以通过 AI connector 在模型中配置它们。

Vertex AI 允许你使用像 Gemini 2.5 Pro 和 Flash 这样的模型,这些模型对 RAG 的推理和文本流很有用。此外,使用 Vertex AI 你还可以部署模型以进行更多自定义和微调。

我们选择 gemini-2.5-flash-lite,因为它在价格和性能之间有最佳平衡,同时在推理基准中得分很高。它被评为最快和最便宜的模型之一,是一个很好的入门选择。如果我们需要更强大性能,可以切换到 gemini-2.5-pro。Gemini 2.5-mini 非常适合低延迟、大数据量处理,比如我们要创建的这种 RAG 应用。

在这篇文章中,你将学习如何在 Elasticsearch 中配置一个基础的 Vertex AI 模型,以便在 Kibana 的 Playground 中使用它。我们将设置 GCP Service Account,并配置 gemini-2.5-flash-lite 来用 Playground 创建一个 RAG 应用。

下面是我们基础配置的示意图:

设置 AI Vertex Connector

第一步是在 GCP 中创建一个服务账号以使用 Vertex AI 平台。如果你已经有了,就跳过这一步,但要确保手头有认证用的 JSON 文件,并且该账号已分配 Vertex AI User 和 Service Account Token Creator 角色。

创建 GCP 服务账号

要创建 GCP 服务账号,你需要进入这个链接,选择将要创建账号的项目,然后点击 “+ Create service account”。

为服务账号选择一个名称并点击 “Create and continue”。在下一个菜单中,为其添加以下两个角色的权限:

  • Vertex AI User

  • Service Account Token Creator:该角色允许账号生成必要的访问令牌。

点击 “Done”。

创建服务账号后,你必须下载 JSON 访问密钥。在下一个链接中,选择你刚创建的账号。进入“Keys”,然后点击 “Add key”,再点击 “Create new key”。

在弹出窗口中,确保将 JSON 标记为密钥类型,然后点击 “Create”。

这会下载一个 JSON 密钥,你将在接下来的步骤中用到它。

创建 Elasticsearch 集群

为了使用 Vertex 模型,我们将在这里注册并创建一个 Elastic Cloud Serverless 集群,但你可以选择适合你需求的部署类型。对于本教程,我们将选择 search 用例。

然后,表单会要求你选择一个 cloud provider 和区域。接着,你需要选择一个 “optimized for vectors” 的项目。这一步仅在 Serverless 部署中需要。

集群部署完成后,进入 Kibana 进行下一步操作。

创建 AI Connector

现在你的集群已经准备好,并且可以访问 Vertex AI,你就可以创建 connector 了。在 Kibana 中,进入 Connectors 菜单(Management > Stack Management > Alerts and Insights > Connectors)。然后,创建一个 connector 并选择 AI Connector。

使用以下参数配置 connector:

  • Connector name:Vertex AI

  • Service:Google Vertex AI

  • JSON Credentials:在这里,你需要复制/粘贴前面步骤中创建的访问密钥的完整内容

  • GCP Project:服务账号和 Vertex AI 模型所在的项目 ID

  • GCP Region:模型所在的区域(us-central1 可访问大多数 Gemini 模型)

  • Model ID:gemini-2.5-flash-lite

  • Task Type:chat_completion

你的 connector 应该看起来像这样:

除了这个配置,你还有 “additional options”,可以定义模型和通过 connector 可用的推断端点的关键属性。

Rate limit:可选地定义每分钟发送请求的最大数量。
Task type:使用模型执行的任务。这个新版本增加了 completion 和 chat_completion:

  • Completion:模型接收一个 prompt 并生成最可能的延续。没有对话轮次、角色或任何对话结构。适用于简单任务,如补全代码、生成连续文本,或在没有上下文的情况下回答直接问题。

  • Chat Completion:此模式以基于角色的结构(system、user、assistant)训练模型,允许处理多轮交互。在内部,模型不仅预测下一个 token,还会基于对话意图进行预测。

  • Inference Endpoint:创建 connector 时,会生成一个推断端点以识别配置任务的模型。我们可以定义一个 ID 并在推断 API 和 Kibana 中使用它。

在 Kibana 的 Playground 中使用模型

上传数据

要测试模型,我们需要一些数据,并确认 _inference API 可用。从 8.17 版本开始,机器学习功能是动态的,这意味着要下载并使用 E5 dense multilingual vector,只需使用该模型即可。

# find e5 model id
GET /_inference# trigger the download by using it
POST /_inference/text_embedding/.multilingual-e5-small-elasticsearch
{"input": "Warming up ML nodes!"
}

当你生成 embeddings 时,模型会被下载,推断端点会自动运行。

现在,让我们上传下面的文本作为 RAG 上下文:

Casa Tinta Bistro is a small, family-run restaurant located in the Chapinero neighborhood of Bogotá, Colombia. It was founded in 2019 by siblings Mariana and Lucas Herrera, who combined their love for traditional Colombian flavors with a modern twist. The bistro is best known for its creamy coconut ajiaco, mango-infused arepas, and handcrafted guava lemonade.The restaurant operates Tuesday through Sunday, from 12:00 PM to 9:30 PM, and closes on Mondays. They offer vegetarian and vegan options, and their menu changes slightly every season to incorporate fresh local ingredients. Casa Tinta also hosts monthly poetry nights, where local writers perform their work in front of a small crowd of regulars and newcomers alike.Although it remains a hidden gem for most tourists, Casa Tinta has a loyal base of local customers and consistently ranks high on community food blogs and private reviews.

将文本保存为 .txt 文件,然后进入 Elasticsearch > Home > Upload a file

点击按钮或将文件拖放到 “Upload data” 框中。然后,点击 Import

然后,选择 “Advanced” 标签,并将索引命名为 “bistro_restaurant1”。

接着,点击 “Add additional field”,选择 “Add semantic text field”。将推断端点改为 “.multilingual-e5-small-elasticsearch”。配置应如下所示:

最后,点击 “Add”,然后点击 “Import”。

上传完成后,我们可以在 Playground 中使用这些数据。

在 Playground 中测试 RAG

进入 Kibana 的 Elasticsearch > Playground

在 Playground 页面,你应该看到一个绿色对勾和消息 “LLM Connected”,表示我们刚创建的 Vertex connector 已存在。你可以查看这个链接获取更深入的 Playground 指南。

点击蓝色按钮 “Add data sources”,选择我们刚创建的 bistro_restaurant 索引。

在 Playground 中,我们将模型的 prompt 定义为 “You are an assistant for question-answering tasks about the Casa Tinta Bistro restaurant。” 其余配置保持默认。

现在,我们可以向模型提出关于该餐厅的任何问题,它会查询索引以提供合适的答案。

例如,我们可以询问营业时间,模型会给出答案的 “sources”,这些指的是信息所在文档的 ID。

当你提出与 RAG 上下文无关的问题时,模型会回复 “The provided context does not contain this information”,因为答案是基于数据的。

结论

通过新的 Vertex AI 集成,你可以轻松使用像 Gemini 这样的模型,在 Playground 中创建基于索引数据提供答案的 RAG 应用。现在,迈出下一步,决定要索引哪些其他来源,选择另一个 Vertex AI 模型,或者部署你自己的模型,让 RAG 为你的特定用例工作。

原文:Exploring Vertex AI with Elasticsearch - Elasticsearch Labs

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

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

相关文章

[新启航]白光干涉仪在微透镜阵列微观 3D 轮廓测量中的应用解析

引言微透镜阵列作为由数百至数千个微米级透镜单元组成的光学元件,在成像系统、光通信、传感器等领域应用广泛,其表面微观 3D 轮廓参数(如曲率半径、面型误差、中心厚度等)直接影响光学性能。白光干涉仪凭借非接触、高精度、三维成…

MTK Linux DRM分析(十四)- Mediatek KMS实现mtk_drm_drv.c(Part.2)

一、MTK KMS分析 mtk_drm_kms_init 函数分析 mtk_drm_kms_init 是 MediaTek DRM 驱动程序中的一个静态函数(static int mtk_drm_kms_init(struct drm_device *drm)),位于 mtk_drm_drv.c 文件中。该函数的主要作用是初始化 DRM 设备的 Kernel Mode Setting (KMS) 子系统,包…

大模型RAG(Retrieval-Augmented Generation)

RAG检索增强生成 一种结合了检索与生成能力的人工智能技术,主要用于增强大型语言模型在特定任务中的表现。 含义 RAG 将检索系统与生成模型相结合,当接收到一个查询或问题时,模型首先通过检索模块从大规模知识库中寻找与查询相关的信息片段&a…

企业版Idea 无快捷键的启动方式

在没有快捷键的情况下启动 IntelliJ IDEA 企业版,可以通过以下几种方式进行操作: 1. 通过应用程序菜单启动(适用于 macOS) 在 macOS 系统中,可以打开 Launchpad,在应用程序列表中找到 IntelliJ IDEA&#x…

智慧清洁革命:有鹿机器人如何重塑三大行业未来

作为有鹿智能巡扫机器人,每天清晨当城市还未苏醒,我已悄然完成数万平方米的清洁工作。搭载254TOPS算力的具身智能大脑,我正重新定义保洁、环卫和物业行业的清洁标准。技术赋能:智慧清洁的全面突破我搭载的Master2000通用具身大脑和…

安宝特方案丨AR异地专家远程支持平台,适合:机电运维、应急处置、监造验收

随着车间设备智能化程度的不断提高,其复杂性越来越高,故障维修难度越来越大,严重依赖设备原厂的技术支持和上门服务。但设备厂家受制于地理远近和专业人才数量的限制,服务的及时性和服务质量均很难保证。鉴于市场现有的通信聊天软…

QT应用层项目20250822

01.服务器端代码1.dbhelper.cpp#include "dbhelper.h" #include <iostream> #include <cstring>using std::string; using std::cerr; using std::cout; using std::endl;template <typename T> std::vector<T>& operator<<(std::…

【Linux】Linux基础开发工具从入门到实践

前言&#xff1a;学了Linux的指令&#xff0c;再就是Linux基础开发工具&#xff0c;熟练掌握基础开发工具是提升效率的关键。本文学习Linux的基础开发工具&#xff0c;无论是软件安装、代码编辑&#xff0c;还是编译调试、版本控制&#xff0c;一套顺手的工具链能让你在开发路上…

黑马点评|项目日记(day02)

目录 一. 全局id生成器 1.为什么需要全局id生成器 2.传统方式的缺陷: 3.典型全局 ID 生成方案的设计思路 二.优惠券秒杀-Redis实现全局唯一id 三.优惠券秒杀-添加优惠券 四.优惠券秒杀-实现秒杀下单 五. 一人一单问题 1.单体项目下 1,超卖问题思路分析 2.乐观锁解决问…

shell脚本编程规范与变量

文章目录Shell编程文档整理一、Shell介绍1.1 简介1.2 Shell解释器二、快速入门2.1 编写Shell脚本2.1.1 创建脚本示例2.1.2 赋予执行权限2.2 执行Shell脚本三、Shell程序&#xff1a;变量3.1 语法格式3.2 变量使用3.3 变量类型四、字符串4.1 单引号4.2 双引号4.3 获取字符串长度…

【AGI使用教程】Coze 搭建智能体(1)

欢迎关注【AGI使用教程】 专栏 【AGI使用教程】GPT-OSS 本地部署&#xff08;1&#xff09; 【AGI使用教程】GPT-OSS 本地部署&#xff08;2&#xff09; 【AGI使用教程】Coze 搭建智能体&#xff08;1&#xff09; 【AGI使用教程】Coze 搭建智能体&#xff08;2&#xff09; 【…

(二分查找)Leetcode34. 在排序数组中查找元素的第一个和最后一个位置+74. 搜索二维矩阵

首先要明确二分查找算法如何实现&#xff0c;是采用左闭右闭还是左闭右开 左闭右闭 第⼀种写法&#xff0c;我们定义 target 是在⼀个在左闭右闭的区间⾥&#xff0c;也就是[left, right] &#xff08;这个很重要⾮常重要&#xff09;。 区间的定义这就决定了⼆分法的代码应…

损失函数,及其优化方法

什么是损失函数&#xff1f;损失函数&#xff0c;也称为代价函数&#xff0c;是一个用来​​衡量机器学习模型预测结果与真实值之间差距​​的函数。损失函数的优化方法有哪些&#xff0c;各自优缺点是什么&#xff0c;他们的应用范围是什么&#xff1f;方法类别代表算法核心思…

pyqt+Python证件号智能校验工具

目录 一、引言 二、GUI界面设计 1.相关提示 2.效果演示 3.界面设计.py 三、主要程序详解 1.导入相关模块 2.初始化设置 3.校验过程 四、总程序代码 一、引言 在数字化转型加速的背景下&#xff0c;证件信息核验已成为金融、政务、安防等领域的刚需。传统人工校验存在…

主流技术栈 NestJS、TypeScript、Node.js版本使用统计

&#x1f4ca; 2024年主流技术栈版本使用统计&#x1f527; TypeScript 采用情况全球采用率: 38.5% 的开发者使用 TypeScript&#xff08;Stack Overflow 2024&#xff09;增长趋势: 从 2017年的 12% 增长到 2024年的 35%&#xff08;JetBrains 调研&#xff09;TypeScript vs …

Techub News 与 TOKENPOST 达成战略合作以推动中韩 Web3 资讯互通

Techub News 消息&#xff0c;香港 Web3 媒体 Techub News 与韩国区块链媒体 TOKENPOST 达成战略合作。TOKENPOST 将开设香港内容板块&#xff0c;由 Techub News 提供本地化行业资讯&#xff1b;同时 Techub News 将推出韩国内容专栏&#xff0c;内容源由 TOKENPOST 支持。这一…

Java面试实战系列【JVM篇】- JVM内存结构与运行时数据区详解(私有区域)

文章目录一、前言1.1 什么是JVM内存结构1.2 JVM内存结构与Java内存模型的区别1.3 为什么面试官爱问JVM内存结构二、JVM运行时数据区总览2.1 运行时数据区域划分2.2 线程私有区域 vs 线程共享区域三、线程私有区域详解3.1 程序计数器&#xff08;PC Register&#xff09;3.1.1 定…

鸿蒙中使用极光推送

官方给出的步骤是对的&#xff0c;就是一时不知道从何下手&#xff0c;自己整了下&#xff0c;按照这个来就行 1.步骤 打开 APP 通知功能 1.先按照这个页面进行配置SDK 集成指南 - 极光文档&#xff0c;主要就是下载极光sdk&#xff0c;然后在AGC里开通推送服务&#xff0c;配…

ruoyi_wvp流媒体[海康 大华 GB1812 onvif rtsp]

ZLMediaKitxiaz: https://download.csdn.net/download/jinhuding/91775096 webrtc: https://download.csdn.net/download/jinhuding/91764243 yoloonnx(v3,v7,v8s,v9c)&#xff1a;https://download.csdn.net/download/jinhuding/91775170 项目部署步骤 1.后端目录结构 2.前端…

强化学习笔记(二):有限马尔可夫决策过程(一)

有限马尔可夫决策过程 基本概念 多臂老虎机仅涉及评价性反馈&#xff0c;即动作的即时奖励&#xff0c;估计每个动作 aaa 的价值 q∗(a)q_*(a)q∗​(a)。 有限马尔可夫决策过程&#xff08;Finite MDP&#xff09;引入了关联性因素&#xff0c;即在不同状态&#xff08;情境&am…