试用MetaGPT

news2024/11/16 7:36:11

简介

最近朋友和B站都给我推 MetaGPT,正好有空就下载亲测了一下。MetaGPT 是目前(230809)github热榜第一名,今天就加了3000多个星。

MetaGPT是一个多智能体框架,能够生成不同的角色:工程师、产品经理、架构师和项目经理。然后共同构建一个软件项目,使用的模型是GPT-4,与AutoGPT有些类似。

在这里插入图片描述

中文帮助文档见:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

实验

搭建环境

$ git clone https://github.com/geekan/MetaGPT  # 约11M左右
$ cd MetaGPT
$ docker build . -t metagpt:baseline # 生成镜像
$ mkdir -p /opt/metagpt/{config,workspace} # 请切换成root后执行
$ docker run --rm metagpt/metagpt:v0.3 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/config.yaml
$ cd /opt/metagpt/
$ cp config/config.yaml config/key.yaml # 生成配置文件
修改 key.yaml中的 OPENAI_API_KEY, OPENAI_API_BASE
$ docker run --name metagpt -d     --privileged     -v /opt/metagpt/config:/app/metagpt/config     -v /opt/metagpt/workspace:/app/metagpt/workspace metagpt:baseline # 运行镜像
$ docker exec -it metagpt /bin/bash # 进入镜像

运行

$ python startup.py "写一个微信小程序,实现简单的文件阅读和翻译功能"

运行之后,程序创建项目:
workspace/wechat_mini_reader/

实验结果

  • 最终花费:¥4.07(GPT-4 用的是一个国内的中转)
  • 我的需求是:写一个微信小程序,实现简单的文件阅读和翻译功能,最终它生成了一组Python程序(不是微信小程序),是demo的感觉,离完整应用差得比较远。
  • 生成5个代码文件,包含:Flask构架、sqlite3数据库,调用google translate的翻译,文件读取等等,整体生成数据400行,其中含代码105行,其它为设计文档。

主观感受

  • 可以设置你想花多少钱调用GPT-4,默认3$
  • 工具链做得很好,一小时之内可以上手
  • 可以做demo,简化了项目开始的工作量
  • 想用它做一个完整项目,个人觉得差距还比较大
  • 它生成的竞品分析,API文档,mermaid图也都挺好的
  • 可能存在大局观问题:每个小步做得都对,合一块不一定对

代码分析

目前metagpt的项目,核心代码量有80多个python文件,共6000多行(代码文件都不大),底层也使用了langchain

主要代码

  • startup.py:代码入口,可以设置想花多少钱,需要几个角色合作……
  • actions:使用 PROMPT 方式,通过调用 GPT 和其它 API 实现了具体的功能,比如:写代码、分析库依赖、文本转语音、运行代码、测试……
  • document_store:各种存储的支持,faiss, milvus, chromadb向量数据库,本地存储,各种模式数据的读取,
  • management:管理所有技能
  • memory:管理存储
  • prompts:管理各种角色的提示
  • provider:调用大语言模型,目前支持Claude和OpenAI
  • roles:各角色的具体实现和相关工具,角色包含:工程师,架构师,产品,项目管理……
  • tools & utils:辅助工具

底层逻辑

我觉得,该工具是将软件开发拆解成前后多个步骤,调用模型完成各个步骤,通过提示以及对返回结果的解析,最终结合成完整的项目。即:用大模型实现了软件开发的全链路。

可能对于开发某种类型的应用效果比较好,对于所以类型软件而言,个人觉得目前尚处于初始阶段。有时候不如针对具体问题,直接提问;有时候 MetaGPT 过程也给我们一些启发。

另外,真正应用过程可能遇到的问题是:开发简单的软件可能不需要这么多角色;开发复杂的软件,相互交错的工作,GPT是否能支撑非常复杂的设计?
虽然我个人觉得离自动编程还挺远,不过还是有很多有意思和值得借鉴的内容~~

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

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

相关文章

【sonar】安装sonarQube免费社区版9.9【Linux】【docker】

文章目录 ⛺sonarQube 镜像容器⛺Linux 安装镜像🍁出现 Permission denied的异常🍁安装sonarQube 中文包🍁重启服务 ⛺代码上传到sonarQube扫描🍁java语言配置🍁配置 JS TS Php Go Python⛏️出现异常sonar-scanner.ba…

lc345. 反转字符串中的元音字母

元音字母按照从外到内成对的方式反转,不考虑出现的元音字母个数为奇数的情况 双指针:指针1由左向右遍历,指针2由右向左遍历,某个指针指向元音字母时停止,直到它另一个指针也指向元音字母,此时两个指针指向的…

YonGPT发布背后,“实用主义”成为大模型落地新风向

近年来伴随着数字经济的高歌猛进,国内企业服务赛道迅速站上行业风口。以ChatGPT为代表的大模型的到来,更为整个企服赛道添了一把火。而7月27日用友对外发布的首个企业服务大模型YonGPT,则正式宣告了企业服务大模型全新时代的到来。 目前参与…

C# 2048小游戏核心算法

文章目录 01.程序结构划分02.去零03.合并04.上移05.下移/左移/右移&#xff0c;只是取数据的方向不同06.提高可读性 01.程序结构划分 02.去零 有序向量“唯一化”的思路。 /// <summary>/// 去零/// </summary>/// <param name"row">对于一行或一…

torch.functional.affine_grid的坑

