LLMs之Agent之AutoGen:AutoGen的简介、安装、使用方法之详细攻略

news2024/11/25 23:42:35

LLMs之Agent之AutoGen:AutoGen的简介、安装、使用方法之详细攻略

目录

AutoGen的简介、安装、使用方法

1、多Agent对话框架

2、AutoGen的对话流程

3、增强的LLM推理

AutoGen的安装

1、安装

2、快速测试

AutoGen的使用方法

1、基础用法

(1)、启动两个代理之间的自动聊天来解决任务


AutoGen的简介、安装、使用方法

        2023年9月30日左右,微软正式开源AutoGen,这是一个框架,允许开发具有多个Agent的LLM应用程序,这些Agent可以相互交流以解决任务。AutoGen的Agent是可定制的、可对话的,并可以无缝地允许人类参与。它们可以在使用LLM、人类输入和工具的各种模式下运行。
>> AutoGen使基于多Agent对话构建下一代LLM应用程序变得更加轻松。它简化了复杂LLM工作流程的协调、自动化和优化。它最大程度地提高了LLM模型的性能并克服了它们的弱点。
>> 它支持复杂工作流的多种对话模式。开发人员可以使用可定制和可对话的Agent来构建涵盖对话自治、Agent数量和Agent对话拓扑的各种对话模式。
>> 它提供了一系列具有不同复杂性的工作系统。这些系统涵盖了各种领域和复杂度的应用程序。这展示了AutoGen如何轻松支持多样化的对话模式。
>> AutoGen提供了增强的LLM推理。它提供了简单的性能调整,以及API统一和缓存等实用工具,以及高级用法模式,如错误处理、多配置推理、上下文编程等。
AutoGen由Microsoft、宾夕法尼亚州立大学和华盛顿大学的合作研究支持。

相关文档:AutoGen | AutoGen

GitHub地址:GitHub - microsoft/autogen: Enable Next-Gen Large Language Model Applications. Join our Discord: https://discord.gg/pAbnFJrkgZ

1、多Agent对话框架

AutoGen通过通用多Agent对话框架实现了下一代LLM应用程序。它提供了可定制和可对话的Agent,集成了LLM、工具和人类。通过自动化多个有能力的Agent之间的聊天,人们可以轻松地使它们共同执行任务,无需人类反馈,包括需要使用代码的工具的任务。这种用例的特点包括:
>> 多Agent对话:AutoGenAgent可以相互交流以解决任务。这使得可以开发比单个LLM更复杂和复杂的应用程序成为可能。
>> 定制:AutoGenAgent可以定制以满足应用程序的特定需求。这包括选择要使用的LLM、允许的人类输入类型和要使用的工具。
>> 人类参与:AutoGen可以无缝地允许人类参与。这意味着人类可以根据需要提供输入和反馈给Agent。

2、AutoGen的对话流程

3、增强的LLM推理

AutoGen还有助于最大程度地利用诸如ChatGPT和GPT-4之类昂贵LLM的效用。它提供了增强的LLM推理,具有调整、缓存、错误处理和模板等强大功能。例如,您可以通过自己的调整数据、成功指标和预算来优化LLM生成。

# perform tuning
config, analysis = autogen.Completion.tune(
    data=tune_data,
    metric="success",
    mode="max",
    eval_func=eval_func,
    inference_budget=0.05,
    optimization_budget=3,
    num_samples=-1,
)
# perform inference for a test instance
response = autogen.Completion.create(context=test_instance, **config)

请在此功能的更多代码示例中查找更多信息。

地址:AutoGen - Automated Multi Agent Chat | AutoGen

AutoGen的安装

1、安装

AutoGen要求Python版本>= 3.8。可以使用pip安装:

pip install pyautogen

安装时只安装了最小的依赖项,没有额外选项。您可以根据您的需求安装额外的选项。

在代码执行方面,强烈建议安装python docker包,并使用docker。

有关LLM推理配置,请查看常见问题解答。

地址:Frequently Asked Questions | AutoGen

2、快速测试

第一步,点击下面的链接使用Github Codespace,在GitHub Codespaces中打开

