什么叫emo了,一个人的失眠一个人的空间是什么歌
没有办法预测明天会发生什么。技术迭代太快了。微软发布GPT-4V手册!智浦发布日本首款多模态射击CogVLM-17B! LLM多轮对话忘记了特效药Streaming-llm!在我写别的之前,又一个新产品来了!每一次迭代都是某个领域的飞跃,而且都是滚动的。大家都在磨刀霍霍!未来很可能只有一个智能体,管理部门的多个AI智能体同时工作,释放人力!想象一下,你独自一人在一间巨大的办公室里,双腿交叉。当你喊“制定每月计划”时,他会自动分析上个月的数据,整合现有资源,制定本月的计划并利用空间。还有资金!当您完成报告后,只需说“确定”,报告就会自动发送给您的老板。但为什么只有你一个人翘着二郎腿呢?快点卷起来吧!加入学习队列吧!这次我们来聊聊微软Autogen:可以实现什么样的功能?请明确可扩展性,作为自己产品的参考;底层技术原理是什么?分析论文+OpenAI技术文档;跑一下样例吧!边跑边说细节,今天熊哥继续剥削新同事小盘,基本上就是知识王用的技术。他提供了3 份Autogen 领域专家代理代码,用于免费通信+ 自动API 连接来解决问题。锡安哥通过考试后,又看完了两篇官方论文,却睡不着。
今天,雄哥执行的代码和两份官方技术文档将同时上传到知识星球。
第1部分:实现了哪些功能?实际上,AutoGen是一个开发框架,支持多个代理来开发LLM应用程序,并且这些代理之间可以交互来完成任务。清华大学此前做过ChatDev项目,该项目利用AI Agent创建一个虚拟软件公司,其中包括高管、技术总监、程序员、测试人员等。这些代理形成了多代理组织结构,其使命是“通过编程改变数字世界”。 ChatDev 中的代理通过参加专门的功能研讨会进行协作,其中包括设计、编码、测试和文档等任务。之后,许多开发者基于这个项目创建了许多扩展。阅读全文后,您可以在这里阅读。
https://github.com/OpenBMB/ChatDev/blob/main/Contribution.md AutoGen 代理是可定制的和对话式的,允许人类无缝参与并提供干预和新目标。除了人类参与之外,LLM还充当大脑,自主匹配和召唤合适的工具来实现目标。
第二部分:底层技术原理和逻辑? 说到底层技术,就不得不说一下FLAML项目。 AutoGen 实际上是它的一个衍生项目。简介:FLAML 是一个轻量级Python 库,用于高效自动化机器学习和AI 操作。它基于大规模语言模型和机器学习模型等自动化工作流程来优化其性能。这是官方地址。稍后,阅读全文后,您可以扩展:
https://microsoft.github.io/FLAML/AutoGen 如果汽车是汽车,那么FLAML 就是推动汽车前进的根本力量。代码是熊兄弟直接上传到这里的。连接ChatGLM2-6B实现LLM自动发送。
from flaml import oai# 创建文本补全requestresponse=oai.Completion.create( config_list=[ { 'model': 'chatglm2-6b', 'api_base': 'http://localhost:8000/v1', 'api_type': 'open_ai' , ' api_key ': 'NULL', # 只是一个占位符} ], Prompt='Hi',)print(response)# 创建聊天完成requestresponse=oai.ChatCompletion.create( config_list=[ { 'model': 'chatglm2 -6b ', 'api_base': 'http://localhost:8000/v1', 'api_type': 'open_ai', 'api_key': 'NULL', } ],messages=[{'角色': '用户', '内容': '嗨' }] )print(response)微软有宏伟的计划,希望为LLMOps(大型语言模型操作)提供顶级解决方案。此版本的Autogen 还尝试与开源本地LLM+ 搜索工具连接,该工具可以在地球上进行调试并立即启动。
第三部分:运行示例了解更多执行环境:colab或jupyter-notebook支持LLM:OpenAI,推荐GPT4(3.5也可以)环境:python3.8或更高版本总共有5个文件。前3个是代码示例。剩下的两块是纸!
首先,你必须去星球获取这个代码。会员专属的有价值内容!
大家都在打卡!添加星球之前需要先添加雄哥微信才可以通过。否则,Planet将自动退还费用。所以请先添加雄哥微信。我们还有一些折扣!非会员公众号回复“Microsoft AG”。关注紫苑兄弟协作码!边跑边聊!首先,您需要安装pyautogen 工具包。
请加载!pip install pyautogen~=0.1.0
from google.colab importdrivedrive.mount('/content/drive') 接下来,设置OpenAI KEY。当Xiong跑到这里的时候,我们可以看到我们没有足够的代币。如果你输入LLM模型如下,Xiong会是这样的:它会自动切换。请优先使用GPT4!
导入autogenconfig_list=autogen.config_list_from_json( 'OAI_CONFIG_LIST', filter_dict={ 'model': { 'gpt-4', 'gpt4', 'gpt-4-32k', 'gpt-4-32k-0314', 'gpt- 4-32k-v0314'、'gpt-3.5-turbo'、'gpt-3.5-turbo-16k'、'gpt-3.5-turbo-0301'、'chatgpt-35-turbo-0301'、'gpt-35- Turbo-v0301', 'gpt', } }) 接下来,定义要创建的代理角色设置。这里的即兴发言非常重要。如果任务得到明确说明和理解,特工就能更好地完成任务。稍后进入星球,跟着Zion哥哥学习提示词项目吧! 在这段代码中,我们将设置“assistant”和“mathproxyagent”。 “assistant”:代理被配置为有用的助手,可以使用“gpt-4”语言模型,并且具有系统消息。 'mathproxyagent' :代理被配置为自动代理,其主要角色可能与数学相关,不需要人工输入,并且可能不使用Docker 来运行代码。
with open('/content/drive/MyDrive/Key.txt','r') as f: key=f.read()config_list=[ { 'model': 'gpt-4', 'api_key': key, } ]from autogen.agentchat.contrib.math_user_proxy_agent import MathUserProxyAgentautogen.ChatCompletion.start_logging()# 1. 'assistant'assistant=autogen.AssistantAgent( name='assistant', system_message='你是一个有用的助手。' , llm_config={ ' request_timeout': 600, 'seed': 42, 'config_list': config_list, })# 2. 创建名为'mathproxyagent' 的MathUserProxyAgent 实例。 # 默认情况下, human_input_mode 是'NEVER',这意味着代理。不需要人工输入。 mathproxyagent=MathUserProxyAgent( name='mathproxyagent', human_input_mode='NEVER', code_execution_config={'use_docker': False},) 然后启动并运行主题。
代码是这样的:
# 给定一个数学问题,使用mathproxyagent 生成一条提示作为第一条消息发送给助手。 # 助手接收消息并生成响应。响应被发送回mathproxyagent 进行处理。 #会话持续进行,直到满足终止条件。在MathChat 中,退出条件是在响应中找到“\boxed{}”。 math_problem='不等式$(2x+10)(找到所有满足x+ 3的$x$))(3x+9)(x+8)$。用区间表示法表达你的答案。 'mathproxyagent.initiate_chat(assistant, Question=math_problem) 代码运行后,您可以看到'mathproxyagent' 首先说话。他把问题交给他的“助理”,让他用Python解决,然后讲了一些他的需求。要求包括:
输出应使用“打印”功能并使用分数/副本而不是小数来完成。 sympy 等软件包可以帮助解决您的问题。编写代码时必须遵循一定的格式。首先你需要解释解决问题的主要思想。有三种方法可以解决该问题。一步步解决问题(步骤不要太小)。删除任何可以通过Python 查询的查询(例如,可计算的计算或方程)。我在等待答案。如果结果正确,则继续。如果结果无效或不符合预期,则需要修改查询或推理。案例1:如果你可以直接使用Python代码解决问题,那就编写一个程序来解决它。情况2:如果问题主要是推测性的,可以直接解决。情况三:如果以上两种方法都无法解决问题,则需要按照以下步骤操作:然后助手将计算方法、调用处理的模块以及整个计算过程返回给mathproxyagent:最终验证结果:
mathproxyagent(致助理): 使用Python 解决数学问题。查询要求: 输出应始终使用“打印”功能并使用分数/根式格式而不是小数。使用sympy等包很方便。你需要:使用以下格式编写你的代码:````python#代码````首先陈述解决问题的关键思想。您可以选择三种方法来解决问题。 案例1: 如果问题可以直接用Python 代码解决,请编写一个程序来解决它。如果您愿意,您可以列举所有可能的安排。案例2: 如果问题主要是推理,你可以直接自己解决。案例3: 如果以上两种方法都无法解决问题,请按照以下步骤操作: process:1. 逐步解决问题(不要采取太多步骤)。 2. 提取所有可以通过Python 提出的查询(例如,任何可以计算的计算或方程)。 3. 等待完成。查看结果。 4. 如果结果看起来正确,请继续。如果结果无效或意外,请修改您的查询或推理。执行完所有查询并获得答案后,将答案输入到\boxed{} 中。问题: 查找所有满足不等式$(2x+10)(x+3)(3x+9)(x+8)$ 的$x$。用区间表示法表达你的答案。 ---------- ---------------------------------------- ---------- -------------------- 助理(mathproxyagent) : 重要想法: 方程$(2x+10)(x+ 3)我们可以通过找到=(3x+9)(x+8)$ 的根来解决问题,并通过确定这些根创建的区间的符号来解决不等式。 ### 步骤:1。首先我们求解方程$(2x+10)(x+3)。=(3x+9)(x+8)$ for $x$.````pythonfrom sympy import symbol,solvex=名称('x')eq=(2*x+10)*(x+3) - ( 3*x+9)*(x+8)roots=solve(eq, x)print('Roots : ',roots)````2. 获取这些根并对其进行排序。接下来,检查不等式的符号。找到由这些根分隔的相邻区间的中点。 ```python# 对根进行排序并添加负和正无限区间=sorted(roots) + [float('inf')]# 计算相邻区间的中点midpoints=[ (intervals [i]+intervals[i+1]) /2 for i in range(len(intervals)-1)]# 每个中点不等式的测试结果=[]for m in Midpoints: if (2*m+10) *(m+3) (3*m+9) *(m+8): results.append((m, 'True')) else: results.append((m, 'False'))# 解决方案是它看起来像这样。结果为True # 相应地合并间隔Solution_intervals=[]for i in range(len(results)): if results[i][1]=='True': Solution_intervals.append((intervals[ i], Intervals[ i+1]))print('Solution Intervals: ', Solution_intervals)````答案将是不等式为真的段。最后,我们将根和段分配给$\boxed{ 空间。答案是}$。 -------------------------------------------------------- - ---- --- -----------------------------mathproxyagent (对助手):Roots : [-14, -3 ] 求解区间: [ ]------------------------------------------ ---- --- --- ----------------------------------------助理(到mathproxyagent):这里是路线$x=-14$ 和$x=- 3 美元。并且不存在不等式为“True”的区间。因此,不等式的解集为空。最终答案是空集: $\boxed{\emptyset}$ ,Colab 将数学问题扩大了4 个,有兴趣的可以看一下。
看着他们解决问题的过程真是令人兴奋!更重要的是,整个过程基于微软的开发框架,就像定义角色、输入问题、按回车一样简单。
Zion哥随后打开技术文档,发现了以下内容: AutoGen 始终专注于简化复杂的LLM 申请工作流程并将其集成到多代理对话中。因此,AutoGen 采用了以这些代理之间的交互为中心的编程范例。我们将这种范式称为对话式编程,它通过两个主要步骤简化了复杂应用程序的开发:(1) 定义一组具有特定功能和角色的对话代理;2) 以对话为中心的计算以及控制和编程交互的代理它们之间。这两个步骤都可以通过混合自然语言和编程语言来构建具有不同对话模式和代理行为的应用程序来实现。 AutoGen 提供了一个即用型实现,使您可以轻松扩展和试验这两个步骤。 Zion弟兄在这里贴了一张思维导图。文档里也有这个,可以帮助大家整理思路。