搜尋
首頁科技週邊人工智慧使用llamaindex在抹布中的記憶和混合搜索

介紹

檢索增強生成(RAG)管道正在改善AI系統與自定義數據的交互方式,但是我們將重點關注的兩個關鍵組件:內存和混合搜索。在本文中,我們將探討如何整合這些強大的功能可以將您的抹布系統從簡單的提問工具轉換為上下文感知的,智能的對話代理。

RAG中的內存使您的系統可以維護和利用對話歷史記錄,創建更連貫和上下文相關的交互。同時,混合搜索將對矢量搜索的語義理解與基於關鍵字的方法的精確度相結合,從而大大提高了抹布管道的檢索準確性。

在本文中,我們將使用LlamainDex使用QDRANT作為矢量商店和Google的Gemini作為我們的大語言模型來實施內存和混合搜索。

學習目標

  • 對內存在抹布系統中的作用及其對生成上下文準確響應的影響獲得實施理解。
  • 學習將Google的Google的Gemini LLM和QDrant快速嵌入在LlamainDex框架中,這很有用,因為OpenAI是LlamainDex中使用的默認LLM和嵌入模型。
  • 使用Qdrant矢量存儲來開發混合搜索技術的實現,結合向量和關鍵字搜索以增強抹布應用程序中的檢索精度。
  • 探索Qdrant作為矢量商店的功能,重點關注其內置的混合搜索功能和快速嵌入功能。

本文作為數據科學博客馬拉鬆的一部分發表

目錄

  • QDRANT中的混合搜索
  • 使用LlamainDex的記憶和混合搜索
    • 步驟1:安裝要求
    • 步驟2:定義LLM和嵌入模型
    • 步驟3:加載數據
    • 步驟4:通過混合搜索設置QDRANT
    • 步驟5:索引您的文檔
    • 步驟6:查詢索引查詢引擎
    • 步驟7:定義內存
    • 步驟8:創建帶有內存的聊天引擎
    • 步驟9:測試內存
  • 常見問題

QDRANT中的混合搜索

想像一下,您正在為大型電子商務網站構建聊天機器人。用戶問:“向我展示最新的iPhone型號。”通過傳統的矢量搜索,您可能會獲得語義上相似的結果,但是您可能會錯過確切的匹配。另一方面,關鍵字搜索可能太嚴格了。混合搜索為您提供了兩全其美的最好:

  • 向量搜索捕獲語義含義和上下文
  • 關鍵字搜索確保特定術語的精度

Qdrant是我們本文首選的矢量商店,也是充分的理由:

  • Qdrant在定義時只需啟用混合參數即可輕鬆實現混合搜索。
  • 它帶有使用快速培訓的優化嵌入模型,其中該模型以ONNX格式加載。
  • QDRANT實施優先考慮保護敏感信息,提供多功能部署選項,最小化響應時間並減少運營費用。

使用LlamainDex的記憶和混合搜索

我們將深入研究LlamainDex框架內的內存和混合搜索的實際實施,展示這些功能如何增強檢索增強發電(RAG)系統的功能。通過集成這些組件,我們可以創建一個更聰明,更感知的對話代理,該代理有效地利用了歷史數據和高級搜索技術。

步驟1:安裝要求

好吧,讓我們逐步分解這一點。我們將使用LlamainDex,Qdrant矢量商店,從QDRANT進行了快進,以及Google的Gemini模型。確保已安裝這些庫:

 !
!

步驟2:定義LLM和嵌入模型

首先,讓我們導入依賴關係並設置API密鑰:

導入操作系統
從GetPass Import GetPass
來自llama_index.llms.gemini Import gemini
來自llama_index.embeddings.Fastembed進口fastembedembedding

Google_api_key = getPass(“輸入您的雙子座API:”)
os.environ [“ Google_api_key”] = Google_api_key

llm = gemini()#gemini 1.5閃光燈
embed_model = fastembedembedding()

現在,讓我們測試API當前是否是通過在示例用戶查詢上運行該LLM來定義的。

 llm_response = llm.complete(“一件開始?”)。
打印(llm_response)

在Llamaindex中,OpenAI是默認的LLM和嵌入模型,以覆蓋我們需要從LlamainDex Core定義設置。在這裡,我們需要覆蓋LLM和嵌入模型。

