AutoGen完整教程和加载本地LLM示例

2023-11-01 11:36

本文主要是介绍AutoGen完整教程和加载本地LLM示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Autogen是一个卓越的人工智能系统,它可以创建多个人工智能代理,这些代理能够协作完成任务,包括自动生成代码,并有效地执行任务。

在本文中,我们将深入探讨Autogen,并介绍如何让AutoGen使用本地的LLM

AutoGen

Autogen能够设置多个人工智能代理,它们协同工作以实现特定目标。以下截图来自微软官方博客

使用conda创建环境:

 conda create -n pyautogen python=3.10  conda activate pyautogen

AutoGen需要Python版本>= 3.8。它可以从pip安装:

 pip install pyautogen

编辑Python脚本(app.py),导入Autogen并设置配置。此配置包括定义想要使用的模型(例如,GPT 3.5 turbo)并提供API密钥。

目前AutoGen只能使用OpenAI的API,所以我们在后面介绍如何使用本地的LLM。

可以定义多个代理来处理不同的角色或任务,比如下面就创建了2个角色

 autogen.AssistantAgent(assistantname="CTO",Illm_config=llm_config)autogen.AssistantAgent(assistantname="CEO", Illm_config=llm_config)

定义任务和说明:希望代理执行的特定任务。这可以是任何指令,从编码到数据分析。

这样代理将根据指示开始执行任务。Assistant代理使用结果或代码片段进行响应。

使用本地的LLM

下面我们将演示如何让autogen使用本地的LLM。这里将使用FastChat作为LLM的本地媒介。

FastChat为其支持的模型提供了与OpenAI兼容的api,所以可以使用FastChat作为OpenAI api的本地替代。但是它的代码需要稍加修改才能正常工作。

 git clone https://github.com/lm-sys/FastChat.gitcd FastChat

ChatGLM-6B是基于通用语言模型(General language model, GLM)框架的开放式双语语言模型,具有62亿个参数。ChatGLM2-6B是其第二代产品。

 git clone https://huggingface.co/THUDM/chatglm2-6b

都下载完成后就可以使用了,先启动控制器:

 python -m fastchat.serve.controller

然后就是启动模型工作线程。

 python -m fastchat.serve.model_worker --model-path chatglm2-6b

最后是API:

 python -m fastchat.serve.openai_api_server --host localhost --port8000

注意:如果遇到这样的错误

 /root/anaconda3/envs/fastchat/lib/python3.9/runpy.py:197in_run_module_as_main││││194│main_globals=sys.modules["main"].dict││195│ifalter_argv: ││196││sys.argv[0] =mod_spec.origin││❱197│return_run_code(code, main_globals, None, ││198│││││"main", mod_spec) ││199││200defrun_module(mod_name, init_globals=None, │

注释掉fastchat/protocol/ api_protocol.py和fastchat/protocol/openai_api_protocol.py中包含finish_reason的所有行将解决问题。修改后的代码如下:

 classCompletionResponseChoice(BaseModel):index: inttext: strlogprobs: Optional[int] =None# finish_reason: Optional[Literal["stop", "length"]]classCompletionResponseStreamChoice(BaseModel):index: inttext: strlogprobs: Optional[float] =None# finish_reason: Optional[Literal["stop", "length"]] = None

使用下面的配置,autogen.oai.Completion和autogen.oai.ChatCompletion可以直接访问模型。

 fromautogenimportoai# create a text completion requestresponse=oai.Completion.create(config_list=[{"model": "chatglm2-6b","api_base": "http://localhost:8000/v1","api_type": "open_ai","api_key": "NULL", # just a placeholder}],prompt="Hi",)print(response)# create a chat completion requestresponse=oai.ChatCompletion.create(config_list=[{"model": "chatglm2-6b","api_base": "http://localhost:8000/v1","api_type": "open_ai","api_key": "NULL",}],messages=[{"role": "user", "content": "Hi"}])print(response)

在本地也可以使用多个模型:

 python -m fastchat.serve.multi_model_worker \--model-path lmsys/vicuna-7b-v1.3 \--model-names vicuna-7b-v1.3 \--model-path chatglm2-6b \--model-names chatglm2-6b

那么推理的代码如下(注意,你要有多卡或者显存足够):

 fromautogenimportoai# create a chat completion requestresponse=oai.ChatCompletion.create(config_list=[{"model": "chatglm2-6b","api_base": "http://localhost:8000/v1","api_type": "open_ai","api_key": "NULL",},{"model": "vicuna-7b-v1.3","api_base": "http://localhost:8000/v1","api_type": "open_ai","api_key": "NULL",}],messages=[{"role": "user", "content": "Hi"}])print(response)

总结

Autogen代理可以根据需要执行代码、生成报告和自动执行任务。他们可以协同高效地工作,节省时间和精力,我们还介绍了如何在本地使用,这样可以在本地进行测试,而不需要OpenAI的API。

微软的Autogen官网
https://avoid.overfit.cn/post/1e0f8d1ba2724b378d83cb4db3c4f9d3

这篇关于AutoGen完整教程和加载本地LLM示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/322670

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Redis延迟队列的实现示例

《Redis延迟队列的实现示例》Redis延迟队列是一种使用Redis实现的消息队列,本文主要介绍了Redis延迟队列的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、什么是 Redis 延迟队列二、实现原理三、Java 代码示例四、注意事项五、使用 Redi

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

python库fire使用教程

《python库fire使用教程》本文主要介绍了python库fire使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1.简介2. fire安装3. fire使用示例1.简介目前python命令行解析库用过的有:ar