搜尋
首頁科技週邊人工智慧與Autogen建立多代理嵌套聊天的4個步驟

AutoGen中的嵌套式聊天:構建更具響應性和動態性的AI代理交互

人工智能(AI)的進步使聊天機器人得到了飛速發展。如今,隨著AI代理的出現,聊天機器人能夠處理更複雜、更分層的交互,遠遠超出了傳統對話的限制。在我們之前的文章《使用AutoGen構建多代理聊天機器人》中,我們探討了使用AutoGen進行順序聊天的概念,該概念允許在多個代理之間進行結構化、輪流式的通信。現在,在此基礎上,我們將轉向一個更複雜的功能:嵌套式聊天。借助AutoGen強大的框架,嵌套式對話使機器人能夠保持流暢的交流,而不是遵循固定的順序。它們可以在單個對話流程中深入研究其他工具,處理中斷並順利恢復。本文將指導您在AutoGen中實現嵌套式聊天,並重點介紹其在創建響應式、動態代理交互中的相關性。

目錄

  • 什麼是嵌套式聊天?
  • 在AutoGen中實現嵌套式聊天
    • 先決條件
    • 步驟1:使用工具定義輪廓代理
    • 步驟2:定義編寫者和審閱者代理
    • 步驟3:註冊嵌套式聊天
    • 步驟4:啟動嵌套式聊天
  • 常見問題解答

什麼是嵌套式聊天?

讓我們首先了解什麼是嵌套式聊天。

考慮一個三方代理聊天,其中需要兩個代理反復進行循環對話。這兩個代理之間的聊天可以添加到嵌套式聊天中。完成此單獨的對話後,代理可以將上下文帶回到主對話中。

下圖顯示了嵌套式聊天的轉換流程。

4 Steps to Build Multi-Agent Nested Chats with AutoGen

當傳入的消息觸發某個條件時,該消息將進入嵌套式聊天。該嵌套式聊天可以是雙代理聊天、順序聊天或其他任何聊天。然後,嵌套式聊天的聊天結果將發送回主對話。

在AutoGen中實現嵌套式聊天

在本文中,我們將使用嵌套式聊天構建一個文章寫作系統。為此,我們將創建三個代理——一個用於編寫文章提綱,一個用於根據此提綱編寫文章,另一個用於審閱文章。我們希望編寫者和審閱者多次互相交談,因此我們將這兩個代理放在嵌套式聊天中。

此外,我們還將向輪廓代理提供訪問網絡查詢工具的權限。

現在,讓我們用代碼來實現這一點。

先決條件

在構建AutoGen代理之前,請確保您擁有所需LLM的必要API密鑰。在本練習中,我們還將使用Tavily搜索網絡。

使用所需的API密鑰加載.env文件。在這裡,我們將使用OpenAI和Tavily API密鑰()。

 <code>from dotenv import load_dotenv load_dotenv('/home/santhosh/Projects/courses/Pinnacle/.env')</code>

將要使用的LLM定義為config_list

 <code>config_list = { "config_list": [{"model": "gpt-4o-mini", "temperature": 0.2}] }</code>

所需的密鑰庫

autogen-agentchat – 0.2.37

Tavily-python – 0.5.0

現在,讓我們開始實現。

步驟1:使用工具定義輪廓代理

定義user_proxy代理,它還將執行工具。然後使用LLM定義輪廓代理來生成文章提綱。

 <code>from autogen import ConversableAgent user_proxy = ConversableAgent( name="User", llm_config=False, is_termination_msg=lambda msg: msg.get("content") is not None and "TERMINATE" in msg["content"], human_input_mode="TERMINATE") outline = ConversableAgent( name="Article_outline", system_message="""您是一位经验丰富的內容策略師,負責為指定主題的文章創建詳細的提綱。您的目標是將文章組織成邏輯部分,以便清晰有效地傳達主要思想。如有需要,請使用web_search工具。任務完成後返回“TERMINATE”。""", llm_config=config_list, silent=False, )</code>