來自llama_index.core導入設置

settings.llm = llm
settings.embed_model = embed_model

步驟3:加載數據

在此示例中,假設我們在數據文件夾中有一個PDF,我們可以使用LlamainDex中的SimpleDirectory Reader加載數據文件夾。

來自llama_index.core導入simpledirectoryReader
documents = simpleDirectoryReader(“ ./ data/”)。 load_data()

步驟4:通過混合搜索設置QDRANT

我們需要定義一個QDRANTVECTORSTORE實例,並將其設置在此示例中。我們還可以使用其云服務或Localhost來定義QDrant客戶端,但是在我們的內存文章中,具有收集名稱的定義應該可以。

確保enable_hybrid = true,因為這允許我們使用QDRANT的混合搜索功能。我們的收藏名稱是“紙”,因為數據文件夾在有關代理商的研究論文中包含PDF。

來自llama_index.core導入vectorstoreindex,StorageContext
來自llama_index.vector_stores.qdrant導入QDRANTVECTORSTORE
導入qdrant_client

客戶端= qdrant_client.qdrantclient(
    位置=“:內存:”,
)

vector_store = qdrantVectorstore(
    collection_name =“紙”,
    客戶端=客戶端,
    enable_hybrid = true,#混合搜索將進行
    batch_size = 20,
)

步驟5:索引您的文檔

通過在我們的抹布系統中實現內存和混合搜索,我們創建了一個更聰明,更聰明的上下文-A

 Storage_Context = StorageContext.from_defaults(vector_store = vector_store)

index = vectorstoreIndex.from_documents(
    文件,
    storage_context = storage_context,
)

步驟6:查詢索引查詢引擎

索引是我們在LlamainDex中定義獵犬和發電機鏈的部分。它處理文檔集合中的每個文檔,並為每個文檔的內容生成嵌入式。然後,它將這些嵌入在我們的Qdrant矢量存儲中。它創建了一個索引結構,可有效檢索。在定義查詢引擎時,請確保在混合動力車中查詢模式。

 query_engine = index.as_query_engine(
    vector_store_query_mode =“ hybrid”
)

revertmon1 = query_engine.query(“生活的含義是什麼?”)
打印(響應1)
revertmon2 = query_engine.query(“在2個句子中給出摘要”)
打印(響應2)

在上面的查詢引擎中,我們運行兩個查詢,一個是在上下文中,另一個在上下文之外。這是我們得到的輸出:

輸出

#響應1
提供的文本著重於使用大語模型(LLMS)在自主代理中計劃。 
它沒有討論生活的含義。 

#響應2

本文檔探討了大型語言模型(LLM)作為解決複雜任務的代理。 
它專注於兩種主要方法: 
分解優先的方法, 
在執行前將任務分解為子任務,而 
交錯分解方法,該方法基於反饋動態調整分解。

步驟7:定義內存

雖然我們的聊天機器人表現良好並提供了改進的響應,但它仍然缺乏多個交互之間的上下文意識。這是記憶進入圖片的地方。

來自llama_index.core.memory Import ChatMemorybuffer

內存= chatmemorybuffer.from_defaults(token_limit = 3000)

步驟8:創建帶有內存的聊天引擎

我們將創建一個使用混合搜索和內存的聊天引擎。在LlamainDex中,當我們擁有外部或外部數據時,請確保聊天模式是上下文。

 chat_engine = index.as_chat_engine(
    chat_mode =“上下文”, 
    內存=內存,
    system_prompt =(
        “您是AI助手,他們回答用戶問題”
    ),
)

步驟9:測試內存

讓我們進行一些查詢,並檢查內存是否按預期工作。

從ipython.display導入降價,顯示

check1 = chat_engine.chat(“在2句中給摘要”)

check2 = chat_engine.chat(“繼續摘要,在上兩個句子中再添加一個句子”)

check3 = chat_engine.chat(“將上述抽像變成詩”) 

使用llamaindex在抹布中的記憶和混合搜索

使用llamaindex在抹布中的記憶和混合搜索

結論

