首頁 >科技週邊 >人工智慧 >用Phidata建造代理抹布

用Phidata建造代理抹布

Christopher Nolan
Christopher Nolan原創
2025-03-13 11:54:13828瀏覽

當使用大語言模型(LLM)構建應用程序時,響應的質量在很大程度上取決於給定用戶任務的有效計劃和推理功能。儘管傳統的抹布技術很強大,但合併代理工作流程可以顯著增強系統處理和響應查詢的能力。

在本文中,您將使用Phidata開源代理框架構建一個具有內存組件的代理抹布系統,以演示如何組合向量數據庫,即,QDRANT,QDRANT,嵌入模型和智能代理以改進結果。

學習目標

  • 了解並設計架構,以實現代理抹布系統所需的組件。
  • 如何將矢量數據庫和嵌入知識基礎創建模型集成到代理工作流程中?
  • 學會實現內存組件以改進上下文保留
  • 開發一個可以執行多個工具調用的AI代理,並根據用戶問題或使用Phidata決定選擇哪種工具。
  • 現實世界中的用例構建文檔分析助理代理商,該助理代理可以在知識庫中與知識庫和DuckDuckgo的個人信息進行交互,而在知識庫中沒有上下文。

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

目錄

  • 什麼是特工和抹布?
  • 什麼是Phidata?
  • 代理使用Phidata
  • 代理抹布的實時用例
  • 分步代碼實現:使用QDrant,OpenAI和Phidata的代理抹布
  • 代理抹布的優勢
  • 結論
  • 常見問題

什麼是特工和抹布?

在AI背景下的代理是旨在模仿類似人類的思維和計劃功能的組件。代理組件包括:

用Phidata建造代理抹布

  • 任務分解為可管理的子任務。
  • 關於要使用哪種工具並採取必要行動的智能決策。
  • 關於解決問題的最佳方法的推理。

抹布(檢索式的一代)將知識檢索與LLM功能相結合。當我們將代理集成到抹布系統中時,我們會創建一個強大的工作流程,可以:

用Phidata建造代理抹布

  • 明智地分析用戶查詢。
  • 將用戶文檔保存在知識庫或矢量數據庫中。
  • 為給定的用戶查詢選擇適當的知識源或上下文。
  • 計劃檢索和響應生成過程。
  • 通過內存組件維護上下文。

傳統抹布和代理抹布之間的關鍵區別在於決策層,該層決定如何處理每個查詢並與工具進行交互以獲取實時信息。

現在我們知道,有一個像Agentic抹布這樣的東西,我們如何構建它?讓我們分解。

什麼是Phidata?

Phidata是一個旨在構建,監視和部署代理工作流程的開源框架。它支持配備有內存,知識,工具和推理功能的多模式AI代理。它的模型 - 敏捷的體系結構可確保與各種大型語言模型(LLM)的兼容性,從而使開發人員能夠將任何LLM轉換為功能性AI代理。此外,Phidata允許您使用自己的雲(BYOC)方法部署代理工作流程,從而提供靈活性和對AI系統的控制。

Phidata的主要特徵包括能夠建立合作解決複雜問題的代理團隊的能力,用戶友好的代理UI無縫交互(Phidata Playground)以及對代理檢索效果(RAG)(RAG)和結構化輸出的內置支持。該框架還強調監視和調試,提供工具以確保強大而可靠的AI應用程序。

代理使用Phidata

探索基於代理的系統在現實世界應用中的變革力,利用Phidata來增強決策和任務自動化。

財務分析代理

通過整合諸如Yfinance之類的工具,Phidata允許創建可以獲取實時股票價格,分析財務數據並總結分析師建議的代理商。這些代理商通過提供最新的市場見解來協助投資者和分析師做出明智的決定。

Web搜索代理

Phidata還可以幫助開發能夠使用DuckDuckgo,Serpapi或Serper等搜索工具從Web中檢索實時信息的代理。這些代理可以通過採購最新數據來回答用戶查詢,從而使其對於研究和信息收集任務很有價值。

多模式代理

Phidata還支持多模式功能,從而可以創建分析圖像,視頻和音頻的代理。這些多模式代理可以處理諸如圖像識別,文本到圖像生成,音頻轉錄和視頻分析等任務,從而在各個領域提供多功能解決方案。對於文本形像或文本對視頻任務,可以集成DALL-E和REPLICATE等工具,而對於圖像到文本和視頻對文本任務,可以利用多模式的LLM,例如GPT-4,Gemini 2.0,Claude AI等。

代理抹布的實時用例

想像一下,您有針對創業公司的文檔,並希望創建一個聊天助手,該聊天助理可以根據該文檔回答用戶問題。為了使您的聊天機器人更聰明,還需要處理實時數據。通常,回答實時數據查詢需要重建知識庫或重建模型。

這是代理商發揮作用的地方。通過將知識庫與代理相結合,您可以創建一個代理抹布(檢索增強的生成)解決方案,不僅可以提高聊天機器人檢索準確答案的能力,還可以提高其整體性能。

用Phidata建造代理抹布

我們有三個主要組成部分組成我們的知識基礎。首先,我們有數據源,例如文檔頁面,PDF或我們要使用的任何網站。然後,我們擁有QDRANT,這是我們的矢量數據庫 - 就像一個智能存儲系統,可以幫助我們快速找到類似的信息。最後,我們擁有嵌入模型,該模型將我們的文本轉換為計算機可以更好地理解的格式。這三個組成部分進入了我們的知識庫,就像我們系統的大腦一樣。