定義web_search函數以查詢網絡。

 <code>def web_search(query: str) -> str: tavily_client = TavilyClient() response = tavily_client.search(query, max_results=3, days=10, include_raw_content=True) return response['results']</code>

使用執行器user_proxy將web_search函數註冊到輪廓代理。

我們將執行器設置為user_proxy,以便我們可以審查發送給編寫者代理的提綱。

 <code>register_function( web_search, caller=outline, # 助手代理可以建议调用。 executor=user_proxy, # 用户代理可以执行调用。 name="web_search", # 默认情况下,函数名称用作工具名称。 description="搜索互联网以获取给定查询的结果", # 工具的描述。 )</code>

步驟2:定義編寫者和審閱者代理

定義一個代理來生成文章內容,另一個代理來審閱文章並提供改進建議。

 <code>writer = ConversableAgent( name="Article_Writer", system_message="""您是一位熟练的作家,负责根据给定的提纲创作一篇全面、引人入胜的文章。您的目标是遵循提纲中提供的结构,用经过充分研究、清晰且内容翔实的內容扩展每个部分。保持文章长度约为500字。如有需要,請使用web_search工具。任務完成後返回“TERMINATE”。""", llm_config=config_list, silent=False, ) reviewer = ConversableAgent( name="Article_Reviewer", system_message="""您是一位熟练的技术文章审阅者。审阅给定的文章,并提供建议以使文章更具吸引力和趣味性。""", llm_config=config_list, silent=False, )</code>

步驟3:註冊嵌套式聊天

現在,我們可以為兩個代理註冊嵌套式聊天。

 <code>writer.register_nested_chats( trigger=user_proxy, chat_queue=[ { "sender": reviewer, "recipient": writer, "summary_method": "last_msg", "max_turns": 2, } ], )</code>

在上面的代碼中,當user_proxy向writer代理髮送任何消息時,這將觸發嵌套式聊天。然後,writer代理將編寫文章,reviewer代理將根據max_turns(在本例中為兩次)多次審閱文章。最後,嵌套式聊天的結果將發送回用戶代理。

步驟4:啟動嵌套式聊天

現在一切設置就緒,讓我們啟動聊天

<code>chat_results = user_proxy.initiate_chats( [{"recipient": outline, "message": "撰写一篇关于微软发布的Magentic-One代理系统的文章。", "summary_method": "last_msg", }, {"recipient": writer, "message": "这是文章提纲", "summary_method": "last_msg", }])</code>

在這裡,我們將撰寫一篇關於Magentic-One代理系統的文章。首先,user_proxy代理將與輪廓代理啟動聊天,然後與編寫者代理啟動聊天。

現在,上述代碼的輸出將如下所示:

4 Steps to Build Multi-Agent Nested Chats with AutoGen

正如我們所看到的,user_proxy首先向輪廓代理髮送一條消息,說明文章的主題。這將觸發工具調用,user_proxy執行該工具。根據這些結果,輪廓代理將生成提綱並將其發送給編寫者代理。之後,編寫者代理和審閱者代理之間的嵌套式聊天將按上述討論繼續進行。

現在,讓我們打印最終結果,即關於magentic-one的文章。

 <code>print(chat_results[1].chat_history[-2]['content'])</code>

4 Steps to Build Multi-Agent Nested Chats with AutoGen

結論

AutoGen中的嵌套式聊天通過在單個對話流程中實現複雜的多任務交互來增強聊天機器人的功能。嵌套式聊天允許機器人啟動單獨的專用聊天並將它們的輸出無縫集成。此功能支持各種應用程序(從電子商務到醫療保健)的動態、有針對性的響應。借助嵌套式聊天,AutoGen為更具響應性、上下文感知的AI系統鋪平了道路。這使開發人員能夠構建能夠有效滿足各種用戶需求的複雜聊天機器人。

如果您想了解有關AI代理的更多信息,請查看我們獨家推出的代理式AI先鋒計劃!

常見問題解答

Q1. AutoGen中的嵌套式聊天是什麼,它與順序聊天有何不同? A. AutoGen中的嵌套式聊天允許聊天機器人在一個聊天流程中管理多個子對話,通常涉及其他代理或工具來檢索特定信息。與遵循結構化、輪流式方法的順序聊天不同,嵌套式聊天使機器人能夠處理中斷和並行任務,並將它們的輸出集成回主對話中。

Q2. 嵌套式聊天如何改進應用程序中的客戶支持? A. 嵌套式聊天通過允許機器人將任務委託給專業代理來改進客戶支持。例如,在電子商務中,聊天機器人可以諮詢單獨的代理來檢查訂單狀態或產品信息,然後將信息無縫地轉發給用戶,從而確保更快、更準確的響應。

Q3. 嵌套式聊天在不同行業的關鍵用例是什麼? A. 嵌套式聊天可以應用於不同的行業。在銀行業,它為賬戶和貸款查詢提供專業支持;在人力資源部門,它協助入職任務;在醫療保健領域,它處理預約安排和賬單查詢。這種靈活性使嵌套式聊天適合任何需要多任務處理和詳細信息處理的領域。

Q4. 我是否需要任何特定設置才能在AutoGen中實現嵌套式聊天? A. 是的,在AutoGen中實現嵌套式聊天需要使用特定的API密鑰配置代理,例如語言模型或Tavily等網絡搜索工具。此外,每個代理都必須定義適當的任務和工具,以便順利執行嵌套式對話。

Q5. 我可以在AutoGen中跟踪與每個嵌套式聊天代理相關的成本嗎? A. 是的,AutoGen允許跟踪嵌套式聊天中每個代理產生的成本。通過訪問聊天結果中的cost屬性,開發人員可以監控與代理交互相關的支出,從而幫助優化聊天機器人的資源使用率和效率。

以上是與Autogen建立多代理嵌套聊天的4個步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
及時工程中的思想圖是什麼及時工程中的思想圖是什麼Apr 13, 2025 am 11:53 AM

介紹 在迅速的工程中,“思想圖”是指使用圖理論來構建和指導AI的推理過程的新方法。與通常涉及線性S的傳統方法不同

優化您的組織與Genai代理商的電子郵件營銷優化您的組織與Genai代理商的電子郵件營銷Apr 13, 2025 am 11:44 AM

介紹 恭喜!您經營一家成功的業務。通過您的網頁,社交媒體活動,網絡研討會,會議,免費資源和其他來源,您每天收集5000個電子郵件ID。下一個明顯的步驟是

Apache Pinot實時應用程序性能監視Apache Pinot實時應用程序性能監視Apr 13, 2025 am 11:40 AM

介紹 在當今快節奏的軟件開發環境中,確保最佳應用程序性能至關重要。監視實時指標,例如響應時間,錯誤率和資源利用率可以幫助MAIN

Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Apr 13, 2025 am 11:23 AM

“您有幾個用戶?”他扮演。 阿爾特曼回答說:“我認為我們上次說的是每週5億個活躍者,而且它正在迅速增長。” “你告訴我,就像在短短幾週內翻了一番,”安德森繼續說道。 “我說那個私人

pixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析Vidhyapixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析VidhyaApr 13, 2025 am 11:20 AM

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

生成AI應用的代理框架 - 分析Vidhya生成AI應用的代理框架 - 分析VidhyaApr 13, 2025 am 11:13 AM

想像一下,擁有一個由AI驅動的助手,不僅可以響應您的查詢,還可以自主收集信息,執行任務甚至處理多種類型的數據(TEXT,圖像和代碼)。聽起來有未來派?在這個a

生成AI在金融部門的應用生成AI在金融部門的應用Apr 13, 2025 am 11:12 AM

介紹 金融業是任何國家發展的基石,因為它通過促進有效的交易和信貸可用性來推動經濟增長。交易的便利和信貸

在線學習和被動攻擊算法指南在線學習和被動攻擊算法指南Apr 13, 2025 am 11:09 AM

介紹 數據是從社交媒體,金融交易和電子商務平台等來源的前所未有的速度生成的。處理這種連續的信息流是一個挑戰,但它提供了

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具