我們探討了將內存和混合搜索集成到檢索增強發電(RAG)系統中如何顯著增強其功能。通過將LlamainDex與Qdrant用作矢量商店和Google的雙子座作為大語言模型,我們演示了混合搜索如何結合向量和基於關鍵字的檢索的優勢,以提供更精確的結果。內存的添加進一步改善了上下文理解,從而使聊天機器人能夠在多個交互之間提供連貫的響應。這些功能共同創造了一個更聰明,更智能的上下文感知系統,使破布管道對複雜的AI應用程序更有效。

關鍵要點

  • RAG管道中的內存組件的實現顯著增強了聊天機器人的上下文意識和在多個交互之間保持連貫對話的能力。
  • 使用QDRANT作為矢量存儲的混合搜索集成,結合了向量和關鍵字搜索的優勢,以提高抹布系統中的檢索準確性和相關性,從而最大程度地減少了幻覺的風險。免責聲明,它並沒有完全消除幻覺,而是降低了風險。
  • 利用Llamaindex的ChatMemoryBuffer進行對話歷史的有效管理,並具有可配置的令牌限制,以平衡上下文保留和計算資源。
  • 將Google的雙子座模型納入Llamaindex框架中,並將其嵌入提供商嵌入,展示了LlamainDex在適應不同的AI模型和嵌入技術方面的靈活性。

常見問題

1。什麼是混合搜索,為什麼在抹布中很重要?

答:混合搜索結合了矢量搜索以獲取語義理解和關鍵字搜索精度。它通過允許系統同時考慮上下文和確切的術語來提高結果的準確性,從而可以更好地檢索結果,尤其是在復雜的數據集中。

Q2。為什麼在抹布中使用QDrant進行混合搜索?

答:QDRANT支持框開的混合搜索,可針對快速嵌入式進行優化,並且可擴展。這使其成為在抹布系統中同時實施基於向量和關鍵字的搜索的可靠選擇,從而確保大規模的性能。

Q3。內存如何改善抹布系統?

A.抹布系統中的內存可以保留對話歷史記錄,從而使聊天機器人能夠在交互之間提供更連貫和上下文的準確響應,從而顯著增強了用戶體驗。

Q 4。我可以將本地模型代替基於雲的API用於抹布應用嗎?

答:是的,您可以運行本地LLM(例如Ollama或HuggingFace),而不是使用OpenAI之類的基於雲的API。這使您可以在不上傳到外部服務器的情況下保持對數據的完全控制,這是對隱私敏感應用程序的普遍關注點。

本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。

以上是使用llamaindex在抹布中的記憶和混合搜索的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
[帶AI的吉卜力風格圖像]介紹如何使用Chatgpt和版權創建免費圖像[帶AI的吉卜力風格圖像]介紹如何使用Chatgpt和版權創建免費圖像May 13, 2025 am 01:57 AM

OpenAI發布的最新模型GPT-4o,不僅能生成文本,還具備圖像生成功能,引發廣泛關注。其中最受矚目的功能便是“吉卜力風格插畫”的生成。只需將照片上傳至ChatGPT,並給出簡單的指令,即可生成宛如吉卜力工作室作品般夢幻的圖像。本文將詳細解讀實際操作流程、效果感受,以及需要注意的錯誤和版權問題。 OpenAI發布的最新模型“o3”詳情請點擊此處⬇️ OpenAI o3(ChatGPT o3)詳解:特性、定價體系及o4-mini介紹 吉卜力風格文章的英文版請點擊此處⬇️ 利用ChatGPT創作吉

解釋在地方政府中使用和實施CANTGPT的示例!還介紹了禁止的地方政府解釋在地方政府中使用和實施CANTGPT的示例!還介紹了禁止的地方政府May 13, 2025 am 01:53 AM

作為一種新的交流方法,在地方政府中使用和引入Chatgpt引起了人們的關注。儘管這種趨勢在廣泛的領域正在發展,但一些地方政府拒絕使用Chatgpt。 在本文中,我們將介紹地方政府中ChatGPT實施的示例。我們將通過各種改革實例,包括支持文件創建和與公民對話,從而探索如何通過各種改革實例來實現地方政府服務的質量和效率提高。 不僅旨在減少員工工作量並改善公民的便利性的地方政府官員,而且都對高級用例感興趣。

chatgpt中的福卡式風格提示是什麼?示例句子的詳盡解釋!chatgpt中的福卡式風格提示是什麼?示例句子的詳盡解釋!May 13, 2025 am 01:52 AM

