如何用MetaGPT帮你写一个贪吃蛇的小游戏项目

如何用MetaGPT帮你写一个贪吃蛇的小游戏项目

MetaGPT是基于大型语言模型(LLMs)的多智能体写作框架,目前在Github开源,其Start数量也是比较高的,是一款非常不错的开源框架。

下面将带你进入MetaGPT的大门,开启MetaGPT的体验之旅。首先是入门教程,如何安装及使用MetaGPT。

一、环境安装
  1. python环境安装,MetaGPT所需的Python环境是3.9+,故你的电脑需要安装Python3.9+版本,推荐使用Python3.10或3.9
    首先,打开Python的下载页面,我这里选择安装的版本是3.10.11,根据自己电脑情况选择对应安装包;
    在这里插入图片描述
    具体的Python安装教程,可以看我这篇文章Python3.10安装教程

  2. Git安装

    Git的安装教程可查看之前写得一篇文章Git 安装教程

  3. npm安装

  4. VsCode安装

    npm安装和VsCode 安装也非常简单,大家可自行搜索即可。

二、安装MetaGPT

上述第一节中的环境安装完毕之后,即可进行MetaGPT的安装。MetaGPT的安装方式不唯一,基本有两种安装方式可以选择:

  • 使用pip 安装MetaGPT像导入Python包一样把MetaGPT导入;
  • 也可以通过Github仓库下载后进行安装的方式。

本文使用第二种方式进行,第一种方式不过多赘述。

  1. 使用pip安装

在终端中使用命令:pip install metagpt,目前推荐使用v0.5.2,使用指令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt==0.5.2
  1. 通过Github下载后安装
  • 打开VsCode,打开一个terminal,通过指令进入到一个空白目录,开始通过git拉取文件

  • 在这里插入图片描述

  • 在终端中输入:git clone https://github.com/geekan/MetaGPT.git,确认后拉取代码
    在这里插入图片描述

  • 拉取的代码是所有版本的,可在右下角选择版本分支,这里选择v0.5.2版本
    在这里插入图片描述
    在这里插入图片描述

  • 版本选择完毕后,可在左侧看到MetaGPT的代码文件

在这里插入图片描述

  • 进行依赖的下载和metaGPT的安装。首先打开一个新的terminal,输入python -m pip install -r requirements.txt进行依赖下载(PS: 这里根据大家网络的不同,下载时间可能不同,耐心等待即可)在这里插入图片描述
  • 看到Successfully installed ....说明依赖安装完成
    在这里插入图片描述
  • 依赖安装完成后,继续通过命令python setup.py install完成安装,当你看到·Finished Processing ...,恭喜你,已经完成了metaGPT v0.5.2版本的安装。
    在这里插入图片描述
三、配置文件的修改

接下来就是配置文件的修改:在metaGPT目录中,找到config文件夹,然后修改config.yaml文件中的OPENAI_API_KEY的信息。

在这里插入图片描述


[重要!!!]

注意:这里使用的是OpenAiAPI,如果你没有OpenAi的账号,那么可以选择注册一个新的,至于怎么操作,这里不过多赘述。

config.yaml文件中,我们也可以看到其余的一些模型的API,如果你没有OpenAi的账号也不打算新注册,可以使用智谱或其他模型,当然我们还是非常推荐使用OpenAi官方提供的接口,尤其是ChatGPT-4。

四、开始使用

当上述准备就绪以后,我们就可以使用MetaGPT了:

  1. 新打开一个terminal,输入命令:python startup.py "write a cli snake game"开始执行一个贪吃蛇游戏项目的生成任务
    在这里插入图片描述
  2. 当我们看到以下截图是,说明我们的项目已经生成完成了,运行文件及目录在打印中给出,大家可自行查看
    在这里插入图片描述
