MetaGPT前期准备与快速上手

大家好,MetaGPT 是基于大型语言模型(LLMs)的多智能体协作框架,GitHub star数量已经达到31.3k+。
接下来我们聊一下快速上手

这里写目录标题

      • 一、环境搭建
        • 1.python 环境
        • 2. MetaGpt 下载
      • 二、MetaGPT配置
        • 1.调用 ChatGPT API 服务
        • 2.简单使用
          • 二十一点游戏
          • 贪吃蛇游戏

一、环境搭建

python 环境最好是 3.9

1.python 环境

利用 anaconda 创建 python3.9 的虚拟环境

conda create -n python39 python-3.9
2. MetaGpt 下载
git clone https://github.com/geekan/MetaGPT.git
cd /your/path/to/MetaGPT
pip install -e .

也可以采取以下方式

pip install metagpt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt==0.5.2
pip install git+https://github.com/geekan/MetaGPT

二、MetaGPT配置

1.调用 ChatGPT API 服务

API 可以在万能的某宝上获取,再次就不多赘述。在此主要想和大家聊了聊怎么调用 AIP

在此之前我们需要:

  • 安装 openai
pip install --upgrade openai
  • 获取 API 密钥 (某宝,文章最后有介绍方法)
  • 配置 python 科学代理

【控制面板】->【网络和Internet】->【Internet选项】->【连接】->【局域网设置】

之后在python里运行下方的代码,将冒号内的内容改为上图红色框框里的地址。

os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"

如下图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

打开我们亲爱的 jupyter (也而已是 pycharm) 运行 简单的测试代码

import os
from openai import OpenAI

os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"

os.environ["OPENAI_API_KEY"] = "sk-*****"

client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},
    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}
  ]
)

print(completion.choices[0].message)

得到以下输出, 调用API成功。

在这里插入图片描述

2.简单使用

接下来通过二十一点和贪吃蛇两个游戏来带大家简单运用一些 MetaGpt

二十一点游戏

该代码在 jupter 运行

代码如下

import asyncio
from metagpt.roles import (
    Architect,
    Engineer,
    ProductManager,
    ProjectManager,
)
from metagpt.team import Team

import os
from openai import OpenAI

os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"

os.environ["OPENAI_API_KEY"] = "sk-*
async def startup(idea: str):
    company = Team()
    company.hire(
        [
            ProductManager(),
            Architect(),
            ProjectManager(),
            Engineer(),
        ]
    )
    company.invest(investment=3.0)
    company.start_project(idea=idea)

    await company.run(n_round=5)
await startup(idea="write a cli blackjack game")

这段代码体现了 MetaGPT 的设计理念,该设计理念认为每个项目都可以抽象为一个标准流程(SOP)。在这个 SOP 下,不同的角色(Role)负责项目的不同方面,组成一个项目组(Team),共同完成项目。在上述代码中,MetaGPT 利用了 ProductManager、Architect、ProjectManager 和 Engineer 四个角色组成了一个项目组(Team),并共同完成了一个游戏开发任务。

metagpt生成了所有的设计文件和代码框架。

在这里插入图片描述

贪吃蛇游戏

接下来我们在 终端 运行

1.首先修改配置文件,拷贝样例配置 config.yaml 中的内容到你的新文件中,然后添加一下内容

OPENAI_BASE_URL: "https://api.openai.com/v1"
OPENAI_PROXY: "http://127.0.0.1:7890"
OPENAI_API_KEY: "sk-***"  # set the value to sk-xxx if you host the openai interface for open llm model
OPENAI_API_MODEL: "gpt-3.5-turbo"
# OPENAI_API_MODEL: "gpt-4-1106-preview"
MAX_TOKENS: 1500
RPM: 10
TIMEOUT: 60 # Timeout for llm invocation

2.然后再终端运行

metagpt "写一个贪吃蛇游戏"

在这里插入图片描述

就会在终端显示思路和代码,随后我们可以在 workspace 目录下看到游戏的全部代码

在这里插入图片描述

运行

MetaGPT\workspace\game_snake\game_snake> python .\main.py

启动!

在这里插入图片描述


在这里讲一讲 openai api key 的获取方法

在获取OpenAI API key之前我们需要openai官网中注册一个账号。这里假设我们已经有了openai账号,先在openai官网登录,然后选择API。(如下图)

在这里插入图片描述

在OPENAI的API官网首页左侧边栏找到API keys,点击进入:

在这里插入图片描述

点击 Create new secret key

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

写在学习webkit过程的前面

webkit起源于KHTML,是KDE开源项目的KHTML和KJS引擎的一部分。在它的诞生和发展过程中,由两家著名的公司参与开发过程中,造成两次裂变。诞生两个内核webkit和blink,并发展和产生了两个主流的浏览器,分别为safari和chrom…

全网快递查询工具:批量查询,提升工作效率的利器

在快递行业日新月异的今天,高效、准确的快递信息管理显得尤为重要。固乔快递查询助手正是一款专为快递网点设计的实用工具,它可以帮助您快速、批量查询全网快递单号,为您的网点运营带来诸多便利。 一、固乔快递查询助手的用途 批量查询&…

跨境商城系统如何开发代购商城、国际物流、一件代发等功能?