您是否聽說過一個名為“福卡斯提示系統”的框架?諸如ChatGpt之類的語言模型非常出色,但是適當的提示對於發揮其潛力至關重要。福卡(Fukatsu)提示是旨在提高輸出準確性的最受歡迎的提示技術之一。 本文解釋了福卡式風格提示的原理和特徵,包括特定的用法方法和示例。此外,我們還引入了其他眾所周知的及時模板和有用的技術來及時設計,因此,根據這些設計,我們將介紹C。

什麼是chatgpt搜索?解釋主要功能,用法和費用結構!什麼是chatgpt搜索?解釋主要功能,用法和費用結構!May 13, 2025 am 01:51 AM

CHATGPT搜索:使用創新的AI搜索引擎有效獲取最新信息! 在本文中,我們將徹底解釋OpenAI提供的新的ChatGpt功能“ ChatGpt搜索”。讓我們仔細研究一下功能,用法以及該工具如何根據實時網絡信息和直觀的易用性來幫助您提高信息收集效率。 chatgpt搜索提供了一種對話互動搜索體驗,該體驗在舒適,隱藏的環境中回答用戶問題,以隱藏廣告

易於理解的解釋如何在Chatgpt和提示中創建構圖!易於理解的解釋如何在Chatgpt和提示中創建構圖!May 13, 2025 am 01:50 AM

信息爆炸的現代社會,創作出令人信服的文章並非易事。如何在有限的時間和精力內,發揮創造力,撰寫出吸引讀者的文章,需要高超的技巧和豐富的經驗。 這時,作為革命性的寫作輔助工具,ChatGPT 備受矚目。 ChatGPT 利用龐大的數據訓練出的語言生成模型,能夠生成自然流暢、精煉的文章。 本文將介紹如何有效利用 ChatGPT,高效創作高質量文章的技巧。我們將逐步講解使用 ChatGPT 的寫作流程,並結合具體案例,詳細闡述其優缺點、適用場景以及安全使用注意事項。 ChatGPT 將成為作家克服各種障礙,

如何使用chatgpt創建圖!還解釋了插圖的加載和插件如何使用chatgpt創建圖!還解釋了插圖的加載和插件May 13, 2025 am 01:49 AM

使用AI創建圖表的有效指南 視覺材料對於有效傳達信息至關重要,但是創建它需要大量時間和精力。但是,由於AI技術(例如Chatgpt和dall-e 3)的興起,圖表創建過程正在發生巨大變化。本文使用這些尖端工具提供了有關有效而有吸引力的圖創建方法的詳細說明。它涵蓋了從想法到完成的所有內容,並包含大量信息,可用於創建圖表,從可以使用的特定步驟,提示,插件和API以及如何使用圖像一代AI“ dall-e 3.”)

易於理解的解釋Chatgpt加上定價結構和付款方式!易於理解的解釋Chatgpt加上定價結構和付款方式!May 13, 2025 am 01:48 AM

解锁ChatGPT Plus:费用、支付方式及升级指南 全球瞩目的顶尖生成式AI,ChatGPT已广泛应用于日常生活和商业领域。虽然ChatGPT基本免费,但付费版ChatGPT Plus提供多种增值服务,例如插件、图像识别等,显著提升工作效率。本文将详细解读ChatGPT Plus的收费标准、支付方式及升级流程。 OpenAI最新图像生成技术“GPT-4o图像生成”详情请点击: GPT-4o图像生成详解:使用方法、提示词示例、商业应用及与其他AI的差异 目录 ChatGPT Plus费用 Ch

解釋如何使用chatgpt創建設計!我們還介紹了使用和提示示例解釋如何使用chatgpt創建設計!我們還介紹了使用和提示示例May 13, 2025 am 01:47 AM

如何使用Chatgpt簡化您的設計工作並提高創造力 本文將詳細說明如何使用ChatGpt創建設計。我們將介紹在各個設計領域中使用Chatgpt的示例,例如思想,文本生成和網頁設計。我們還將介紹可以幫助您提高各種創意作品的效率和質量(例如圖形設計,插圖和徽標設計)的效率和質量。請看一下AI如何大大擴展您的設計可能性。 目錄 chatgpt:設計創建的強大工具

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。