搜尋
首頁科技週邊人工智慧如何使用Crewai和Ollama建立多代理系統?

介紹

不想在API上花錢,還是您擔心隱私?還是您只想在本地運行LLMS?不用擔心;本指南將幫助您使用完全免費的本地LLM構建代理和多代理框架。我們將探討如何使用Crewai和Ollama構建多代理系統,並查看Ollama可用的多個LLM。

如何使用Crewai和Ollama建立多代理系統?

概述

  • 本指南重點介紹使用Crewai和Ollama的本地LLM構建代理框架和多代理系統,提供了無需成本和隱私的解決方案。
  • 它介紹了與Crewai和Ollama的代理商和多代理框架的關鍵概念,並強調了它們在各個行業的自主,協作問題解決的角色中的作用。
  • Crewai被強調為在代理之間進行任務的高級框架。它使用結構化的角色,目標和內存管理來改善任務執行。
  • Ollama在本地啟用了運行語言模型,例如Llama2,Llama3和Llava,允許用戶繞過AI任務的雲服務。
  • 本文包括一個實用的示例,該示例是建立用於使用Crewai和Ollama的圖像分類,描述和信息檢索的多代理系統。
  • 結論強調了使用不同的LLM進行專業任務的好處,並展示了將Crewai和Ollama組合在當地環境中的靈活性。

目錄

  • 介紹
  • 代理商,代理框架和CREWAI
    • 代理框架
    • Crewai框架
    • CREWAI的關鍵優勢
    • 霍拉馬
  • 構建多代理系統
    • 目標
    • 成分
  • 讓我們構建我們的多代理系統
    • 導入所需的庫
    • 定義代理
    • 為每個代理定義任務
    • 與機組人員一起管理代理商和任務
  • 結論
  • 常見問題

代理商,代理框架和CREWAI

生成的AI已從基本的大語言模型(LLM)轉變為高級多代理系統。從理論上講,代理是能夠計劃,推理和行動而無需人類投入的自主系統。這些試劑旨在減少人類參與的同時擴大功能。

如何使用Crewai和Ollama建立多代理系統?

另請閱讀:2024年建造AI代理的前5個框架

代理框架

這些框架利用多個代理商協同工作,允許超過一次性代理能力的協作,溝通和解決問題。在這些框架中,代理具有不同的角色和目標,並且可以執行複雜的任務。諸如Crewai和Ollama之類的多代理框架對於大規模,動態和分佈的問題解決至關重要,使它們在機器人,金融,醫療保健等行業中具有適應性。

代理框架的關鍵組成部分

  • 代理體系結構:定義代理的內部結構,包括計劃,推理和通信協議。
  • 通信協議:通過消息和數據交換的代理協作方法。
  • 代理交互設計:代理協作的機制,包括任務分配和衝突解決方案。
  • 環境:代理相互作用的設置,通常包括外部工具和資源。

這些框架可實現模塊化和可擴展系統,使修改或添加代理變得容易適應不斷發展的需求。

Crewai框架

Crewai是一個先進的多代理框架,使多個代理商(稱為“機組人員”)可以通過任務編排進行協作。該框架將代理劃分為三個屬性:正確,目標和背景故事 - 對每個代理的功能有透徹的理解。這種結構化方法減輕了規格不足的風險,改善了任務定義和執行。

CREWAI的關鍵優勢

  • 明確的任務定義:任務定義明確,可確保每個代理商所做的事情。
  • 工具使用:特定於任務的工具先於代理級工具,創建更精細和受控的工具集。
  • 代理交互過程:CREWAI支持順序和分層代理協作過程。
  • 高級內存管理:該框架提供了短期,長期,實體和上下文記憶,從而促進了複雜的推理和學習。

另請閱讀:與Crewai建立協作AI代理商

霍拉馬

Ollama是在本地機器上構建和運行語言模型的框架。它易於使用,因為我們可以直接在設備上運行模型而無需基於雲的服務。對隱私不擔心。

Ollama互動:

我們可以運行PIP安裝Ollama命令將Ollama與Python集成。

現在,我們可以使用Ollama Pull命令下載模型以下載模型。

讓我們運行這些:

 Ollama拉拉馬2

Ollama拉拉馬3

Ollama拉拉瓦

現在,我們本地有3種大型語言模型(LLM):

  1. Llama 2 :Meta的開源大語模型。
  2. Llama 3 :Meta的Llama系列的最新迭代,進一步提高了具有增加參數大小和效率的複雜語言生成任務的功能。
  3. LLAVA :一種旨在圖像和文本理解任務的視覺語言模型。

