優化基於代理的系統:結構輸入和輸出以提高性能
想提高基於代理的系統的性能嗎?一個關鍵策略是精心構建代理之間交換的輸入和中間輸出。本文詳細介紹瞭如何組織輸入,利用佔位持有人進行數據傳輸,並結構輸出以確保每個代理都能提供預期的結果。通過優化這些元素,您將獲得代理系統的更一致和可靠的結果。代理系統利用多個代理人協作,交流和解決問題的能力超過單個LLM的功能。本指南使用Crewai,Pydantic模型和JSON在多代理上下文中構建輸出(和輸入)。
Pydantic庫提供的Pydantic模型是設計用於數據解析和驗證的Python對象。它們可以創建Python類(模型),該類別在實例化時自動驗證數據,從而確保輸入數據匹配預期類型和約束。這樣可以確保可靠的結構化數據處理。
關鍵功能:
特徵 | 描述 |
---|---|
數據驗證 | 驗證針對預期類型(例如, int , str , list )和自定義規則的輸入數據。 |
自動類型轉換 | 自動將兼容的數據類型轉換為datetime.date (例如,“ 2024-10-27”)。 |
數據序列化 | 將數據序列化為JSON等格式,簡化了API交互。 |
預設值 | 允許靈活輸入處理的可選字段或默認值。 |
讓我們創建一個從Pydantic的BaseModel
繼承的UserModel
。實例化類需要一個整數id
,一個字符串name
和電子郵件地址。
來自Pydantic Import Basemodel 類Usermodel(basemodel): id:int 名稱:str 電子郵件:str #有效輸入 有效_user = usermodel(id = 1,name =“ vidhya”,email =“ vidhya@example.com”) 打印(有效_user) #無效輸入(提出驗證錯誤) 嘗試: invalid_user = usermodel(id =“一個”,name =“ vidhya”,email =“ vidhya@example.com”) 除了e:e: 打印(f“驗證錯誤:{e}”)
這證明了當提供錯誤的數據類型時,Pydantic的錯誤處理。
讓我們探索可選,日期和默認值功能:
來自Pydantic Import Basemodel 從輸入導入可選 從DateTime導入日期 類EventModel(basemodel): event_name:可選[str] =無#可選字段 event_loc:str =“印度”#默認值 event_date:日期 #自動轉換 event = eventmodel(event_date =“ 2024-10-27”) 打印(事件)
這顯示了可選字段和自動類型轉換。
安裝Crewai:
PIP安裝CREWAI
在定義代理和任務時,使用變量名稱在捲曲括號{}
中格式化。設置human_input=True
提示用戶以獲取輸出反饋。以下是回答物理問題的代理和任務的示例:
來自Crewai進口代理,任務,機組人員 導入操作系統 os.environ ['openai_api_key'] =''#用鑰匙替換 os.environ ['OpenAi_Model_name'] ='GPT-4O-MINI-2024-07-18'#或您的首選模型 #...(原始示例中的代理和任務定義)...
輸入通過crew.kickoff()
中的inputs
參數傳遞。
讓我們創建代理來收集用戶詳細信息(名稱,電子郵件,電話,作業)。將輸出構建為Pydantic模型或JSON定義了預期的輸出格式,以確保後續代理接收結構化數據。
來自Pydantic Import Basemodel 從輸入導入列表 #...(pydantic模型定義如原始示例中)... #...(如原始示例中的代理和任務定義,使用output_pydantic和output_json)...
最終代理結合了所有詳細信息,使用output_file
將輸出保存到文件。
本文強調了使用Pydantic和Crewai在多代理系統中結構輸入和輸出的重要性。結構良好的數據可增強性能,可靠性並防止錯誤。這些策略為複雜的任務建立了更強大的代理系統。
Q1。什麼是基於代理的系統?基於代理的系統使用多種代理來解決問題,超過了單個LLM的功能。
Q2。什麼是克魯伊? Crewai是管理代理系統,簡化代理協作和數據處理的框架。
Q3。如何在Crewai中輸入圖像?一種方法是提供圖像URL作為輸入變量。
Q4。什麼是pydantic模型? Pydantic模型驗證數據并序列化數據,以確保基於代理的系統中的數據完整性。
Q5。如何使用Pydantic構建輸出?定義Pydantic模型中的預期輸出字段,以確保對後續代理的數據格式一致。
以上是使用CREWAI在多代理系統中構建輸入和輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!