介紹
人工智能進入了一個新時代。模型將基於預定義的規則輸出信息的日子已經一去不復返了。當今AI中的尖端方法圍繞著抹布(檢索增強的生成)系統,更具體地說,是使用代理智能檢索,分析和驗證信息的使用。這是智能數據檢索的未來 - 機器學習模型不僅回答問題,而且以前所未有的精度和深度來回答問題。
在此博客中,我們將研究如何使用Crewai和Langchain建立自己的代理驅動的破布系統,這是兩種最有力的工具,這些工具徹底改變了我們與AI互動的方式。但是,在我們研究代碼之前,讓我們熟悉這些改變遊戲規則的技術。
學習成果
- 通過實時數據檢索來了解抹布的基礎及其在提高AI準確性方面的作用。
- 探索了CREWAI的功能及其專業代理如何促進AI系統中有效的任務自動化。
- 了解Langchain如何實現任務鏈接,從而創建邏輯工作流,從而增強AI驅動的過程。
- 發現瞭如何使用Llama 3,Groq API,Crewai和Langchain等工具來構建代理抹布系統,以獲取可靠且智能的信息檢索。
本文作為數據科學博客馬拉鬆的一部分發表。
目錄
- 介紹
- 什麼是檢索的一代?
- 什麼是克魯伊?
- 什麼是蘭班?
- Crewai Langchain:抹布的夢想團隊
- 建立自己的代理抹布系統
- 步驟1:設置環境
- Step2:添加GROQ API密鑰
- 步驟3:設置LLM
- 步驟3:從PDF檢索數據
- 步驟4:創建通過PDF的抹布工具
- 步驟5:用tavily添加Web搜索
- 步驟6:定義路由器工具
- 步驟7:創建代理商
- 步驟8:定義任務
- 步驟9:建立船員
- 步驟10:運行管道
- 結論
- 常見問題
什麼是檢索的一代?
抹布代表了現代AI中的一種混合方法。與僅依賴於培訓中易於存在的知識的傳統模型不同,RAG系統從外部數據源(例如數據庫,文檔或網絡)中汲取實時信息來增強其響應。
簡而言之,抹布系統不僅猜測或依賴它“知道”的內容,還可以積極檢索相關的,最新的信息,然後基於它產生連貫的響應。這樣可以確保AI的答案不僅準確,而且基於真實的,可驗證的事實。
為什麼抹布很重要?
- 動態信息: RAG允許AI從外部來源獲取當前的實時數據,從而使其更加響應和最新。
- 提高的準確性:通過檢索和引用外部文檔,RAG降低了模型產生幻覺或不准確答案的可能性。
- 增強的理解:相關背景信息的檢索提高了AI提供詳細,知情回應的能力。
現在,您已經了解了抹布是什麼,請想像一下代理 - AI的AI實體處理特定任務,例如檢索數據,評估其相關性或驗證其準確性。這是Crewai和Langchain發揮作用的地方,使過程變得更加精簡和強大。
什麼是克魯伊?
將Crewai視為精心策劃代理團隊的智能經理。每個代理商都專門從事特定任務,無論是檢索信息,對其相關性進行評分還是過濾錯誤。當這些代理商合作時,魔術就會發生 - 一起工作以處理複雜的查詢並提供精確,準確的答案。
Crewai為什麼是革命性的?
- 代理情報: Crewai將任務分解為專業的子任務,將每個任務分配給唯一的AI代理。
- 協作AI:這些代理人互動,彼此之間的信息和任務,以確保最終結果是強大而值得信賴的。
- 可定制和可擴展的: Crewai是高度模塊化的,使您可以構建可以適應各種任務的系統 - 無論是回答簡單的問題還是進行深入研究。
什麼是蘭班?
儘管Crewai帶來了代理商的智能,但Langchain使您能夠構建將AI任務融合在一起的工作流程。它確保代理商以正確的順序執行任務,從而創建無縫,精心策劃的AI流程。
為什麼Langchain至關重要?
LLM編排:Langchain與各種大型語言模型(LLMS)一起工作,從Openai到擁抱的臉,從而實現了複雜的自然語言處理。
- 數據靈活性:您可以將Langchain連接到從PDF到數據庫和Web搜索的不同數據源,以確保AI可以訪問最相關的信息。
- 可伸縮性:使用Langchain,您可以構建每個任務導致下一個任務的管道 - 完善的AI操作(如多步驟問題答案或研究)。
Crewai Langchain:抹布的夢想團隊
通過將CREWAI基於代理的框架與Langchain的任務編排相結合,您可以創建一個強大的代理抹布系統。在此系統中,每個代理都扮演角色 - 無論是獲取相關文檔,驗證檢索到的信息的質量還是為準確性的評分答案。這種分層方法可確保響應不僅準確,而且基於最相關和最新信息。
讓我們前進並建立一個由代理動力的抹布系統,該系統使用AI代理的管道回答複雜問題。
建立自己的代理抹布系統
現在,我們將開始在下面逐步構建自己的代理抹布系統:
潛入代碼之前,讓我們安裝必要的庫:
! ! !
步驟1:設置環境
我們首先導入必要的庫:
來自langchain_openai進口chatopenai 導入操作系統 從crewai_tools導入pdfsearchtool 來自langchain_community.tools.tavily_search導入tavilySearchResults 從Crewai_tools導入工具 來自Crewai進口工作人員 從Crewai進口任務 來自Crewai進口代理
在此步驟中,我們進口:
- Chatopenai:與Llama等大型語言模型進行交互的界面。
- PDFSearchTool:從PDF搜索和檢索信息的工具。
- TavilySearchResults:用於檢索基於Web的搜索結果。
- 機組人員,任務,代理: Crewai的核心組件,使我們能夠協調代理和任務。
Step2:添加GROQ API密鑰
要訪問GROQ API,通常需要通過生成API密鑰來驗證。您可以通過登錄GROQ控制台來生成此鍵。這是該過程的一般概述:
- 使用您的憑據登錄到GROQ控制台。
- 導航到API鍵:轉到可以管理API鍵的部分。
- 生成一個新密鑰:選擇創建或生成新API密鑰的選項。
- 保存API密鑰:生成後,請確保複製並安全地存儲密鑰,因為對API請求進行身份驗證需要。
此API鍵將在您的HTTP標頭中使用,以進行API請求,以與GROQ系統進行身份驗證和交互。
始終請參考官方GroQ文檔,以獲取與訪問API有關的具體詳細信息或其他步驟。
導入操作系統 os.environ ['groq_api_key'] ='添加groq api鍵'
步驟3:設置LLM
llm = chatopenai( openai_api_base =“ https://api.groq.com/openai/v1”, openai_api_key = os.environ ['groq_api_key'], model_name =“ llama3-8b-8192”, 溫度= 0.1, max_tokens = 1000, )
在這裡,我們定義了系統將使用的語言模型:
- Llama3-8B-8192:具有80億個參數的大型語言模型,使其足夠強大以處理複雜的查詢。
- 溫度:設置為0.1,以確保模型的輸出是高度確定性和精確的。
- 最大令牌:限制為1000個令牌,確保響應保持簡潔和相關。
步驟3:從PDF檢索數據
為了演示抹布的工作原理,我們下載了PDF並蒐索它:
導入請求 pdf_url ='https://proceedings.neurips.cc/paper_files/paper/paper/2017/file/3f5ee243547dee91fbd053c1c4a8445aaaaa paper.pdf' 響應= requests.get(pdf_url) 使用打開('attenstion_is_all_you_need.pdf','wb')作為文件: file.write(響應。
這將下載著名的“注意力是您需要的”紙,並在本地節省。我們將在以下步驟中使用此PDF進行搜索。
步驟4:創建通過PDF的抹布工具
在本節中,我們創建了一個抹布工具,該工具使用語言模型和嵌入者來搜索PDF,以進行語義理解。
- PDF集成: PDFSearchTool加載pdf(activate_is_all_you_need.pdf)進行查詢,從而允許系統從文檔中提取信息。
- LLM配置:我們使用Llama3-8B(通過GROQ的API)作為語言模型來處理用戶查詢並根據PDF內容提供詳細的答案。
- 嵌入式設置: HuggingFace的Baai/BGE-SMALL-EN-V1.5模型用於嵌入,使該工具能夠與PDF最相關的部分匹配查詢。
最後,rag_tool.run()函數是通過查詢執行的,例如“自我發揮機制在大語言模型中如何發展?”檢索信息。
rag_tool = pdfsearchtool(pdf ='/content/attenstion_is_all_you_need.pdf', config = dict( llm = dict( 提供者=“ groq”,#或Google,Openai,人類,Llama2,... config = dict( 型號=“ Llama3-8b-8192”, #溫度= 0.5, #top_p = 1, #stream = true, ), ), 嵌入= dict(dict)( 提供者=“ Huggingface”,#或Openai,Ollama,... config = dict( 型號=“ baai/bge-small-en-v1.5”, #task_type =“ retrieval_document”, #title =“嵌入”, ), ), ) ) rag_tool.run(“自我注意機制如何在大語言模型中發展?”)
步驟5:用tavily添加Web搜索
設置您的Tavily API密鑰,以啟用Web搜索功能:
導入操作系統 #設置Tavily API密鑰 os.environ ['tavily_api_key'] =“添加您的Tavily API密鑰” web_search_tool = tavilySearchResults(k = 3) web_search_tool.run(“大語言模型中的自我發揮機制是什麼?”)
該工具允許我們執行網絡搜索,最多檢索3個結果。
步驟6:定義路由器工具
@工具 def router_tool(問題): “”“路由器函數”“” 如果有問題的“自我注意”: 返回“矢量店” 別的: 返回'web_search'
路由器工具將查詢引導到矢量站(用於高技術問題)或Web搜索。它檢查查詢的內容並做出適當的決定。
步驟7:創建代理商
我們定義了一系列代理來處理查詢避開管道的不同部分:
路由器代理:
將問題路由到正確的檢索工具(PDF或Web搜索)。
router_agent = agent( 角色='路由器', 目標='路由用戶問題與矢量店或Web搜索', backstory =(( “您是將用戶問題路由到矢量店或Web搜索的專家。” “使用矢量店進行有關與檢索的一代有關的概念問題。” “您不必對與這些主題有關的問題中的關鍵字進行嚴格的態度。否則,請使用Web-Search。” ), 詳細= true, laster_delegation = false, llm = llm, )
獵犬代理:
從所選源(PDF或Web搜索)中檢索信息。
retiever_agent =代理( 角色=“ retriever”, 目標=“使用從矢量店檢索到的信息來回答問題”, backstory =(( “您是提問任務的助手。” “使用檢索到上下文中存在的信息回答問題。” “您必須提供一個明確的簡潔答案。” ), 詳細= true, laster_delegation = false, llm = llm, )
分級代理:
確保檢索到的信息相關。
grader_agent =代理( 角色='答案分級器', 目標='過濾出錯誤的檢索', backstory =(( “您是評估檢索文檔與用戶問題的相關性的分級人。” “如果文檔包含與用戶問題相關的關鍵字,請將其評為相關。” “這不必是一個嚴格的測試。您必須確保答案與問題有關。” ), 詳細= true, laster_delegation = false, llm = llm, )
幻覺分級機:
過濾幻覺(錯誤答案)。
幻覺_grader =代理( 角色=“幻覺分級機”, 目標=“過濾幻覺”, backstory =(( “您是一個幻覺分級,評估答案是否基於一組事實來紮根 /支持。” “確保您精心查看答案,並檢查提供的響應是否與提出的問題相對立” ), 詳細= true, laster_delegation = false, llm = llm, )
答案分手:
評分最終答案並確保其有用。
wonse_grader = agent( 角色=“答案分級器”, 目標=“從答案中濾除幻覺。”,, backstory =(( “您是評估答案是否對解決問題有用的分級人。” “確保您精心查看答案,並檢查對提出的問題是否有意義” “如果答案是相關的,則會產生清晰簡潔的回應。” “如果答案不相關,請使用'web_search_tool'執行WebSearch ), 詳細= true, laster_delegation = false, llm = llm, )
步驟8:定義任務
每個任務都被定義以將特定角色分配給代理:
路由器任務:
確定查詢是否應轉到PDF搜索或Web搜索。
router_task =任務( description =(“分析問題{問題}中的關鍵字”” “基於關鍵字,決定它是否符合矢量店搜索或Web搜索。” “返回一個單詞'vectorstore',如果它符合矢量店搜索的條件。” “如果有資格進行Web搜索,請返回單個單詞'WebSearch'。” “不要提供任何其他有利的或解釋。” ), Expect_output =(“基於問題給出二進制選擇'WebSearch'或“向量店”” “不要提供任何其他有利或解釋。”),,, agent = router_agent, 工具= [router_tool], )
檢索員任務:
檢索必要的信息。
retiever_task =任務( description =(“基於路由器任務的響應,借助相應的工具,{Question}提取信息。” “如果路由器任務輸出為'WebSearch',請使用Web_serach_tool從Web檢索信息。” “如果路由器任務輸出為'vectorStore',請使用rag_tool從向量存儲中檢索信息。” ), Exceels_output =(“您應該分析'Router_task'的輸出 “如果響應是'WebSearch',則使用Web_search_tool從網絡檢索信息。” “如果響應是'vectorstore',則使用rag_tool從矢量店檢索信息。” “返回劍術和共識文本作為響應。”),,, 代理= retiever_agent, context = [router_task], #工具= [retiever_tool], )
分級任務:
評分檢索的信息。
grader_task =任務( description =(“基於Quetion {Quartion}的回收者任務的響應,評估檢索內容是否與問題相關。” ), Exceeld_output =(“二進制分數'是'或'否'分數,以指示文檔是否與問題相關” “如果“ retriever_task”的響應與提出的問題保持一致,則必須回答'是'。” “如果'retriever_task'的響應與提出的問題不符,則必須回答'no'。” “除了'是'或'否'之外,不要提供任何序言或解釋。”), 代理= grader_agent, context = [retiever_task], )
幻覺任務:
確保答案是基於事實的。
幻覺_task =任務( description =(“基於Quetion {Quartion}的Grader任務的響應,評估答案是否在一組事實中接地 /支持。”),),),,),, Exceels_output =(“二進制分數'是'或'否'分數,以指示答案是否與問的問題同步” “答复'是',如果答案有用並包含有關提出問題的事實。” “答案'no',如果答案沒有用,並且不包含有關提出問題的事實。” “除了'是'或'否'之外,不要提供任何序言或解釋。”), 代理=幻覺_grader, context = [grader_task], )
答案任務:
提供最終答案或在需要時執行Web搜索。
答案_task =任務( description =(“基於對Quetion {Quartion}的幻覺任務的響應,評估答案是否對解決問題很有用。” “如果答案是'是',請返回一個清晰簡潔的答案。” “如果答案是'no',則執行'WebSearch'並返迴響應”),), Expect_Output =(“如果'幻覺_task'是'yes'的響應,請返回明確而簡潔的響應。” “使用'Web_search_tool'執行Web搜索,並僅在'幻覺_task''is'no'的響應時才返回清晰而簡潔的響應。” “否則回應為'對不起!找不到有效的響應'。”),), context = [幻覺_task], agent = wonse_grader, #tools = [wonse_grader_tool], )
步驟9:建立船員
我們將代理和任務分組為一個將管理整個管道的工作人員:
rag_crew = crew( 代理= [router_agent,retriever_agent,grader_agent,幻覺_grader,anding_grader], tasks = [router_task,retriever_task,grader_task,allucination_task,anding_task], 詳細= true, )
步驟10:運行管道
最後,我們提出一個問題並啟動抹布系統:
輸入= {“問題”:“自我發揮的機制如何幫助大型語言模型?”} 結果= rag_crew.kickoff(輸入=輸入) 打印(結果)
該管道通過代理來處理問題,檢索相關信息,過濾幻覺,並提供簡潔而相關的答案。
結論
抹布,克魯伊和蘭班的結合是對AI的未來的瞥見。通過利用代理智能和任務鏈接,我們可以構建更智能,更快,更準確的系統。這些系統不僅會生成信息 - 它們會積極檢索,驗證和過濾它,以確保響應質量的最高質量。
借助Crewai和Langchain等工具,可以使用智能,由代理驅動的AI系統構建智能的可能性。無論您是從事AI研究,自動化客戶支持還是任何其他數據密集型領域,代理抹布系統都是釋放新效率和準確性水平的關鍵。
您可以單擊此處訪問鏈接。
關鍵要點
- RAG系統將自然語言的生成與實時數據檢索相結合,確保AI可以從外部來源中獲取準確的,最新的信息,以獲得更可靠的響應。
- Crewai僱用了一個專業的AI代理團隊,每個團隊都負責不同的任務,例如數據檢索,評估和驗證,從而產生了高效,高效的代理系統。
- Langchain可以創建連接各種任務的多步驟工作流程,從而使AI系統可以通過大型語言模型(LLMS)的邏輯測序和編排更有效地處理信息。
- 通過將Crewai的代理框架與Langchain的任務鏈接相結合,您可以構建智能的AI系統,以實時檢索和驗證信息,從而顯著提高響應的準確性和可靠性。
- 該博客介紹了使用Llama 3,Groq API,Crewai和Langchain等高級工具創建自己的代理抹布系統的過程,這清楚了這些技術如何共同使用以自動化和增強AI-DRIENS解決方案。
常見問題
Q1。 Crewai如何為建築代理系統做出貢獻?A. Crewai精心策劃了多個AI代理,每個人都專門從事諸如檢索信息,驗證相關性和確保准確性之類的任務。
Q2。 Langchain在抹布系統中使用了什麼?答:Langchain創建了將AI任務鏈在一起的工作流程,以確保數據處理和檢索的每個步驟以正確的順序發生。
Q3。代理在抹布系統中的作用是什麼?A.代理處理特定任務,例如檢索數據,驗證其準確性和評分響應,使系統更加可靠和精確。
Q4。為什麼我要在抹布系統中使用groq API?答:GROQ API可訪問強大的語言模型,例如Llama 3,為複雜的任務提供了高性能的AI。
本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。
以上是代理抹布系統如何改變技術?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

利用“設備” AI的力量:建立個人聊天機器人CLI 在最近的過去,個人AI助手的概念似乎是科幻小說。 想像一下科技愛好者亞歷克斯(Alex)夢見一個聰明的本地AI同伴 - 不依賴

他們的首屆AI4MH發射於2025年4月15日舉行,著名的精神科醫生兼神經科學家湯姆·因斯爾(Tom Insel)博士曾擔任開幕式演講者。 Insel博士因其在心理健康研究和技術方面的傑出工作而聞名

恩格伯特說:“我們要確保WNBA仍然是每個人,球員,粉絲和公司合作夥伴,感到安全,重視和授權的空間。” anno

介紹 Python擅長使用編程語言,尤其是在數據科學和生成AI中。 在處理大型數據集時,有效的數據操作(存儲,管理和訪問)至關重要。 我們以前涵蓋了數字和ST

潛水之前,一個重要的警告:AI性能是非確定性的,並且特定於高度用法。簡而言之,您的里程可能會有所不同。不要將此文章(或任何其他)文章作為最後一句話 - 目的是在您自己的情況下測試這些模型

建立杰出的AI/ML投資組合:初學者和專業人士指南 創建引人注目的投資組合對於確保在人工智能(AI)和機器學習(ML)中的角色至關重要。 本指南為建立投資組合提供了建議

結果?倦怠,效率低下以及檢測和作用之間的差距擴大。這一切都不應該令任何從事網絡安全工作的人感到震驚。 不過,代理AI的承諾已成為一個潛在的轉折點。這個新課

直接影響與長期夥伴關係? 兩週前,Openai提出了強大的短期優惠,在2025年5月底之前授予美國和加拿大大學生免費訪問Chatgpt Plus。此工具包括GPT-4O,A A A A A


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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