我們可以通過運行Ollama Run Model-Name在本地使用這些模型,這是一個示例:

如何使用Crewai和Ollama建立多代理系統?

您可以按CTRL D退出。

另請閱讀:如何與Ollama在本地運行LLM模型?

構建多代理系統

讓我們開始構建以圖像為輸入的代理系統,並提供有關係統中動物的一些有趣事實。

目標

  1. 構建用於使用Crewai的圖像分類,描述和信息檢索的多代理系統
  2. 自動決策:代理執行特定任務,例如在圖像中識別動物,描述它們並獲取相關事實。
  3. 任務測序:通過逐步代理系統中的任務進行協調代理。

成分

  1. 分類器代理:標識輸入圖像是否包含使用LLAVA:7B模型的動物。
  2. 描述代理:描述圖像中的動物,也由llava提供動力:7b。
  3. 信息檢索代理:使用Llama2獲取有關動物的其他事實。
  4. 任務定義:每個任務都與特定代理有關,指導其動作。
  5. 機組管理:機組人員協調代理操作,執行任務並根據輸入圖像匯總結果

如何使用Crewai和Ollama建立多代理系統?

默認情況下,任務在Crewai中依次執行。您可以添加任務管理器來控制執行順序。此外,允許_ -Delegation功能允許代理要求其先前的代理在需要時再生響應。將內存設置為TRUE使代理可以從過去的交互中學習,您可以選擇配置任務以詢問有關輸出的人類反饋。

另請閱讀:與Crewai建立協作AI代理商

讓我們構建我們的多代理系統

在開始之前,讓我們安裝所有必要的軟件包:

 PIP安裝CREWAI

PIP安裝“ CREWAI [工具]'

PIP安裝Ollama

導入所需的庫

來自Crewai進口代理,任務,機組人員

導入pkg_resources

#獲取Crewai的版本

crewai_version = pkg_resources.get_distribution(“ crewai”)。版本

打印(crewai_version)
0.61.0

定義代理

在這裡,我們定義了三個具有特定角色和目標的代理商。每個代理都負責與圖像分類和描述有關的任務。

  • 分類器劑:檢查圖像是否包含動物,使用Llava:7b模型對動物進行分類。
  • 描述代理:描述圖像中的動物。這也使用相同的llava:7b模型,例如前面的代理。
  • 信息檢索代理:該代理檢索有關動物的其他信息或有趣的事實。它使用Llama2提供此信息。
 #1。圖像分類器代理(檢查圖像是否是動物)

classifier_agent =代理(

角色=“圖像分類器代理”,

目標=“確定圖像是否是動物”,

backstory =“”“”

您有動物的目光!您的工作是確定輸入圖像是否是動物的

或其他。

”“”,

llm ='ollama/llava:7b'#與圖像相關的任務的模型

)

#2。動物描述代理(描述圖像中的動物)

description_agent =代理(

角色=“動物描述代理{image_path}”,

目標=“描述圖像中的動物”,

backstory =“”“”

你愛自然和動物。您的任務是根據圖像描述任何動物。

”“”,

llm ='ollama/llava:7b'#與圖像相關的任務的模型

)

#3。信息檢索代理(獲取有關動物的其他信息)

info_agent =代理(

角色=“信息代理”,

目標=“提供有關某種動物的引人入勝的信息”,

backstory =“”“”

您非常擅長講有趣的事實。

如果您不知道,您不會提供任何錯誤的信息。

”“”,

llm ='ollama/llama2'#通用知識檢索模型

)

另請閱讀:生成AI應用程序的代理框架

為每個代理定義任務

每個任務都與一位代理有關。任務描述輸入,預期輸出以及哪個代理應處理。

  • 任務1 :對圖像是否包含動物進行分類。
  • 任務2 :如果將圖像歸類為動物,請描述它。
  • 任務3 :根據描述提供有關動物的其他信息。
 #任務1:檢查圖像是否是動物

任務1 =任務(

description =“對圖像進行分類({image_path}),並告訴我是否是動物。”,,

Exceels_output =“如果是動物,請說'動物';否則,說'不是動物'。

代理= clastifier_agent

)

#任務2:如果是動物,請描述

任務2 =任務(

描述=“描述圖像中的動物。({image_path})”,

Exceels_output =“給動物的詳細描述。”,

代理= description_agent

)

#任務3:提供有關動物的更多信息

任務3 =任務(

描述=“提供有關描述動物的其他信息。”,

Exceels_output =“至少提供5個有趣的事實或有關動物的信息。”,,

代理= info_agent

)

與機組人員一起管理代理商和任務

