目錄
LlamaIndex的工作原理
索引階段
查詢階段
LlamaIndex的設置
使用LlamaIndex向LLM添加個人數據
加載數據並創建索引
運行查詢
保存和加載上下文
聊天機器人
使用LlamaIndex構建維基文本轉語音
網絡抓取維基百科頁面
加載數據並構建索引
查詢
文本轉語音
LlamaIndex的用例
結論
首頁 科技週邊 人工智慧 LlamainDEX:基於大語模型(LLM)應用程序的數據框架

LlamainDEX:基於大語模型(LLM)應用程序的數據框架

Mar 10, 2025 am 10:22 AM

LlamaIndex:賦能大型語言模型的數據框架

LlamaIndex是一個基於大型語言模型(LLM)的應用數據框架。像GPT-4這樣的LLM預先訓練了海量公共數據集,開箱即用地提供強大的自然語言處理能力。然而,如果沒有訪問您自己的私有數據,它們的效用將受到限制。

LlamaIndex允許您通過靈活的數據連接器,從API、數據庫、PDF等多種來源攝取數據。這些數據被索引成針對LLM優化的中間表示。然後,LlamaIndex允許通過查詢引擎、聊天界面和LLM驅動的智能體與您的數據進行自然語言查詢和對話。它使您的LLM能夠大規模訪問和解釋私有數據,而無需對模型進行重新訓練。

無論您是尋求簡單自然語言查詢數據方法的初學者,還是需要深度定制的高級用戶,LlamaIndex都能提供相應的工具。高級API讓您只需五行代碼即可上手,而低級API則允許您完全控制數據攝取、索引、檢索等更多功能。

LlamaIndex的工作原理

LlamaIndex使用檢索增強生成(RAG)系統,該系統將大型語言模型與私有知識庫相結合。它通常包括兩個階段:索引階段和查詢階段。

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

圖片來自高級概念

索引階段

在索引階段,LlamaIndex會將私有數據高效地索引到向量索引中。此步驟有助於創建特定於您領域的、可搜索的知識庫。您可以輸入文本文檔、數據庫記錄、知識圖譜和其他數據類型。

本質上,索引將數據轉換為數值向量或嵌入,以捕捉其語義含義。它能夠快速進行跨內容的相似性搜索。

查詢階段

在查詢階段,RAG管道根據用戶的查詢搜索最相關的信息。然後,將這些信息與查詢一起提供給LLM,以創建準確的響應。

此過程允許LLM訪問其初始訓練中可能未包含的當前和更新的信息。

此階段的主要挑戰是從可能存在的多個知識庫中檢索、組織和推理信息。

在我們的PineCone檢索增強生成代碼示例中了解更多關於RAG的信息。

LlamaIndex的設置

在我們深入LlamaIndex教程和項目之前,我們必須安裝Python包並設置API。

我們可以使用pip簡單地安裝LlamaIndex。

<code>pip install llama-index</code>
登入後複製
登入後複製
登入後複製

默認情況下,LlamaIndex使用OpenAI GPT-3 text-davinci-003模型。要使用此模型,您必須設置OPENAI_API_KEY。您可以創建一個免費帳戶,並通過登錄OpenAI的新API令牌來獲取API密鑰。

<code>pip install llama-index</code>
登入後複製
登入後複製
登入後複製

此外,請確保您已安裝openai包。

<code>import os

os.environ["OPENAI_API_KEY"] = "INSERT OPENAI KEY"</code>
登入後複製
登入後複製

使用LlamaIndex向LLM添加個人數據

在本節中,我們將學習如何使用LlamaIndex創建一個簡歷閱讀器。您可以通過訪問LinkedIn個人資料頁面,單擊“更多”,然後“保存為PDF”來下載您的簡歷。

請注意,我們使用DataLab運行Python代碼。您可以在LlamaIndex:向LLM添加個人數據工作簿中訪問所有相關的代碼和輸出;您可以輕鬆創建自己的副本以運行所有代碼,而無需在您的計算機上安裝任何內容!

在運行任何內容之前,我們必須安裝llama-index、openai和pypdf。我們安裝pypdf以便我們可以讀取和轉換PDF文件。

<code>pip install openai</code>
登入後複製
登入後複製

加載數據並創建索引

我們有一個名為“Private-Data”的目錄,其中只包含一個PDF文件。我們將使用SimpleDirectoryReader讀取它,然後使用TreeIndex將其轉換為索引。

<code>%pip install llama-index openai pypdf</code>
登入後複製
登入後複製

運行查詢

一旦數據被索引,您就可以開始通過使用as_query_engine()提問。此函數使您可以詢問文檔中特定信息的問題,並在OpenAI GPT-3 text-davinci-003模型的幫助下獲得相應的響應。

注意:您可以按照在Python教程中使用GPT-3.5和GPT-4通過OpenAI API的說明,在DataLab中設置OpenAI API。

正如我們所看到的,LLM模型準確地回答了查詢。它搜索了索引並找到了相關信息。

<code>from llama_index import TreeIndex, SimpleDirectoryReader

resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)</code>
登入後複製
登入後複製
<code>query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)</code>
登入後複製
登入後複製

我們可以進一步詢問認證信息。似乎LlamaIndex已經完全了解了候選人,這對於尋找特定人才的公司來說可能是有利的。

<code>Abid graduated in February 2014.</code>
登入後複製
<code>response = query_engine.query("What is the name of certification that Abid received?")
print(response)</code>
登入後複製

保存和加載上下文

創建索引是一個耗時的過程。我們可以通過保存上下文來避免重新創建索引。默認情況下,以下命令將保存存儲在./storage目錄中的索引存儲。