地址:https://codespaces.new/microsoft/autogen?quickstart=1

第二步,将OAI_CONFIG_LIST_sample复制到/notebook文件夹,命名为OAI_CONFIG_LIST,并设置正确的配置。

第三步,开始使用笔记本!

AutoGen的使用方法

1、基础用法

(1)、启动两个代理之间的自动聊天来解决任务


from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
# Load LLM inference endpoints from an env variable or a file
# See https://microsoft.github.io/autogen/docs/FAQ#set-your-api-endpoints
# and OAI_CONFIG_LIST_sample
config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST")
# You can also set config_list directly as a list, for example, config_list = [{'model': 'gpt-4', 'api_key': '<your OpenAI API key here>'},]
assistant = AssistantAgent("assistant", llm_config={"config_list": config_list})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding"})
user_proxy.initiate_chat(assistant, message="Plot a chart of NVDA and TESLA stock price change YTD.")
# This initiates an automated chat between the two agents to solve the task

python test/twoagent.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:map和set的基本使用

文章目录 搜索模型关联式容器setset的基本使用set的其他使用 multisetmapmap的基本使用map中的[] multimap 搜索模型 在实际搜索中有两个搜索模型&#xff1a;Key的搜索模型和Key/Value的搜索模型 Key的搜索模型&#xff1a; 简单来说就是在一个搜索树&#xff0c;搜索树中的…

大桌子安装笔记

单位弄了个服务器&#xff0c;里面全是虚拟机&#xff0c;自己也学着建了一个测试用的虚拟机&#xff0c;不知道干点啥好&#xff0c;朋友说做个网盘吧&#xff0c;就用大桌子。 于是&#xff0c;干起来&#xff0c;不会配制&#xff0c;就跟朋友一步一步学起来。 他说&#…

服务熔断保护实践--Sentinal

目录 概述 环境说明 步骤 Sentinel服务端 Sentinel客户端 依赖 在客户端配置sentinel参数 测试 保护规则设置 设置资源名 设置默认的熔断规则 RestTemplate的流控规则 Feign的流控规则 概述 微服务有很多互相调用的服务&#xff0c;构成一系列的调用链路&#xf…

LangChain介绍及代码实践

一、简介 LangChian 作为一个大语言模型开发框架&#xff0c;是 LLM 应用架构的重要一环。那什么是 LLM 应用架构呢&#xff1f;其实就是指基于语言模型的应用程序设计和开发的架构。 LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起&a…

如何看待将本增效?

如何看待将本增效&#xff1f; 么是降本增效&#xff1f;就是公司里&#xff0c;增进收益的动作要多做&#xff0c;无效的动作要少做&#xff0c;甚至不做。什么叫有效&#xff1f;回到公司的经营目标上去&#xff0c;企业的管理就是目标管理。降本&#xff0c;需要卓越运营&a…

NLP学习笔记:使用 Python 进行NLTK

一、说明 本文和接下来的几篇文章将介绍 Python NLTK 库。NLTK — 自然语言工具包 — NLTK 是一个强大的开源库&#xff0c;用于 NLP 的研究和开发。它内置了 50 多个文本语料库和词汇资源。它支持文本标记化、词性标记、词干提取、词形还原、命名实体提取、分割、分类、语义推…

【计算系统】5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别

5分钟了解超算&#xff0c;高性能计算&#xff0c;并行计算&#xff0c;分布式计算&#xff0c;网格计算&#xff0c;集群计算以及云计算的区别 1. 超算2. 高性能计算3. 并行计算4. 分布式计算5. 网格计算6. 集群计算7. 云计算小结相关资料 1. 超算 超级计算机&#xff08;Sup…

Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View,Kotlin(4)

Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View&#xff0c;Kotlin&#xff08;4&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import a…

MATLAB 支持向量机(SVM)

MATLAB 支持向量机&#xff08;SVM&#xff09;详细解释&#xff08;含代码&#xff09; 基础线性可分最大间隔超平面 SVM分类基本代码和工具二分类线性非线性 多分类详细解释 基础 线性可分 简单来讲就是如何将两个数据用点、直线、平面分开。。。。。 二维空间中&#xff…