问题描述&#xff1a;在用torch进行图像仿射变换的时候&#xff0c;平移始终有问题 比如现在想要让一张图对应的tensor平移0.5个图像长度 那么需要先构造一个transform_matrix&#xff0c;这里网上说的是偏移量不是像素值&#xff0c;而是归一化的比例 shift_x 0.5 shift_y…

dependency xxxx not found 爆红

一、根本方法&#xff1a;直接手动安装jar包 mvn官网下载之后&#xff0c;终端进入该jar包目录下&#xff08;把下载的jar包移动到本地仓库&#xff09; 运行mvn install:install-file -Dfilejar包的路径 -DgroupIdgruopId中的内容 -DartifactIdactifactId的内容 -Dversionver…

智能财务分析的无冕之王-奥威BI数据可视化工具

利用智能数据可视化分析工具&#xff0c;可极大提升财务分析效率和报表可读性&#xff0c;缩短从分析到决策的耗时。但财务分析的难度往往比其他分析更高&#xff0c;因为它的分析指标计算组合变化太多也太快。哪些数据可视化工具能胜任智能财务数据分析&#xff1f; 奥威BI数…

共享饮水机开发让饮用水更放心

共享饮水机是指基于共享经济模式&#xff0c;将饮水机资源进行共享的服务&#xff0c;区别于传统饮水机&#xff0c;它是一款集物联网控制、远程上报、设备检测等为一体的设备。通过共享饮水机&#xff0c;用户可以方便地获得新鲜的饮用水而不需要购买和维护自己的饮水机。 共享…

算法通关村——迭代实现二叉树的前中后序遍历

前言 递归就是每次执行方法调用都会先把当前的局部变量、参数值和返回地址等压入栈中&#xff0c;后面在递归返回的时候&#xff0c;从栈顶弹出上一层的各项参数继续执行&#xff0c;这就是递归为什么能够自动返回并执行上一层的方法的原因。因此&#xff0c;我们也可以模拟一个…

业务逻辑基础与实操

文章目录 一、定义二、业务逻辑的挖掘1.常见业务流程电信网厅业务火车票订购业务流程网购业务流程 三、挖掘关键点1.验证码突破2.业务授权安全a.未授权访问b.越权访问i)平行越权&#xff08;水平越权是指相同权限的不同用户可以互相访问&#xff09;ii) 垂直越权&#xff08;垂…

Flutter:屏幕适配

flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法&#xff0c;使得开发者可以根据设备的屏幕尺寸和密度…

《剑指offer》(6)其他算法

先计算下三角&#xff0c;再遍历一次计算上三角。 class Solution: def multiply(self , A: List[int]) -> List[int]: #长度判断 n len(A) if n < 1: return [] B [1]*n #计算乘矩阵的下三角&#xff0c;B中的每一个数都是A的前一个数和B的前一个数相乘 for i in ran…

“可一学院”区块链学习平台正式启动,助力BSV技术普及与传播

2023年8月8日&#xff0c;上海可一澈科技有限公司&#xff08;以下简称“可一科技”&#xff09; 正式发布区块链学习平台“可一学院”。“可一学院” 立足于BSV区块链技术本源&#xff0c;汇集了多层次的专业课程和学习资源&#xff0c;致力于打造一个适合各类人群使用的一站式…

MobaXterm 中文乱码, 及pojie

中文解决方法&#xff1a; 把“连字”去掉&#xff01; MobaXterm网页&#xff0c;可以生成一个授权文件Custom.mxtpro。放在安装目录就可以了 MobaXterm Keygen (husbin.top)http://b70.husbin.top:5000/

VS+Qt+C++旅游景区地图导航源码实例

程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。…

药库管理指南:除了药物质量,这个技能很关键

随着医疗技术的不断进步&#xff0c;药品的质量要求也日益严格&#xff0c;药物的稳定性、疗效以及避免细菌滋生等方面都直接受到温湿度变化的影响。 药品质量和安全是医疗行业的首要任务之一&#xff0c;药库温湿度监控在此过程中发挥着关键作用。通过科学合理地实施温湿度监控…

Java 线程的生命周期和状态(实践加深理解)

一、常规回答&#xff08;八股文&#xff09; 线程的生命周期一共分为有6个状态&#xff0c;在某个时刻中&#xff0c;一个线程只会处在6个状态中的其中一种。 第1&#xff1a;初始状态&#xff08;NEW&#xff09; 当前的线程已经被创建了出来&#xff0c;但是还没有通过调用…

宝塔如何部署springboot前后端分离项目

一&#xff1a;准备工作 1.阿里云购买一个centos的服务器 2.环境准备&#xff1a; 2.1 jdk1.8 2.2 nginx 2.3 mysql 2.4 redis 2.5tomcat 这里根据网上的教学很好安装如果是宝塔的话除了redis都可以一键安装 软件商城安装这三个即可 数据库也是可以直接可视化创建并且导入sq…

计蒜客T1115——字符串判等

水题不解释&#xff0c;考研复习压力偶尔写一道换换心情还不错~ 这里有一个比较有趣的知识点&#xff0c;对于同时输入多个字符串时还要允许空格的输入&#xff0c;那么普通的cin函数就不能满足要求了&#xff0c;这里采用getline函数解决&#xff0c;如下&#xff1a; string …

PS 2023 安装选项页面显示不全

文章目录 PS 2023 安装选项页面显示不全解决办法 PS 2023 安装选项页面显示不全 解决办法 按住Tab键&#xff0c;点击该安装选项页面即可&#xff0c;如下如所示&#xff1a;