當使用大語言模型(LLM)構建應用程序時,響應的質量在很大程度上取決於給定用戶任務的有效計劃和推理功能。儘管傳統的抹布技術很強大,但合併代理工作流程可以顯著增強系統處理和響應查詢的能力。
在本文中,您將使用Phidata開源代理框架構建一個具有內存組件的代理抹布系統,以演示如何組合向量數據庫,即,QDRANT,QDRANT,嵌入模型和智能代理以改進結果。
本文作為數據科學博客馬拉鬆的一部分發表。
在AI背景下的代理是旨在模仿類似人類的思維和計劃功能的組件。代理組件包括:
抹布(檢索式的一代)將知識檢索與LLM功能相結合。當我們將代理集成到抹布系統中時,我們會創建一個強大的工作流程,可以:
傳統抹布和代理抹布之間的關鍵區別在於決策層,該層決定如何處理每個查詢並與工具進行交互以獲取實時信息。
現在我們知道,有一個像Agentic抹布這樣的東西,我們如何構建它?讓我們分解。
Phidata是一個旨在構建,監視和部署代理工作流程的開源框架。它支持配備有內存,知識,工具和推理功能的多模式AI代理。它的模型 - 敏捷的體系結構可確保與各種大型語言模型(LLM)的兼容性,從而使開發人員能夠將任何LLM轉換為功能性AI代理。此外,Phidata允許您使用自己的雲(BYOC)方法部署代理工作流程,從而提供靈活性和對AI系統的控制。
Phidata的主要特徵包括能夠建立合作解決複雜問題的代理團隊的能力,用戶友好的代理UI無縫交互(Phidata Playground)以及對代理檢索效果(RAG)(RAG)和結構化輸出的內置支持。該框架還強調監視和調試,提供工具以確保強大而可靠的AI應用程序。
探索基於代理的系統在現實世界應用中的變革力,利用Phidata來增強決策和任務自動化。
通過整合諸如Yfinance之類的工具,Phidata允許創建可以獲取實時股票價格,分析財務數據並總結分析師建議的代理商。這些代理商通過提供最新的市場見解來協助投資者和分析師做出明智的決定。
Phidata還可以幫助開發能夠使用DuckDuckgo,Serpapi或Serper等搜索工具從Web中檢索實時信息的代理。這些代理可以通過採購最新數據來回答用戶查詢,從而使其對於研究和信息收集任務很有價值。
Phidata還支持多模式功能,從而可以創建分析圖像,視頻和音頻的代理。這些多模式代理可以處理諸如圖像識別,文本到圖像生成,音頻轉錄和視頻分析等任務,從而在各個領域提供多功能解決方案。對於文本形像或文本對視頻任務,可以集成DALL-E和REPLICATE等工具,而對於圖像到文本和視頻對文本任務,可以利用多模式的LLM,例如GPT-4,Gemini 2.0,Claude AI等。
想像一下,您有針對創業公司的文檔,並希望創建一個聊天助手,該聊天助理可以根據該文檔回答用戶問題。為了使您的聊天機器人更聰明,還需要處理實時數據。通常,回答實時數據查詢需要重建知識庫或重建模型。
這是代理商發揮作用的地方。通過將知識庫與代理相結合,您可以創建一個代理抹布(檢索增強的生成)解決方案,不僅可以提高聊天機器人檢索準確答案的能力,還可以提高其整體性能。
我們有三個主要組成部分組成我們的知識基礎。首先,我們有數據源,例如文檔頁面,PDF或我們要使用的任何網站。然後,我們擁有QDRANT,這是我們的矢量數據庫 - 就像一個智能存儲系統,可以幫助我們快速找到類似的信息。最後,我們擁有嵌入模型,該模型將我們的文本轉換為計算機可以更好地理解的格式。這三個組成部分進入了我們的知識庫,就像我們系統的大腦一樣。
現在,我們從Phidata定義了代理對象。
代理連接到三個組件:
注意:這裡的知識庫和DuckDuckgo都將充當工具,然後基於任務或用戶查詢,代理將採取行動用於生成響應的工具。默認情況下,嵌入模型也是OpenAI,因此我們將使用OpenAI – GPT-4O作為推理模型。
讓我們構建此代碼。
現在是時候建立一個可以在知識庫中與知識庫和DuckDuckgo的個人信息(網站)進行互動的DocumentAnalyzer助理代理商了。
要構建代理RAG工作流,我們需要安裝一些包括:
PIP安裝Phidata Google-generativeai duckduckgo-search qdrant-client
在此步驟中,我們將設置環境變量並收集所需的API憑據以運行此用例。對於OpenAi API密鑰,您可以從:https://platform.openai.com/中獲得。創建您的帳戶並創建一個新密鑰。
來自phi.sknowledge.website intiment intoble website noverledgebasebase 從phi.vectordb.qdrant導入qdrant 來自phi.agent進口代理 來自phi.storage.agent.sqlite導入sqlagentstorage 來自phi.model.openai進口Openaichat 來自phi.tools.duckduckgo import duckduckgo 導入操作系統 os.environ ['openai_api_key'] =“ ”
現在,您必須通過為矢量數據庫提供集合名稱,URL和API密鑰來初始化QDRANT客戶端。 QDRANT數據庫存儲並從網站上索引知識,使代理商可以根據用戶查詢執行相關信息的檢索。此步驟為您的代理設置數據層:
collection_name =“ AgentIc-rag” qdrant_url =“ ” qdrant_api_key =“ ” vector_db = qdrant( collection = collection_name, url = qdrant_url, api_key = qdrant_api_key, )
在這裡,您將定義代理商將吸引其知識的來源。在此示例中,我們正在建立一個文檔分析儀代理,該代理可以使我們的工作易於回答網站的問題。我們將使用QDrant文檔網站URL進行索引。
網站知識庫對象與QDRANT矢量數據庫進行交互,以存儲提供的URL的索引知識。然後,它將代理商加載到知識庫中以檢索。
注意:請記住,我們使用負載函數將數據源索引到知識庫。每個集合名稱只需運行一次,如果更改集合名稱並想要添加新數據,則只有此時間再次運行加載功能。
url =“ https://qdrant.tech/documentation/overview/” 知識_base = weblotskinkegledebase( urls = [url], max_links = 10, vector_db = vector_db, ) 知識_base.load()#僅在創建集合之後運行一次,請評論此
該代理為響應生成,信息檢索的知識庫和SQLite存儲系統配置LLM(GPT-4),以跟踪交互和響應作為內存。它還設置了DuckDuckgo搜索工具,以便在需要時進行其他Web搜索。此設置形成了能夠回答查詢的核心AI代理。
我們將將show_tool_calls設置為true,以觀察後端運行時執行,並跟踪查詢是將查詢路由到知識庫還是DuckDuckgo搜索工具。運行此單元格時,它將創建一個數據庫文件,其中通過將存儲器存儲和設置add_history_to_messages設置為true來保存所有消息。
代理=代理( 型號= OpenAICHAT(), 知識=知識_base, 工具= [duckduckgo()], show_tool_calls = true, markdown = true, 存儲= sqlagentStorage(table_name =“ agentic_rag”,db_file =“ agents_rag.db”), add_history_to_messages = true, )
最後,代理準備處理用戶查詢。通過調用print_response()函數,您可以傳遞用戶查詢,並且代理通過從知識庫中檢索相關信息並處理它來做出響應。如果查詢不是來自知識庫,它將使用搜索工具。讓我們觀察變化。
agent.print_response( “文檔中提到的索引技術是什麼?” 流= true )
agent.print_response( “誰是維拉特·科利?” 流= true )
發現代理抹布的關鍵優勢,智能代理和關係圖結合在一起以優化數據檢索和決策。
使用內存組件實施代理抹佈為構建智能知識檢索系統和搜索引擎提供了可靠的解決方案。在本文中,我們探討了什麼是代理商和抹布,以及如何結合它們。通過代理抹布的組合,由於代理的決策能力,查詢路由會提高。
答:是的,Phidata旨在支持能夠處理涉及圖像,視頻和音頻的任務的多模式AI代理。它集成了諸如dall-e之類的工具,並複制以進行文本形像或文本到視頻生成,並利用多模式LLMS(例如GPT-4,Gemini 2.0)和Claude AI進行圖像對文本和視頻對文本任務。
Q2。哪些工具和框架可用於開發代理抹布系統?A.開發代理檢索增強的生成(RAG)系統涉及利用各種工具和框架,以促進自主代理與檢索和發電能力的整合。以下是用於此目的的一些工具和框架:Langchain,Llamaindex,Phidata,Crewai和Autogen。
Q3。 Phidata可以與外部工具和知識庫集成嗎?答:是的,Phidata允許整合各種工具和知識庫。例如,它可以與用於實時庫存分析的財務數據工具(例如YFINANCE)或DuckDuckgo(例如DuckDuckgo)等財務數據工具連接,以檢索最新信息。這種靈活性使創建針對特定用例的專用代理。
本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。
以上是用Phidata建造代理抹布的詳細內容。更多資訊請關注PHP中文網其他相關文章!