設立了機組人員來管理代理和任務。它依次協調任務,並基於代理的思想鏈提供結果。

 #機組人員管理代理和任務

船員=船員(

代理= [classifier_agent,description_agent,info_agent],,

任務= [task1,task2,task3],

冗長= true

)

#用提供的圖像路徑執行任務

結果= crew.kickoff(inputs = {'image_path':'racoon.jpg'})

如何使用Crewai和Ollama建立多代理系統?

我已經為Crewai框架提供了浣熊的圖像,這是我得到的輸出:

注意:確保圖像在工作目錄中,或者您可以提供完整的路徑。

輸出

#代理:圖像分類器代理<br><br>##任務:對圖像進行分類(Racoon.jpg),並告訴我它是否是動物。<br><br> #代理:圖像分類器代理<br><br>##最終答案:<br><br>根據我的分析,圖像(racoon.jpg)包含浣熊,<br> 確實是動物。因此,最終答案是“動物”。<br><br> #代理:動物說明代理racoon.jpg<br><br> ##任務:描述圖像中的動物。 (Racoon.jpg)<br><br> #代理:動物說明代理racoon.jpg<br><br> ##最終答案:<br><br>圖像(Racoon.jpg)具有浣熊,這是一種哺乳動物<br> 對各種環境的敏捷性和適應性。浣熊是特徵的<br> 通過他們獨特的黑色“面具”的眼睛和耳朵以及<br> 灰色或褐色的外套,臉部和爪子上有白色的標記。他們有<br> 相對較短的尾巴和小的圓耳。浣熊是雜食和<br> 具有高度靈巧的前爪,它們用來操縱物體。他們<br> 還以其智慧和解決問題的能力而聞名<br> 打開容器或攀登樹。<br><br> #代理:信息代理<br><br>##任務:提供有關描述動物的其他信息。<br><br> #代理:信息代理<br><br>##最終答案:<br><br>這是關於浣熊的5個有趣的事實:<br><br> 1。浣熊的前爪具有出色的靈巧性,他們用來<br> 用非常精確地操縱對象。實際上,研究表明<br> 浣熊能夠打開容器並執行其他任務<br> 人類的技能水平與人類相抗衡!<br><br> 2。儘管它們的外觀可愛,但浣熊還是強大的獵人,可以<br> 捕獲各種各樣的獵物,包括魚,昆蟲和小型哺乳動物。<br> 他們敏感的鼻子有助於他們在黑水中找到食物或<br> 草叢。<br><br> 3。浣熊具有高度適應性,可以在一系列棲息地中找到,<br> 從森林到沼澤到城市地區。他們甚至知道爬樹<br> 和在水中游泳!<br><br> 4。除了他們的智慧和解決問題的技能外,浣熊<br> 具有出色的記憶力,能夠識別並與之互動<br> 人類和其他動物。他們還可以學會執行技巧<br> 和通過培訓的任務。<br><br> 5。與許多其他哺乳動物不同,浣熊​​在冬季不冬眠<br> 月份。相反,他們進入了一個被稱為Torpor的休眠狀態,<br> 使他們能夠節省能源並在惡劣的天氣條件下生存。期間<br> 這次,他們的心率大大減慢了,大約每次70-80次<br> 只有10-20分鐘!<br><br>我希望這些有趣的事實將對<br> 迷人的浣熊物種!

分類器確認它是一種動物,然後是Llava:7b模型的代理描述了動物和圖像,然後將其順序傳遞給信息劑。儘管使用了基於文本的模型Llama2的信息代理,但它可以使用以前的代理商的上下文並提供有關浣熊的信息。

另請閱讀:與Llama 3.1,Ollama和Langchain建立響應式聊天機器人

結論

根據其優勢使用多個LLM是很好的,因為不同的模型在不同的任務上都表現出色。我們已經使用Crewai和Ollama展示了多代理協作,並在Ollama本地使用了LLMS。是的,出於明顯的原因,Ollama模型可能比基於雲的模型要慢,但是都有優點和缺點。代理框架的有效性取決於工作流以及正確的工具和LLM的使用來優化結果。

常見問題

Q1。什麼是crewai中的允許delegation?

Ans。設置為true時,此crewai參數使代理可以將任務分配給他人,從而實現複雜的任務流和協作。

Q2。 Crewai如何使用Pydantic對象?

Ans。 Crewai使用Pydantic對象來定義和驗證任務輸入/輸出數據結構,以確保代理以預期格式接收和生成數據。

Q3。 Crewai如何管理任務流和代理協作?

Ans。 Crewai通過將代理和任務組織到“機組人員”對像中來管理此操作,從而根據用戶定義的依賴項順序協調任務。

