首页 > 其他分享 >AutoGen入门-让两个AI自行聊天完成任务

AutoGen入门-让两个AI自行聊天完成任务

时间:2025-01-07 17:34:32浏览次数:1  
标签:情感 入门 autogen AI critic tokens AutoGen ----------

AutoGen介绍

AutoGen 是一个开源编程框架,用于构建 AI 代理并促进多个代理之间的合作以解决问题。AutoGen 旨在提供一个易于使用和灵活的框架,以加速代理型 AI 的开发和研究,就像 PyTorch 之于深度学习。它提供了诸如代理之间可以对话、LLM 和工具使用支持、自主和人机协作工作流以及多代理对话模式等功能。

主要特点

AutoGen使得基于多智能体对话构建下一代LLM应用程序变得非常容易。它简化了复杂LLM工作流的编排、自动化和优化。它最大化了LLM模型的性能并克服了它们的弱点。

它支持复杂工作流的各种对话模式。通过使用可定制和可对话的代理,开发人员可以使用AutoGen构建各种涉及对话自主性、代理数量和代理对话拓扑的对话模式。

它提供了一系列不同复杂度的运行系统。这些系统涵盖了来自不同领域和复杂度的各种应用程序。这展示了AutoGen如何轻松支持各种对话模式。

入门

现在AutoGen有两个版本,一个是0.2,是稳定版本,一个是0.4,是正在开发的版本。

本次入门使用的是开发版本。

首先创建一个Python虚拟环境:

python -m venv myenv

激活虚拟环境:

myenv\Scripts\activate

安装相关包:

pip install "autogen-agentchat==0.4.0.dev13"
pip install "autogen-ext[openai]==0.4.0.dev13"

后面运行时,会显示还缺少几个库,按照报错的信息,继续安装所需的包即可。

入门的例子是创建一个AI团队,一个当任务执行者,一个当评判者,当评判者觉得可以了,就停止对话,完成任务。

Python代码如下:

import asyncio

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.base import TaskResult
from autogen_agentchat.conditions import ExternalTermination, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.ui import Console
from autogen_core import CancellationToken
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def main():

    # Create an OpenAI model client.
    model_client = OpenAIChatCompletionClient(
        model="gpt-4o-2024-08-06",
        api_key="", # Optional if you have an OPENAI_API_KEY env variable set.
        )

    # Create the primary agent.
    primary_agent = AssistantAgent(
        "primary",
        model_client=model_client,
        system_message="You are a helpful AI assistant.",
    )

    # Create the critic agent.
    critic_agent = AssistantAgent(
        "critic",
        model_client=model_client,
        system_message="Provide constructive feedback. Respond with 'APPROVE' to when your feedbacks are addressed.",
    )

    # Define a termination condition that stops the task if the critic approves.
    text_termination = TextMentionTermination("APPROVE")


    team = RoundRobinGroupChat(
        [primary_agent, critic_agent],
        termination_condition=text_termination,  # Use the bitwise OR operator to combine conditions.
    )

    await Console(team.run_stream(task="写一首关于秋天的短诗"))

    
if __name__ == "__main__":
    asyncio.run(main())

运行效果:

---------- user ----------
写一首关于秋天的短诗
---------- primary ----------
秋风轻摇叶漫天,  
金黄稻穗笑丰年。  
枫红染尽山川路,  
硕果满枝惹人怜。  

晨霜点缀草间珠,  
夕阳映影湖中船。  
静谧凉月盈满空,  
秋夜温柔如梦甜。  
[Prompt tokens: 28, Completion tokens: 81]
---------- critic ----------
这首关于秋天的短诗运用了丰富的意象生动地描绘了秋天的美丽。以下是一些建议来进一步提升这首诗:

1. 开头的两行已经相当完整,但可以考虑将“轻摇”替换为更具体的动词,比如“飘落”,以增强画面感。
2. 第二节中的“晨霜点缀草间珠”可以更加具体化,比如但不局限于使用“白霜”,进一步富有诗意地描述秋季清晨的细节。
3. 尾句“秋夜温柔如梦甜”可以再结合一个感官描写,比如“如梦”可以结合沁人心脾的“桂香扑鼻”之类的细节来丰富整体体验。

这些建议旨在增加诗歌的生动性和情感深度,整体上已经非常优秀。请进行相应的改动后,我将很高兴地给予批准。
[Prompt tokens: 126, Completion tokens: 215]
---------- primary ----------
非常感谢您的建议!根据您的意见,我对诗歌做了一些修改:

秋风飘落叶漫天,  
金黄稻穗笑丰年。  
枫红染尽山川路,  
硕果满枝惹人怜。  