ios原生分享

什么是 ios 系统的原生分享呢&#xff0c;如下图所示 具体使用系统UIActivityViewController&#xff0c;完整代码如下&#xff1a; -(void)shareAny:(NSString *)text url:(NSString *)_url imagePath:(NSString *)_imagePath {NSLog("shareAny, text:%, url:%, imagePa…

Security ❀ DNS协议常见DOS攻击详解

文章目录 1. DNS协议基础概述2. DNS报文详解2.1. DNS Request 请求包2.2. DNS Reply 响应包 3. DNS Request Flood3.1. 攻击原理3.2. 防护方法3.2.1. TC源认证3.2.2. 被动防御3.2.3. CNAME防护模式3.2.4. *CANME类型解析过程** 4. DNS Reply Flood4.1. 攻击原理4.2. 防护方法 5…

【44.全排列Ⅱ】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:vector<vector<int>> ret;vector<int> path;vector<bool> check;vector<vector<int>> permuteUnique(vector<int>&am…

C语言--温度转化(把华氏度转换为摄氏度)

一.问题描述: 有人用温度计测量出用华氏法表示的温度,今要求把它转换为以摄氏法表示的温度,转换公式如下: 这个代码是C语言的入门代码&#xff0c;难点在于5/9在程序中如何写出。在计算机中5/9等于1。 /符号&#xff1a;整除问题(整数/整数 结果是丢弃小数的整数) 5/2 2。那…

好看的个人导航页源码

这款导航页源码 非常合适个人使用 简洁漂亮 放点自己经常用到的网站 还支持别人自助添加快捷书签 源码获取&#xff1a;https://www.qqmu.com/930.html

UE5——网络——属性复制

当属性被注册进行复制后&#xff0c;您将无法再取消注册&#xff08;涉及到生存期这一话题&#xff09;。之所以会这样&#xff0c;是因为我们要预制尽可能多的信息&#xff0c;以便针对同一组属性将某一工作分担给多个连接。这样可以节省大量的计算时间。 virtual void GetLif…

java入坑之运行管理

一、概述 1.1Java开发和运行过程 编写阶段&#xff1a;采用各种编辑工具&#xff0c;编写.java文件编译阶段&#xff1a;采用javac.exe对java文件编译&#xff0c;产生.class文件运行阶段&#xff1a;采用java.exe加载.class文件运行 详细过程 1.2相关概念 javaOS管理 JavaOS是…

全新二开游戏支付通道/话费/电网、紫水晶带云端源码

源码修复可用&#xff0c;YY业务都可用 本店所售程序只供测试研究&#xff0c;不得使用于非法用途&#xff0c;不得违反国家法律&#xff0c;不得用于进行违法行为&#xff0c;否则后果自负&#xff01;购买以后用作他用附带的一切法律责任后果都由购买者承担于本店无任何关…

Linux开机、重启、关机和用户登录注销

1.【关机】 shutdown shutdown now 表示立即关机 shutdown -h now 表示立即关机 shutdown -h 1 表示1分钟后关机 halt 用来关闭正在运行的Linux操作系统 2.【重启】 shutdown -r now 表示立即重启 reboot 重启系统 sync …

蜜罐系统HFish的部署与功能实测

1. 引入 根据参考1对蜜罐的定义&#xff1a; 蜜罐&#xff08;Honeypot&#xff09;是一个计算机科学领域的术语&#xff0c;指用于检测或防御未经授权的行为或黑客攻击的陷阱。其名称来源于其工作原理类似于用来诱捕昆虫的蜜罐。蜜罐通常伪装成看似有利用价值的网路、资料、…

JVM修炼印记之初识

文章目录 JVM认识JVM的功能常见JVMHotSpot的发展历程 JVM认识 Java虚拟机&#xff08;Java Virtual Machine&#xff0c;JVM&#xff09;是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心&#xff0c;可以在不同的操作系统和硬件平台上运行Java程序。 JVM负责将Java…