探索 Vertex AI 與 Elasticsearch

作者:來自 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…