白霜点缀草间珠,  
夕阳映影湖中船。  
桂香扑鼻月满空,  
秋夜温柔如梦甜。  

希望这些改动能够增强诗歌的生动性,带来更加丰富的秋季体验。
[Prompt tokens: 334, Completion tokens: 120]
---------- critic ----------
改动后的诗歌确实更加生动且富有画面感。使用“飘落”更好地描绘了秋天的特征,而“白霜”和“桂香扑鼻”的加入使得诗歌在感官描述上更加具体和丰富。这 些改动有效地增强了诗歌的生动性和情感深度。因此,我准许该稿件。 

APPROVE
[Prompt tokens: 471, Completion tokens: 92]
---------- Summary ----------
Number of messages: 5
Finish reason: Text 'APPROVE' mentioned
Total prompt tokens: 959
Total completion tokens: 508
Duration: 14.87 seconds

现在试试用一下国内的模型,毕竟使用OpenAI的模型不是很方便。

我以为改一下baseurl就行了,如下所示:

image-20250107163203243

运行时会报错,如下所示:

image-20250107163339701

现在需要解决这个问题。

改成这样:

image-20250107165213070

还是会出现问题:

image-20250107165043167

解决方案:

image-20250107170942735

改成这样就可以了,如下所示:

image-20250107171056791

让Qwen/Qwen2.5-72B-Instruct与deepseek-ai/DeepSeek-V2.5协作完成任务:

image-20250107171506469

image-20250107171534679

---------- user ----------
写一首关于秋天的短诗
---------- primary ----------
秋风轻抚过田野,
黄叶飘零诉离别。
果实累累挂枝头,
丰收的歌在空中回响。

白露凝霜晨光里,
红枫如火映晚晴。
秋水共长天一色,
宁静致远,思绪随风。
[Prompt tokens: 27, Completion tokens: 61]
---------- critic ----------
这首诗以自然意象为载体,描绘了秋天的丰富色彩与情感。秋风、黄叶、果实、白露、红枫等元素,形成了层次分明的秋日图景,表达了丰收与离别交替的复杂情感。诗中“宁静致远”一句,更是点明了秋天带给人们的沉思与感慨。整体语言流畅,意境深远,情感细腻,是一首不错的秋之赞歌。

以下是一些具体的反馈建议:

1. **“黄叶飘零诉离别”**:这一句的表达略显直白,可以考虑用更含蓄或独特的意象来表达离别之情,以增强诗歌的韵味。
   
2. **“秋水共长天一色”**:这一句虽然取自王勃的《滕王阁序》,但使用在此处稍显突兀,可能会让读者感受到某种经典符号的重复。可以考虑替换为更个性化的表达,与前文的自然意象形成更好 的呼应。

如果你能根据这些建议进行调整,这首诗将会更加出色。期待看到你的进一步修改!
[Prompt tokens: 103, Completion tokens: 239]
---------- primary ----------
非常感谢你的详细反馈和建议!根据你的意见,我将对这首诗进行一些调整,以增强其含蓄性和个性化表达。

---

秋风轻抚过田野,
黄叶轻舞似鸿羽。
果实累累挂枝头,
丰收的歌在空中回响。

白露凝霜晨光里,
红枫如火映晚晴。
秋水清澈连天际,
宁静致远,思绪随风。

---

1. **“黄叶轻舞似鸿羽”**:用“鸿羽”这一意象来表达黄叶的轻盈,增强视觉和情感的层次感。
2. **“秋水清澈连天际”**:替换“秋水共长天一色”为更个性化的表达,使意境更加独特和自然。

希望这些调整能更好地传达秋天的美好与复杂情感。感谢你的指导!
[Prompt tokens: 332, Completion tokens: 182]
---------- critic ----------
调整后的诗句更显细腻与含蓄,黄叶与秋水的意象都更加个性化,情感表达也更加丰富。以下是具体反馈:

1. **“黄叶轻舞似鸿羽”**:这一修改非常成功,“鸿羽”不仅增添了轻盈之感,还赋予了黄叶一种飘逸的动态美,增强了诗歌的视觉与情感张力。

2. **“秋水清澈连天际”**:这一改写避免了经典句式的重复,同时营造了秋水澄澈、连通天际的广阔意境,使整体氛围更加宁静致远。

3. **情感表达**:诗歌整体情感更加内敛,通过自然意象的细腻描绘,既表达了丰收的喜悦,又蕴含了秋天的宁静与思索,尤其最后一句“宁静致远,思绪随风”更是将情感推向了深远的境界。     