Q4。我可以與Crewai和Ollama一起使用自定義LLM嗎?

Ans。是的,兩者都支持自定義LLM。對於Crewai,在創建代理時指定模型路徑/名稱。對於Ollama,請關注他們的文檔構建和運行自定義模型。

以上是如何使用Crewai和Ollama建立多代理系統?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
AI內部部署的隱藏危險:治理差距和災難性風險AI內部部署的隱藏危險:治理差距和災難性風險Apr 28, 2025 am 11:12 AM

Apollo Research的一份新報告顯示,先進的AI系統的不受檢查的內部部署構成了重大風險。 在大型人工智能公司中缺乏監督,普遍存在,允許潛在的災難性結果

構建AI測謊儀構建AI測謊儀Apr 28, 2025 am 11:11 AM

傳統測謊儀已經過時了。依靠腕帶連接的指針,打印出受試者生命體徵和身體反應的測謊儀,在識破謊言方面並不精確。這就是為什麼測謊結果通常不被法庭採納的原因,儘管它曾導致許多無辜者入獄。 相比之下,人工智能是一個強大的數據引擎,其工作原理是全方位觀察。這意味著科學家可以通過多種途徑將人工智能應用於尋求真相的應用中。 一種方法是像測謊儀一樣分析被審問者的生命體徵反應,但採用更詳細、更精確的比較分析。 另一種方法是利用語言標記來分析人們實際所說的話,並運用邏輯和推理。 俗話說,一個謊言會滋生另一個謊言,最終

AI是否已清除航空航天行業的起飛?AI是否已清除航空航天行業的起飛?Apr 28, 2025 am 11:10 AM

航空航天業是創新的先驅,它利用AI應對其最複雜的挑戰。 現代航空的越來越複雜性需要AI的自動化和實時智能功能,以提高安全性,降低操作

觀看北京的春季機器人比賽觀看北京的春季機器人比賽Apr 28, 2025 am 11:09 AM

機器人技術的飛速發展為我們帶來了一個引人入勝的案例研究。 來自Noetix的N2機器人重達40多磅,身高3英尺,據說可以後空翻。 Unitree公司推出的G1機器人重量約為N2的兩倍,身高約4英尺。比賽中還有許多體型更小的類人機器人參賽,甚至還有一款由風扇驅動前進的機器人。 數據解讀 這場半程馬拉松吸引了超過12,000名觀眾,但只有21台類人機器人參賽。儘管政府指出參賽機器人賽前進行了“強化訓練”,但並非所有機器人均完成了全程比賽。 冠軍——由北京類人機器人創新中心研發的Tiangong Ult

鏡子陷阱:人工智能倫理和人類想像力的崩潰鏡子陷阱:人工智能倫理和人類想像力的崩潰Apr 28, 2025 am 11:08 AM

人工智能以目前的形式並不是真正智能的。它擅長模仿和完善現有數據。 我們不是在創造人工智能,而是人工推斷 - 處理信息的機器,而人類則

新的Google洩漏揭示了方便的Google照片功能更新新的Google洩漏揭示了方便的Google照片功能更新Apr 28, 2025 am 11:07 AM

一份報告發現,在谷歌相冊Android版7.26版本的代碼中隱藏了一個更新的界面,每次查看照片時,都會在屏幕底部顯示一行新檢測到的面孔縮略圖。 新的面部縮略圖缺少姓名標籤,所以我懷疑您需要單獨點擊它們才能查看有關每個檢測到的人員的更多信息。就目前而言,此功能除了谷歌相冊已在您的圖像中找到這些人之外,不提供任何其他信息。 此功能尚未上線,因此我們不知道谷歌將如何準確地使用它。谷歌可以使用縮略圖來加快查找所選人員的更多照片的速度,或者可能用於其他目的,例如選擇要編輯的個人。我們拭目以待。 就目前而言

加固芬特的指南 - 分析Vidhya加固芬特的指南 - 分析VidhyaApr 28, 2025 am 09:30 AM

增強者通過教授模型根據人類反饋進行調整來震撼AI的開發。它將監督的學習基金會與基於獎勵的更新融合在一起,使其更安全,更準確,真正地幫助

讓我們跳舞:結構化運動以微調我們的人類神經網讓我們跳舞:結構化運動以微調我們的人類神經網Apr 27, 2025 am 11:09 AM

科學家已經廣泛研究了人類和更簡單的神經網絡(如秀麗隱桿線蟲中的神經網絡),以了解其功能。 但是,出現了一個關鍵問題:我們如何使自己的神經網絡與新穎的AI一起有效地工作

See all articles

熱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

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

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。