建网站要钱吗,开发公司工程项目质量安全管理体系,县城做信息网站,济南正规网站建设公司MetaGPT是一个基于大型语言模型#xff08;LLMs#xff09;的多智能体协作框架。它利用SOP#xff08;Standard Operating Procedures#xff0c;标准作业程序#xff09;来协调基于大语言模型的多智能体系统#xff0c;从而实现元编程技术。该框架使用智能体模拟了一个虚…MetaGPT是一个基于大型语言模型LLMs的多智能体协作框架。它利用SOPStandard Operating Procedures标准作业程序来协调基于大语言模型的多智能体系统从而实现元编程技术。该框架使用智能体模拟了一个虚拟软件团队包含产品经理、架构师、项目经理、工程师、质量工程师等角色并引入SOP成为框架的虚拟软件团队的开发流程。
安装部署
MetaGPT提供了两种部署方式pip本地部署和docker部署。 这里使用pip进行了安装
# 创建虚拟环境
conda create -n py39 python3.9
conda activate py39
# clone项目到本地
git clone https://github.com/geekan/MetaGPT.git
cd /your/path/to/MetaGPT
pip install -e .
项目提供了一些例子比如贪吃蛇展示MetaGPT的设计理念即每个项目都可以抽象为一个标准流程SOP不同的角色负责项目的不同方面组成一个项目组共同完成任务。 尝试
除了OpenAI外MetaGPT还支持国内的智谱、讯飞星火等。这里使用智谱的开放平台目前平台会提供大概200万的测试用的额度。基本可以满足学习需求。
【默认安装后的版本是0.6.0直接使用的话发现会失败后来看到文档上说目前需要使用0.5.2的版本将版本回退后便可以执行成功】
适配其他国产模型 - 飞书云文档 (feishu.cn)
# 可导入任何角色初始化它用一个开始的消息运行它完成
import osos.environ[ZHIPUAI_API_KEY] 申请的KEYimport asyncio
import re
import subprocessimport firefrom metagpt.actions import Action
from metagpt.logs import logger
from metagpt.roles.role import Role, RoleReactMode
from metagpt.schema import Messageclass SimpleWriteCode(Action):PROMPT_TEMPLATE: str Write a python function that can {instruction} and provide two runnnable test cases.Return python your_code_here with NO other texts,your code:name: str SimpleWriteCodeasync def run(self, instruction: str):prompt self.PROMPT_TEMPLATE.format(instructioninstruction)rsp await self._aask(prompt)code_text SimpleWriteCode.parse_code(rsp)return code_textstaticmethoddef parse_code(rsp):pattern rpython(.*)match re.search(pattern, rsp, re.DOTALL)code_text match.group(1) if match else rspreturn code_textclass SimpleRunCode(Action):name: str SimpleRunCodeasync def run(self, code_text: str):result subprocess.run([python3, -c, code_text], capture_outputTrue, textTrue)code_result result.stdoutlogger.info(f{code_result})return code_resultclass SimpleCoder(Role):name: str Aliceprofile: str SimpleCoderdef __init__(self, **kwargs):super().__init__(**kwargs)self._init_actions([SimpleWriteCode])async def _act(self) - Message:logger.info(f{self._setting}: to do {self._rc.todo}({self._rc.todo.name}))todo self._rc.todo # todo will be SimpleWriteCode()msg self.get_memories(k1)[0] # find the most recent messagescode_text await todo.run(msg.content)msg Message(contentcode_text, roleself.profile, cause_bytype(todo))return msgclass RunnableCoder(Role):name: str Aliceprofile: str RunnableCoderdef __init__(self, **kwargs):super().__init__(**kwargs)self._init_actions([SimpleWriteCode, SimpleRunCode])self._set_react_mode(react_modeRoleReactMode.BY_ORDER.value)async def _act(self) - Message:logger.info(f{self._setting}: to do {self._rc.todo}({self._rc.todo.name}))# By choosing the Action by order under the hood# todo will be first SimpleWriteCode() then SimpleRunCode()todo self._rc.todomsg self.get_memories(k1)[0] # find the most k recent messagesresult await todo.run(msg.content)msg Message(contentresult, roleself.profile, cause_bytype(todo))self._rc.memory.add(msg)return msgdef main(msg创建一个定时将目录下文件推送到某FTP的程序每次推送完成后将已经推送的文件迁移到其他目录进行备份备份的文件保留2天):# role SimpleCoder()role RunnableCoder()logger.info(msg)result asyncio.run(role.run(msg))logger.info(result)if __name__ __main__:fire.Fire(main)
关于智能体
智能体 LLM观察思考行动记忆
可能对于程序员来说我觉得可以用更加简单的方式去理解这个概念。所谓的智能体有些像我们借助大模型的能力模拟出多个角色当我们提出一个问题后可以通过这些角色分工合作来解决。然后metagpt的功能更像是让我们简化定义操作角色的方式。这样可以让我们可以通过相对简单的方式模拟出N个角色让智能体来解决问题。
通过Demo的体验总的感觉来说是很不错的~
让我们快乐的折腾吧~ 过程中的一些困惑
其实周围的人对于大模型的态度差异很大有的人觉得大模型不太靠谱还需要继续发展有的人觉得大模型是未来的一个热点~~
嗯对于我来说整体来说是比较看好大模型的但是使用过程中也遇到了一些困惑。
效率问题目前测试的时候也就执行了五六次代码就消费了6~7w的token。消耗感觉还是挺大的感觉如果是个人的话有些消费不起。。在单位部署了ChatGLM3B但是在家没法这么玩。高度的依赖LLM 大模型的好坏其实直接影响了后面的一切。个人其实没法很好的去开发定义大模型底层的东西而且要求的能力也很高。有些任务很复杂并不是很容易解决。对于需要多个步骤的任务每一个决策都会影响后面的决策最终可能直接影响整个决策的质量智能体在这方面可能并不是很容易解决。而且有的任务并不是需要每个过程都完美还是需要从全局去考虑的。~~