总体来说,这首诗的意境已经非常成熟,语言流畅,情感细腻,具有很高的艺术表现力。如果后续没有更多的修改需求,我认为可以定稿。

**APPROVE**
[Prompt tokens: 547, Completion tokens: 239]
---------- Summary ----------
Number of messages: 5
Finish reason: Text 'APPROVE' mentioned
Total prompt tokens: 1009
Total completion tokens: 721
Duration: 75.84 seconds

标签:情感,入门,autogen,AI,critic,tokens,AutoGen,----------
From: https://www.cnblogs.com/mingupupu/p/18658018

相关文章

  • 超人类神经10亿倍的超级大脑,使AI更快更低耗
    要说好用,还得是大脑,大脑好用,还得靠神经元。科学家一直致力于制造人工神经元,以制造出快速处理复杂信息的“超级大脑”。港中文、中科院物理所等机构的研究人员就通过模拟人类神经细胞,制造出了激光人工神经元,其信号处理速度之快,能达到10GBaud,是人脑的10亿倍。为什么能这么快?它......
  • jenkins入门12-- 权限管理
    Jenkins的权限管理由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,我们使用Role-basedAuthorizationStrategy插件  只有项目读权限只有某个项目执行权限 ......
  • jenkins入门10--自动化构建
    buildperiodically:设定类似cron周期性时间触发构建*****(五颗星,中间用空格隔开)第一颗表示分钟,取值0~59第二颗表示小时,取值0~23第三颗表示一个月的第几天,取值1~31第四颗表示第几月,取值1~12第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日 1.每30分钟......
  • 出道即顶流!这款新AI工具能否春节解放打工人?
    日新月异的AI行业,让普通人过去一年感受最深的,应该是越来越强烈的获得感。AI不再是空中楼阁、高高在上,而是越来越触手可及、唾手可得。前几天,国民级互联网应用百度搜索,在PC端新上线了全新的百度AI搜,加速了这一进程。懂懂因为工作原因,经常要上网搜索。用百度AI搜才两天,就明显感......
  • 基于AI底座的数智油气田参考架构
     基于AI底座的数智油气田参考架构ArchitectureforIntelligent&DigitalOilfiledsBased-onAI王权2024.12.29  2024年12月29日,在石油圈-能源说线上讲座中,王权首次提出“基于AI底座的数智油气田参考架构”。该架构可视为其于2003年提出的“数字油田参考架构”的升......
  • 企业选型指南:AI Agent与SaaS工具的优劣势深度解析
    AIAgent(AI智能代理)和SaaS工具(软件即服务)代表了现代智能化软件产品的两种重要发展方向。虽然它们都致力于提升效率、优化任务和改善用户体验,但在本质、结构、优势、应用场景以及技术架构上有显著的区别。1、AIAgent和SaaS工具本质区别AIAgent定义:AIAgent是一种无需持续人类......
  • 开源flux适配昇腾NPU分享,体验120亿参数AI文生图模型
    这一期我们分享一位开源开发者参与flux适配昇腾NPU的实践经验,欢迎广大开发者对华为技术栈适配进行讨论。开源适配实践flux是一个AI图像生成模型,有120亿参数量,具有大量的用户基础,可以根据命令行输入的文字去生成对应的图片。本次适配使用的flux模型权重文件是schnell版本。下面......
  • 论文阅读:ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Unde
    简介ERNIE3.0融合了自回归和自编码,在由纯文本和大规模知识图谱组成的4TB语料库上训练大规模知识增强模型,传播了自然语言理解、自然语言生成和知识提取三个任务范式。框架自然语言处理的不同任务范式始终依赖于相同的底层抽象特征,例如词汇信息和句法信息,但顶级具体特征的要......
  • AppDomainManager注入是一种针对.NET应用程序的高级攻击技术,攻击者通过操控AppDomain
    什么是APPDomainManager注入?APPDomainManager注入通常涉及到利用**应用程序域(AppDomain)**来执行恶意操作,特别是在.NET环境下。要理解这个概念,我们需要了解几个关键术语:AppDomain:在.NET应用程序中,AppDomain是一个隔离的执行环境,它允许多个应用程序或应用程序的不同部分在同一进......
  • Visual Studio 2022 上架腾讯云 AI 代码助手了
    近期在VisualStudio市场上上架了腾讯云AI代码助手。该插件可以在VisualStudio2022版本(含社区版,版本不低于17.6即可)使用智能辅助编码能力,助力VisualStudio的开发者提高效率。我们在该平台上支持技术对话、代码补全、单元测试生成、解释代码、修复代码等场景。如何安装......