現在,我們從Phidata定義了代理對象。

代理連接到三個組件:

  • 一個幫助它思考和計劃的推理模型(例如GPT-4,Gemini 2.0或Claude)。
  • 內存(sqlagentstorage),可幫助它記住以前的對話
  • 可以用來查找信息的工具(例如DuckDuckgo搜索)

注意:這裡的知識庫和DuckDuckgo都將充當工具,然後基於任務或用戶查詢,代理將採取行動用於生成響應的工具。默認情況下,嵌入模型也是OpenAI,因此我們將使用OpenAI – GPT-4O作為推理模型。

讓我們構建此代碼。

分步代碼實現:使用QDrant,OpenAI和Phidata的代理抹布

現在是時候建立一個可以在知識庫中與知識庫和DuckDuckgo的個人信息(網站)進行互動的DocumentAnalyzer助理代理商了。

步驟1:設置依賴項

要構建代理RAG工作流,我們需要安裝一些包括:

  • Phidata:定義代理對象和工作流執行。
  • Google生成的AI - 推理模型IE,Gemini 2.0 Flash
  • QDRANT - 將保存知識庫的矢量數據庫,然後用來檢索相關信息
  • DuckDuckgo - 用於提取實時信息的搜索引擎。
 PIP安裝Phidata Google-generativeai duckduckgo-search qdrant-client

步驟2:初始配置和設置API鍵

在此步驟中,我們將設置環境變量並收集所需的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'] =“ ”

步驟3:設置向量數據庫 - QDRANT

現在,您必須通過為矢量數據庫提供集合名稱,URL和API密鑰來初始化QDRANT客戶端。 QDRANT數據庫存儲並從網站上索引知識,使代理商可以根據用戶查詢執行相關信息的檢索。此步驟為您的代理設置數據層:

  • 創建群集:https://cloud.qdrant.io/
  • 在創建群集後,為群集命名並複制API密鑰。
  • 在Curl命令下,您可以復制端點URL。
 collection_name =“ AgentIc-rag”
qdrant_url =“ ”
qdrant_api_key =“ ”

vector_db = qdrant(
    collection = collection_name,
    url = qdrant_url,
    api_key = qdrant_api_key,
)

步驟4:創建知識庫

在這裡,您將定義代理商將吸引其知識的來源。在此示例中,我們正在建立一個文檔分析儀代理,該代理可以使我們的工作易於回答網站的問題。我們將使用QDrant文​​檔網站URL進行索引。

網站知識庫對象與QDRANT矢量數據庫進行交互,以存儲提供的URL的索引知識。然後,它將代理商加載到知識庫中以檢索。

注意:請記住,我們使用負載函數將數據源索引到知識庫。每個集合名稱只需運行一次,如果更改集合名稱並想要添加新數據,則只有此時間再次運行加載功能。

 url =“ https://qdrant.tech/documentation/overview/”

知識_base = weblotskinkegledebase(
    urls = [url],
    max_links = 10,
    vector_db = vector_db,
)

知識_base.load()#僅在創建集合之後運行一次,請評論此

步驟5:定義您的代理商

該代理為響應生成,信息檢索的知識庫和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,
)

步驟6:嘗試多個查詢

最後,代理準備處理用戶查詢。通過調用print_response()函數,您可以傳遞用戶查詢,並且代理通過從知識庫中檢索相關信息並處理它來做出響應。如果查詢不是來自知識庫,它將使用搜索工具。讓我們觀察變化。

查詢-1:來自知識庫

agent.print_response(
  “文檔中提到的索引技術是什麼?” 
  流= true
)

用Phidata建造代理抹布

在知識庫之外查詢2

 agent.print_response(
  “誰是維拉特·科利?” 
  流= true
)

用Phidata建造代理抹布

代理抹布的優勢

發現代理抹布的關鍵優勢,智能代理和關係圖結合在一起以優化數據檢索和決策。

  • 增強的推理能力可獲得更好的響應產生。
  • 智能工具選擇基於查詢上下文,例如知識庫和DuckDuckgo或任何其他工具,我們可以從中獲取可以提供給代理的上下文。
  • 可改善上下文意識的內存集成,可以記住並提取歷史對話消息。
  • 更好的計劃和任務分解,代理工作流的主要部分是完成任務並將其分解為子任務,然後做出更好的決策和行動計劃。
  • 與PDF,網站,CSV,文檔等各種數據源的靈活集成。

結論

使用內存組件實施代理抹佈為構建智能知識檢索系統和搜索引擎提供了可靠的解決方案。在本文中,我們探討了什麼是代理商和抹布,以及如何結合它們。通過代理抹布的組合,由於代理的決策能力,查詢路由會提高。

關鍵要點

  • 通過集成記憶,知識庫和動態查詢處理,發現使用Phidata的代理抹佈如何增強AI。
  • 學會用Phidata實施代理抹布,以產生有效的信息檢索和適應性響應。
  • Phidata數據庫提供了一個簡化的實現過程,其中只有30行核心代碼以及多模式(例如Gemini 2.0閃存)。
  • 內存組件對於維持上下文和提高響應相關性至關重要。
  • 多個工具的集成(知識庫,Web搜索)可以使靈活的信息檢索 - 矢量數據庫(例如QDRANT)提供高級索引功能,以進行有效搜索。

常見問題

Q1。 Phidata可以處理多模式任務,為此目的集成了哪些工具?

答:是的,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中文網其他相關文章!

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