<code>Data Scientist Professional</code>
登入後複製

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

完成後,我們可以快速加載存儲上下文並創建索引。

<code>new_index.storage_context.persist()</code>
登入後複製

為了驗證它是否正常工作,我們將向查詢引擎提出簡歷中的問題。看來我們已經成功加載了上下文。

<code>from llama_index import StorageContext, load_index_from_storage

storage_context = StorageContext.from_defaults(persist_)
index = load_index_from_storage(storage_context)</code>
登入後複製
<code>query_engine = index.as_query_engine()
response = query_engine.query("What is Abid's job title?")
print(response)</code>
登入後複製

聊天機器人

除了問答之外,我們還可以使用LlamaIndex創建個人聊天機器人。我們只需要使用as_chat_engine()函數初始化索引即可。

我們將問一個簡單的問題。

<code>Abid's job title is Technical Writer.</code>
登入後複製
<code>query_engine = index.as_chat_engine()
response = query_engine.chat("What is the job title of Abid in 2021?")
print(response)</code>
登入後複製

並且無需提供額外的上下文,我們將提出後續問題。

<code>Abid's job title in 2021 is Data Science Consultant.</code>
登入後複製
<code>response = query_engine.chat("What else did he do during that time?")
print(response)</code>
登入後複製

很明顯,聊天引擎運行完美無缺。

構建語言應用程序後,您時間軸上的下一步是閱讀關於在雲中使用大型語言模型(LLM)與在本地運行它們的優缺點。這將幫助您確定哪種方法最適合您的需求。

使用LlamaIndex構建維基文本轉語音

我們的下一個項目涉及開發一個可以響應來自維基百科的問題並將它們轉換為語音的應用程序。

代碼源和附加信息可在DataLab工作簿中找到。

網絡抓取維基百科頁面

首先,我們將從意大利 - 維基百科網頁抓取數據,並將其保存為data文件夾中的italy_text.txt文件。

<code>pip install llama-index</code>
登入後複製
登入後複製
登入後複製

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

加載數據並構建索引

接下來,我們需要安裝必要的包。 elevenlabs包允許我們使用API輕鬆地將文本轉換為語音。

<code>import os

os.environ["OPENAI_API_KEY"] = "INSERT OPENAI KEY"</code>
登入後複製
登入後複製

通過使用SimpleDirectoryReader,我們將加載數據並將TXT文件轉換為使用VectorStoreIndex的向量存儲。

<code>pip install openai</code>
登入後複製
登入後複製

查詢

我們的計劃是詢問有關該國的一般性問題,並從LLM query_engine獲得答复。

<code>%pip install llama-index openai pypdf</code>
登入後複製
登入後複製

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

文本轉語音

之後,我們將使用llama_index.tts模塊訪問ElevenLabsTTS api。您需要提供ElevenLabs API密鑰才能啟動音頻生成功能。您可以在ElevenLabs網站上免費獲得API密鑰。

<code>from llama_index import TreeIndex, SimpleDirectoryReader

resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)</code>
登入後複製
登入後複製

我們將response添加到generate_audio函數中以生成自然語音。為了收聽音頻,我們將使用IPython.display的Audio函數。

<code>query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)</code>
登入後複製
登入後複製

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

這是一個簡單的示例。您可以使用多個模塊來創建您的助手,例如Siri,它通過解釋您的私有數據來回答您的問題。有關更多信息,請參閱LlamaIndex文檔。

除了LlamaIndex之外,LangChain還允許您構建基於LLM的應用程序。此外,您可以閱讀數據工程和數據應用程序的LangChain入門,以了解您可以使用LangChain執行的操作概述,包括LangChain解決的問題和數據用例示例。

LlamaIndex的用例

LlamaIndex提供了一個完整的工具包來構建基於語言的應用程序。最重要的是,您可以使用Llama Hub中的各種數據加載器和智能體工具來開發具有多種功能的複雜應用程序。

您可以使用一個或多個插件數據加載器將自定義數據源連接到您的LLM。

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

來自Llama Hub的數據加載器

您還可以使用智能體工具來集成第三方工具和API。

LlamaIndex: A Data Framework for the Large Language Models (LLMs) based applications

來自Llama Hub的智能體工具

簡而言之,您可以使用LlamaIndex構建:

  • 基於文檔的問答
  • 聊天機器人
  • 智能體
  • 結構化數據
  • 全棧Web應用程序
  • 私有設置

要詳細了解這些用例,請訪問LlamaIndex文檔。

結論

LlamaIndex提供了一個強大的工具包,用於構建檢索增強生成系統,該系統結合了大型語言模型和自定義知識庫的優勢。它能夠創建一個特定領域數據的索引存儲,並在推理過程中利用它,為LLM提供相關的上下文以生成高質量的響應。

在本教程中,我們學習了LlamaIndex及其工作原理。此外,我們僅使用幾行Python代碼就構建了一個簡歷閱讀器和文本轉語音項目。使用LlamaIndex創建LLM應用程序非常簡單,它提供了一個龐大的插件、數據加載器和智能體庫。

要成為一名專家級LLM開發人員,下一步是參加大型語言模型概念大師課程。本課程將使您全面了解LLM,包括它們的應用、訓練方法、倫理考慮和最新研究。

以上是LlamainDEX:基於大語模型(LLM)應用程序的數據框架的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

AV字節:Meta&#039; llama 3.2,Google的雙子座1.5等 AV字節:Meta&#039; llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

最新的最佳及時工程技術的年度彙編 最新的最佳及時工程技術的年度彙編 Apr 10, 2025 am 11:22 AM

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

See all articles