跨境商城系统的开发涉及到多个方面,其中代购商城、国际物流和一件代发等功能是其中的重要组成部分。本文将详细介绍如何开发这些功能,以帮助跨境商城系统更好地满足市场需求。 一、代购商城的开发 代购商城是跨境商城系统中的重要功能之一,它…

FilterQuery过滤查询

ES中的查询操作分为两种:查询和过滤。查询即是之前提到的query查询,它默认会计算每个返回文档的得分,然后根据得分排序。而过滤只会筛选出符合条件的文档,并不计算得分,并且可以缓冲记录。所以我们在大范围筛选数据时&…

阅读笔记lv.1

阅读笔记 sql中各种 count结论不同存储引擎计算方式区别count() 类型 责任链模式常见场景例子(闯关游戏) sql中各种 count 结论 innodb count(*) ≈ count(1) > count(主键id) > count(普通索引列) > count(未加索引列)myisam 有专门字段记录…

Python 全栈体系【四阶】(十二)

第四章 机器学习 十五、朴素贝叶斯 朴素贝叶斯是一组功能强大且易于训练的分类器,它使用贝叶斯定理来确定给定一组条件的结果的概率,“朴素”的含义是指所给定的条件都能独立存在和发生。朴素贝叶斯是多用途分类器,能在很多不同的情景下找到…

leetcode17 电话号码的字母组合

方法1 if-else方法 if-else方法的思路及其简单粗暴,如下图所示,以数字234为例,数字2所对应的字母是abc,数字3所对应的是def,数字4所对应的是ghi,最后所产生的结果就类似于我们中学所学过的树状图一样&…

跟着cherno手搓游戏引擎【4】窗口抽象、GLFW配置

引入GLFW: 在vendor里创建GLFW文件夹: 在github上下载,把包下载到GLFW包下。 GitHub - TheCherno/glfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input修改SRC/premake5.lua的配置:12、13、15、36…

异地快速传输大文件的常用方法

在企业间的信息沟通与协作中,快速传输大文件是一项基本需求。然而,跨地域传输庞大文件时,往往面临着网络带宽、文件大小、传输速度以及数据安全等多方面的挑战。本文将介绍四种常用的异地快速传输大文件的方法,并分析它们的优缺点…

数据结构学习之顺序栈应用的案例(有效的括号)

实例要求: 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效; 有效字符串需满足的条件: 1、左括号必须用相同类型的右括号闭合; 2、左括号必须…

robot_sim配置

robot_sim https://github.com/Suyixiu/robot_sim 的issue https://www.bilibili.com/video/BV19f4y1h73E/ 下评论 文件来源 其余克隆 基于几何的抓取 banana不显示 解决参考 https://github.com/Suyixiu/robot_sim/issues/2 (项目配置主要参考) …

LabVIEW在动态力传感器校准技术的创新应用

简介 动态力传感器校准装置集成了冲击法原理和自动化控制,实现精准、高效的传感器校验。LabVIEW的图形化界面提供简便操作和实时数据分析,显著提高了校准过程的准确度和效率。 01 系统设计和功能 动态力传感器在工业生产中发挥着重要作用,…

完整的模型验证套路

读取图片 from PIL import Imageimg_path "../Yennefer_of_Vengerberg.jpg" image Image.open(img_path) print(image)转换成灰度图(可选) image image.convert(L) image.show()转换成RGB格式 image image.convert(RGB)因为png格式是四…

软件测试|MySQL SHOW DATABASES详解

简介 在MySQL中,SHOW DATABASES是一条SQL语句,用于显示当前MySQL服务器上所有可用的数据库。这条简单而常用的命令可以让你快速查看服务器上的数据库列表。本文将详细介绍SHOW DATABASES的使用方法以及相关注意事项。 语法 在 MySQL 中,可…

Linux系统——DNS解析详解

目录 一、DNS域名解析 1.DNS的作用 2.域名的组成 2.1域名层级结构关系特点 2.2域名空间构成 2.3域名的四种不同类型 2.3.1延伸 2.3.2总结 3.DNS域名解析过程 3.1递归查询 3.2迭代查询 3.3一次DNS解析的过程 4.DNS系统类型 4.1缓存域名服务器 4.2主域名服务器 4…

pytorch学习笔记(七 )

池化类似压缩 最大池化-上采样 例如给一个3的话就会生成一个33的窗口(生成相同的高和宽),给一个tuple就会给出一个相同的池化核。stride默认值就是核的大小 dilation 在卷积dialation设置之后每一个会和另外的差一个,空洞卷积 …

微信小程序——调节手机屏幕亮度案例分享

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

C++核心编程——类和对象(二)

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…

代码随想录算法训练营第六天|哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

刷题建议 刷题建议与debug 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。写博客,将自己的感悟沉淀下来,不然会忘大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题&#xff0c…

嵌入式linux 编译qt5(以v851s为例)

本文参考Blev大神的博客:Yuzuki Lizard V851S开发板 --移植 QT5.12.9教程(群友Blev提供) - Allwinner / 柚木PI-V851S - 嵌入式开发问答社区 (100ask.net) 一. 环境准备 1.下载qt5源码:Open Source Development | Open Source …