五、常见问题
  1. 最新的代码中没有了startup.py,如果有以下报错,请自行下载startup.py文件,并放到MetaGPT根目录下再运行
    在这里插入图片描述

  2. 网络问题,大家在使用OpenAIAPI时,如果遇到PRD卡住/ 无法访问 / 连接中断等问题可参考下面解决办法:

    1. OPENAI_API_BASE官方地址为:https://api.openai.com/v1

    2. 如果自己的环境中OPENAI_API_BASE官方地址不可访问(可通过curl验证),那么建议配置使用openai-forward等库给出反向代理OPENAI_API_BASE,例如:

      OPENAI_API_BASE: "https://api.openai-forward.com/v1"
      
    3. 如果自己的环境中OPENAI_API_BASE官方地址不可访问,还有一种办法是配置OPENAI_PROXY参数,这样就可以通过本地代理来访问官方的OPENAI_API_BASE。如果不需要通过代理访问,请不要开启这个配置;如果需要通过代理访问,请把它改成你正确的代理地址。注:开启OPENAI_PROXY时,不要设置OPENAI_API_BASE

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

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

相关文章

Uncaught TypeError: Cannot set properties of null (setting ‘textContent‘)是什么原因

这个错误提示表示试图设置一个 null 值的 textContent 属性,这通常是因为在试图操作一个不存在的或者不存在于文档中的元素而导致的。 在使用 document.getElementById() 或者类似的方法获取元素时,如果参数所对应的元素不存在时,会返回 nul…

代码随想录算法训练营第二十天|236. 二叉树的最近公共祖先

