隨著人工智慧繼續塑造我們的工作方式以及與技術互動的方式,許多企業正在尋找在智慧應用程式中利用自己的數據的方法。如果你使用過 ChatGPT 或 Azure OpenAI 等工具,那麼你已經熟悉生成式 AI 如何改善流程並增強使用者體驗。然而,為了真正自訂和相關的回應,您的應用程式需要合併您的專有數據。
這就是檢索增強生成 (RAG) 的用武之地,它提供了一種結構化方法來將資料檢索與人工智慧驅動的回應整合在一起。借助 LlamaIndex 等框架,您可以輕鬆地將這種功能建置到您的解決方案中,從而釋放業務資料的全部潛力。
想要快速運行並探索該應用程式?點這裡。
什麼是 RAG - 檢索增強生成?
檢索增強生成 (RAG) 是一種神經網路框架,它透過包含檢索組件來存取相關資訊並整合您自己的資料來增強 AI 文字生成。它由兩個主要部分組成:
- 檢索器:密集檢索器模型(例如,基於 BERT),用於搜尋大型文件語料庫以查找與給定查詢相關的相關段落或資訊。
- 產生器:序列到序列模型(例如,基於 BART 或 T5),它將查詢和檢索到的文字作為輸入,並產生連貫的、上下文豐富的回應。
檢索器找到相關文檔,生成器使用它們來創建更準確、更豐富的回應。這種組合使 RAG 模型能夠有效地利用外部知識,並提高生成文本的品質和相關性。
LlamaIndex 如何實現 RAG?
要使用 LlamaIndex 實作 RAG 系統,請遵循以下一般步驟:
資料攝取:
- 使用 SimpleDirectoryReader 等文件載入器將文件載入到 LlamaIndex.ts 中,這有助於從 PDF、API 或 SQL 資料庫等各種來源匯入資料。
- 使用 SentenceSplitter 將大文件分解為更小的、可管理的區塊。
索引建立:
- 使用 VectorStoreIndex 建立這些文件區塊的向量索引,從而允許基於嵌入進行高效的相似性搜尋。
- 對於複雜的資料集,可以選擇使用遞歸檢索技術來管理分層結構化資料並根據使用者查詢檢索相關部分。
查詢引擎設定:
- 使用asQueryEngine將向量索引轉換為查詢引擎,並使用similarityTopK等參數來定義應檢索多少個頂級文件。
- 對於更高級的設置,創建一個多代理系統,其中每個代理負責特定文檔,並且頂級代理協調整個檢索過程。
檢索與產生:
- 透過定義一個目標函數來實現 RAG 管道,該函數根據使用者查詢檢索相關文件區塊。
- 使用 RetrieverQueryEngine 執行實際的檢索和查詢處理,以及可選的後處理步驟,例如使用 CohereRerank 等工具對檢索到的文件重新排名。
作為一個實際範例,我們提供了一個範例應用程式來示範使用 Azure OpenAI 的完整 RAG 實作。
實用 RAG 範例應用程式
我們現在將專注於使用 LlamaIndex.ts(LlamaIndex 的 TypeScipt 實作)和 Azure OpenAI 建置 RAG 應用程序,並將其部署為 Azure 容器應用程式上的無伺服器 Web 應用程式。
運行範例的要求
- Azure Developer CLI (azd):一個命令列工具,可輕鬆部署整個應用程序,包括後端、前端和資料庫。
- Azure 帳戶:您需要一個 Azure 帳戶來部署應用程式。取得一個帶有一些點數的免費 Azure 帳戶即可開始使用。
您將在 GitHub 上找到入門專案。我們建議您分叉此模板,以便您可以在需要時自由編輯它:
高層架構
入門專案應用程式基於以下架構建構:
- Azure OpenAI: The AI provider that processes the user's queries.
- LlamaIndex.ts: The framework that helps ingest, transform, and vectorize content (PDFs) and create a search index.
- Azure Container Apps: The container environment where the serverless application is hosted.
- Azure Managed Identity: Ensures top-notch security and eliminates the need for handling credentials and API keys.
For more details on what resources are deployed, check the infra folder available in all our samples.
Example User Workflows
The sample application contains logic for two workflows:
-
Data Ingestion: Data is fetched, vectorized, and search indexes are created. If you want to add more files like PDFs or Word files, this is where you should add them.
npm run generate
Serving Prompt Requests: The app receives user prompts, sends them to Azure OpenAI, and augments these prompts using the vector index as a retriever.
Running the Sample
Before running the sample, ensure you have provisioned the necessary Azure resources.
To run the GitHub template in GitHub Codespace, simply click
In your Codespaces instance, sign into your Azure account, from your terminal:
azd auth login
Provision, package, and deploy the sample application to Azure using a single command:
azd up
To run and try the application locally, install the npm dependencies and run the app:
npm install npm run dev
The app will run on port 3000 in your Codespaces instance or at http://localhost:3000 in your browser.
Conclusion
This guide demonstrated how to build a serverless RAG (Retrieval-Augmented Generation) application using LlamaIndex.ts and Azure OpenAI, deployed on Microsoft Azure. By following this guide, you can leverage Azure's infrastructure and LlamaIndex's capabilities to create powerful AI applications that provide contextually enriched responses based on your data.
We’re excited to see what you build with this getting started application. Feel free to fork it and like the GitHub repository to receive the latest updates and features.
以上是使用 LlamaIndex.ts 和 Azure OpenAI 建立 RAG 應用程式:入門!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

WebStorm Mac版
好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

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