Chat imbriqué dans Autogen: construire des interactions proxy IA plus réactives et plus réactives
Les progrès de l'intelligence artificielle (IA) ont permis aux chatbots de se développer rapidement. Aujourd'hui, avec l'avènement des agents de l'IA, les chatbots sont capables de gérer des interactions plus complexes et en couches, bien au-delà des limites des conversations traditionnelles. Dans notre article précédent, créant un chatbot multi-agents avec Autogen, nous explorons le concept de chat séquentiel à l'aide d'Autogen, qui permet une communication rotative structurée entre plusieurs agents. Maintenant, sur la base de cela, nous allons passer à une fonctionnalité plus complexe: le chat imbriqué. Avec le cadre puissant d'Autogen, le dialogue imbriqué permet aux robots de maintenir une communication fluide plutôt que de suivre un ordre fixe. Ils peuvent se plonger dans d'autres outils dans un seul flux de conversation, gérer les interruptions et récupérer en douceur. Cet article vous guidera pour implémenter des chats imbriqués dans Autogen et met en évidence sa pertinence dans la création d'interactions proxy dynamiques réactives.
Comprenons d'abord ce qu'est le chat imbriqué.
Considérez un chat proxy triple où deux conversations proxy sont nécessaires pour s'engager à plusieurs reprises dans des conversations circulaires. Des chats entre ces deux agents peuvent être ajoutés aux chats imbriqués. Après avoir terminé cette conversation distincte, l'agent peut ramener le contexte à la conversation principale.
La figure suivante montre le processus de conversion des chats imbriqués.
Lorsqu'un message entrant déclenche une condition, le message entre dans un chat imbriqué. Le chat imbriqué peut être un chat double proxy, un chat séquentiel ou tout autre chat. Les résultats du chat du chat imbriqué seront ensuite renvoyés à la conversation principale.
Dans cet article, nous utiliserons le chat imbriqué pour construire un système d'écriture d'article. Pour ce faire, nous créerons trois agents - un pour rédiger un plan d'article, un pour rédiger un article de ce plan et un pour avoir examiné l'article. Nous voulons que l'écrivain et les critiques se parlent plusieurs fois, nous avons donc mis ces deux agents dans un chat imbriqué.
De plus, nous fournirons au proxy de profil la permission d'accéder à l'outil de requête réseau.
Maintenant, faisons cela avec le code.
Avant de construire le proxy Autogen, assurez-vous d'avoir les clés API nécessaires pour le LLM requis. Dans cet exercice, nous utiliserons également Tavily pour rechercher le réseau.
Chargez le fichier .env avec la clé API requise. Ici, nous utiliserons Openai et Tavily API Key ().
<code>from dotenv import load_dotenv load_dotenv('/home/santhosh/Projects/courses/Pinnacle/.env')</code>
Définissez le LLM à utiliser comme config_list
<code>config_list = { "config_list": [{"model": "gpt-4o-mini", "temperature": 0.2}] }</code>
Gesteur requis
autogène-agentchat - 0.2.37
Tavily-python - 0.5.0
Maintenant, commençons à l'implémenter.
Définissez User_Proxy Proxy, qui exécutera également l'outil. Utilisez ensuite LLM pour définir le plan pour générer le plan de l'article.
<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>
Définissez la fonction web_search pour interroger le réseau.
<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>
Utilisez l'exécuteur user_proxy pour enregistrer la fonction web_search sur le proxy de contour.
Nous définissons l'exécuteur exécuteur sur user_proxy afin que nous puissions consulter le plan envoyé à l'agent de l'écrivain.
<code>register_function( web_search, caller=outline, # 助手代理可以建议调用。 executor=user_proxy, # 用户代理可以执行调用。 name="web_search", # 默认情况下,函数名称用作工具名称。 description="搜索互联网以获取给定查询的结果", # 工具的描述。 )</code>
Définissez un agent pour générer du contenu de l'article et un autre pour examiner les articles et fournir des suggestions d'amélioration.
<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>
Nous pouvons maintenant enregistrer des chats imbriqués pour les deux agents.
<code>writer.register_nested_chats( trigger=user_proxy, chat_queue=[ { "sender": reviewer, "recipient": writer, "summary_method": "last_msg", "max_turns": 2, } ], )</code>
Dans le code ci-dessus, cela déclenchera le chat imbriqué lorsque user_proxy envoie un message au proxy de l'écrivain. L'agent de l'écrivain rédigera alors l'article et l'agent examinateur examinera l'article plusieurs fois sur la base de Max_turns (deux fois dans ce cas). Enfin, les résultats du chat imbriqué seront renvoyés à l'agent utilisateur.
Maintenant que tout est configuré, commençons le chat
<code>chat_results = user_proxy.initiate_chats( [{"recipient": outline, "message": "撰写一篇关于微软发布的Magentic-One代理系统的文章。", "summary_method": "last_msg", }, {"recipient": writer, "message": "这是文章提纲", "summary_method": "last_msg", }])</code>
Ici, nous rédigerons un article sur le système d'agent magentic-one. Tout d'abord, le proxy user_proxy commencera à discuter avec le proxy de contour, puis commencera à discuter avec le proxy de l'écrivain.
Maintenant, la sortie du code ci-dessus ressemblera à ceci:
Comme nous pouvons le voir, user_proxy envoie d'abord un message au proxy de contour expliquant le sujet de l'article. Cela déclenchera l'appel de l'outil et user_proxy exécute l'outil. Sur la base de ces résultats, l'agent de contour génère un contour et l'envoie à l'agent de l'écrivain. Après cela, la conversation imbriquée entre l'agent de l'écrivain et l'agent examinateur se poursuivra comme indiqué ci-dessus.
Maintenant, imprimons le résultat final, c'est-à-dire l'article sur Magic-one.
<code>print(chat_results[1].chat_history[-2]['content'])</code>
Le chat imbriqué dans Autogen améliore la fonctionnalité des chatbots en permettant des interactions multitâches complexes dans un seul processus de conversation. Le chat imbriqué permet aux bots de démarrer des chats dédiés séparés et d'intégrer de manière transparente leur sortie. Cette fonctionnalité prend en charge les réponses dynamiques et ciblées à une variété d'applications, du commerce électronique aux soins de santé. Avec le chat imbriqué, Autogen ouvre la voie à des systèmes d'IA plus réactifs et compatibles. Cela permet aux développeurs de créer des chatbots complexes qui peuvent répondre efficacement à une variété de besoins des utilisateurs.
Si vous voulez en savoir plus sur les agents de l'IA, consultez notre programme exclusif d'agent AI Pioneer!
Q1. A. Le chat imbriqué dans Autogen permet aux chatbots de gérer plusieurs sous-conversations dans un processus de chat, impliquant souvent d'autres agents ou outils pour récupérer des informations spécifiques. Contrairement aux chats séquentiels qui suivent des approches structurées et rotatives, les chats imbriqués permettent aux bots de gérer les interruptions et les tâches parallèles et intégrer leur sortie dans la conversation principale.
Q2. Comment le chat imbriqué améliore-t-il le support client dans votre application? A. Le chat imbriqué améliore le support client en permettant aux robots de déléguer des tâches aux agents professionnels. Par exemple, dans le commerce électronique, un chatbot peut consulter un agent distinct pour vérifier l'état de la commande ou les informations du produit, puis transférer les informations à l'utilisateur de manière transparente, en garantissant une réponse plus rapide et plus précise.
Q3. Quels sont les principaux cas d'utilisation de chat imbriqué dans différentes industries? A. Le chat imbriqué peut être appliqué à différentes industries. Dans le secteur bancaire, il fournit un soutien professionnel pour les demandes de renseignements sur les comptes et les prêts; Cette flexibilité rend le chat imbriqué adapté à n'importe quel domaine où le multitâche et le traitement détaillé de l'information sont nécessaires.
Q4. A. Oui, la mise en œuvre du chat imbriqué dans Autogen nécessite de configurer un proxy à l'aide de clés API spécifiques, telles que des modèles de langage ou des outils de recherche Web comme Tavily. De plus, chaque agent doit définir les tâches et outils appropriés pour une exécution fluide des conversations imbriquées.
Q5. A. Oui, Autogen permet de suivre les coûts encourus par chaque agent dans le chat imbriqué. En accédant cost
dans les résultats du chat, les développeurs peuvent surveiller les dépenses liées aux interactions proxy, aidant à optimiser l'utilisation et l'efficacité des ressources des chatbots.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!