236. 二叉树的最近公共祖先 private TreeNode ans null;private int postOrder(TreeNode root, TreeNode p, TreeNode q) {if (root null) {return 0;}//查看子结点的梳计个数int lcnt postOrder(root.left, p, q);int rcnt postOrder(root.right, p, q);//利用子结点返回…

《C++大学教程》4.13汽油哩数

题目: 每位司机都关心自己车辆的行车里程数。有位司机通过记录每次出行所行驶的英里数和用油的加仑数来跟踪他多次出车的情况。请开发一个C程序,它使用一条while语句输入每次出车的行驶英里数和加油量。该程序应计算和显示每次出车所得到的每加仑行驶英里数&#x…

Flutter开发进阶之并发操作数据库

Flutter开发进阶之并发操作数据库 尽管 Flutter 本身不包含任何数据库功能,但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能; 以下将使用sqflite作为例子,sqflite允许在 Flutter 应用程序中执行 SQL 查询,创…

基于深度学习的多类别电表读数识别方案详解

基于深度学习的多类别电表读数识别方案详解 多类别电表读数识别方案详解项目背景项目难点最终项目方案系列项目全集: 安装说明环境要求 数据集简介数据标注模型选型明确目标,开始下一步的操作 检测模型训练模型评估与推理番外篇:基于目标检测…

pi gpio 内存映射

树霉pi gpio内存映射 #include <stdio.h> #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> #include <stdlib.h>#define BCM2835_PERI_BASE 0x20000000 #define GPIO_BASE (BCM2835_PERI_BASE 0x200000) #define PAGE_SIZE…

vue3移动端适配

将vue3项目中的 px 单位&#xff0c;自动转换为rem 单位 可以看到这里会根据页面缩小放大变化 需要安装两个插件&#xff0c;看步骤 amfe-flexible --- 默认指向2.2.1版本 npm i -S amfe-flexiblepostcss-pxtorem --- 默认指向6.0.0版本 --save-dev 参数会把依赖包的版本信…

后端使用response.reset()导致出现跨域问题

前言 今天联调文件下载的接口&#xff0c;由于自己用postman测试一直都没问题&#xff0c;但是在和前端联调的时候前端就会出现如下跨域的报错&#xff0c;但是项目是做了统一的跨域处理的&#xff0c;代码类似于下面&#xff1a; ApiOperation("下载附件")PostMap…

机器学习---lightGBM

1. lightGBM演进过程 AdaBoost是⼀种提升树的方法&#xff0c;和三个臭皮匠&#xff0c;赛过诸葛亮的道理⼀样。 AdaBoost两个问题&#xff1a; (1) 如何改变训练数据的权重或概率分布提高前⼀轮被弱分类器错误分类的样本的权重&#xff0c;降低前⼀ 轮被分对的权重 (2) 如何…

vue3、vue2文件导入事件

一、vue3写法 1、html部分 <el-buttontype"info"plainicon"Upload"click"handleImport"v-hasPermi"[system:user:import]">导入</el-button><!-- 导入对话框 --><el-dialog :title"upload.title" v-…

set容器和multiset容器

set容器和multiset容器 文章目录 set容器和multiset容器一、基本概念二、set容器1、构造和赋值2、大小和交换3、插入和删除4、查找和统计5、排序规则 三、pair对组 一、基本概念 头文件&#xff1a; #include <set>本质: ●set和multiset属于关联式容器&#xff0c; 底层…

mysql进阶-索引基础

目录 1. 概念-索引是什么&#xff1f; 2. 索引的数据结构(索引模型) 2.1 二分查找&#xff1a; 2.2 二叉查找树&#xff08;BST Binary Search Tree&#xff09;&#xff1a; 2.3 平衡二叉树(AVL Tree Balanced binary search trees) 2.4 多路平衡查找树(B Tree Balanced…

推荐一款通过ssh连接linux服务的开源工具WindTerm

文章目录 前言WindTerm介绍WindTerm使用主密码和锁屏总结 前言 工作一入门便是游戏服务器开发&#xff0c;所以常常有连接Linux服务器的需求&#xff0c;之前用的最多的是Xshell&#xff0c;最近这个软件个人版只能免费使用一个月了&#xff0c;超过时间会提示更新无法正常使用…

个人总结钉钉7.5新品发布会

钉钉发布了 7.5 版本&#xff0c;最主要推出了围绕AI能力的各项升级&#xff0c;通过AI“超级助理”提升组织内部的沟通协作效率、管理决策智能化程度&#xff0c;以及相关的音视频、在线文档、Teambition功能的升级&#xff0c;以满足不同企业的多元化需求。截至发布会&#x…

C++学习笔记——输入、输出和文件

目录 一、标准输入输出 2.1下面是它们的基本用法 解释 二、格式化输入输出 2.2下面是一个示例 解释 三、文件读写 3.3下面是一个文件读写的示例 解释 四、异常处理和错误检测 4.1下面是一个示例 解释 五、一个实例代码 5.1如何读取 CSV 文件&#xff0c;并计算每…

【数据结构】交换排序

插入排序链接。 这篇文章讲解交换排序的两种排序&#xff1a;冒泡排序与快速排序。 目录 冒泡排序&#xff1a;完整代码&#xff1a; 快速排序&#xff1a;单趟排序&#xff1a;hoare&#xff1a;挖坑&#xff1a;前后指针&#xff1a; 完整代码&#xff08;3种方式&#xff0…

从零开发短视频电商 PaddleOCR Java推理 (二)优化Translator模型输入和输出

PaddleOCR提供了一系列测试图片&#xff0c;你可以通过点击这里来下载。 值得注意的是&#xff0c;PaddleOCR的模型更新速度远远快于DJL&#xff0c;这导致了一些DJL的优化滞后问题。因此&#xff0c;我们需要采取一些策略来跟上PaddleOCR的最新进展。 针对文本识别模型&…

3 - AOP

1. 快速入门 1.1 基本说明 AOP(aspect oriented programming) &#xff0c;面向切面编程 切面类中声明通知方法&#xff1a; 前置通知&#xff1a;Before返回通知&#xff1a;AfterReturning异常通知&#xff1a;AfterThrowing后置通知&#xff1a;After环绕通知&#xff1…

2、Redis持久化、主从与哨兵:构建强大而稳定的数据生态

Redis作为一款高性能的内存数据库&#xff0c;其在持久化、主从复制和哨兵系统方面的支持使其在大规模应用和高可用性场景中脱颖而出。本文将深入探讨Redis的持久化机制、主从复制以及哨兵系统&#xff0c;为构建强大而稳定的数据生态揭示关键技术。 持久化&#xff1a;数据的…

http状态码对照表

状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收&#xff0c;且仍未被拒绝。客户端应当继续发送请求的剩余部分&#xff0c;或者如果请求已经完成&#xff0c;忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。…