当前位置: 首页 > news >正文

电子商务网站建设目的多用户商城系统的服务商

电子商务网站建设目的,多用户商城系统的服务商,公司变更注销,网站源码 一品资源网参考: metagpt环境配置参考模型智能体开发之metagpt-单智能体实践 需求分析 之前有过单智能体的测试case,但是现实生活场景是很复杂的,所以单智能体远远不能满足我们的诉求,所以仍然还需要了解多智能体的实现。通过多个role对动…

参考:

  1. metagpt环境配置参考
  2. 模型智能体开发之metagpt-单智能体实践

需求分析

  1. 之前有过单智能体的测试case,但是现实生活场景是很复杂的,所以单智能体远远不能满足我们的诉求,所以仍然还需要了解多智能体的实现。通过多个role对动作的关联、组合来构建一个工作流程,从而使智能体能够完成更加复杂的任务
  2. 基于单智能体测试case的扩展,我们的诉求在简单的输出code的基础上新增一条就是生成code并且立刻运行code。那么这个时候我们就需要两个action,一个负责生成code,一个负责执行code

实现

  1. 定义一个负责生成code的action,参照单智能体的测试case
    模型智能体开发之metagpt-单智能体实践

  2. 定义一个负责运行code的action

    class SimpleRunCode(Action):name: str = "SimpleRunCode"async def run(self, code_text: str):result = subprocess.run(["python3", "-c", code_text], capture_output=True, text=True)code_result = result.stdoutlogger.info(f"{code_result=}")return code_result
    
    1. 运行code不需要调用llm,所以不涉及到prompt模版的设计
    2. 这里通过python的标准库 subprocess来fork一个子进程,运行一个外部程序
      1. subprocess:包内定义了多个可以创建子进程的函数,这些函数分别以不同的方法来创建子进程,所以按需使用即可
      2. 在本次的case里面通过subprocess.run在fork一个子进程执行传入的代码,那么在fork之后,存在两个进程,一个是python程序本身的进程,另一个就是subprocess.run创建的子进程,两个进程是互不干预的
      3. 在父进程中通过result.stdout来获取子进程的执行结果
  3. 定义 RunnableCoder 角色

    1. 完整的代码

      class RunnableCoder(Role):name: str = "Alice"profile: str = "RunnableCoder"def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([SimpleWriteCode, SimpleRunCode])self._set_react_mode(react_mode=RoleReactMode.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(k=1)[0]  # find the most k recent messagesresult = await todo.run(msg.content)msg = Message(content=result, role=self.profile, cause_by=type(todo))self.rc.memory.add(msg)return msg
      
    2. 可以看到在重写init方法的时候,这里关联了两个actionSimpleWriteCode, SimpleRunCode

      1. react_mode 设置为 “by_order”,这意味着 Role 将按照 self._init_actions 中指定的顺序执行其能够执行的 Action。在这种情况下,当 Role 执行 _act 时,self._rc.todo 将首先是 SimpleWriteCode,然后是 SimpleRunCode
      def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([SimpleWriteCode, SimpleRunCode])self._set_react_mode(react_mode=RoleReactMode.BY_ORDER.value)
      
    3. 重写act方法

      1. 覆盖 _act 函数。Role 从上一轮的人类输入或动作输出中检索消息,用适当的 Message 内容提供当前的 Action (self._rc.todo),最后返回由当前 Action 输出组成的 Message
      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(k=1)[0]  # find the most k recent messagesresult = await todo.run(msg.content)msg = Message(content=result, role=self.profile, cause_by=type(todo))self.rc.memory.add(msg)return msg
      
    4. 测试

      1. 代码

        async def main():msg = "write a function that calculates the sum of a list"role = RunnableCoder()logger.info(msg)result = await role.run(msg)logger.info(result)asyncio.run(main())
        
      2. 运行

      3. 在这里插入图片描述

demo如果想正常运行的话,需要调用llm的key,环境配置可以参照 metagpt环境配置参考

http://www.yayakq.cn/news/840220/

相关文章:

  • 重庆永川网站建设公司林州网站建设哪家便宜
  • 学做网站游戏教程山东济南报备小程序
  • 企业网站系统源码html网页制作的软件下载
  • 定州网站制作多少钱微营销系统
  • 本地部署iis部署网站网页设计实训报告2000字
  • 网站开发使用什么运行软件禁用 wordpress 自带 jquery
  • 收到短信说备案被退回但工信部网站上正常啊软件推广平台有哪些
  • php投票网站Win10卸载wordpress
  • 西凤酒网站建设的目标网站做很久了百度没收录
  • 可以做猫头像的网站响应式网站宽度
  • 青岛网站建设招标网站建设的软硬件平台
  • 举报非法网站要求做笔录网站关键词排名检测工具
  • 免费行情软件app网站直播无视风险安装下载app软件
  • 白云区做网站网站维护内容有哪些
  • 企业网站开发需求文档广州市白云区网站建设维护
  • 建设人才证书查询网站h5作品
  • 怎么在wordpress上设计网站手机wordpress怎么保存图片
  • 网站标题几个字合适杭州门户网站开发
  • 外贸建站与推广如何做互联网招商项目
  • 织梦做商城类网站教程现在做一个网站多少钱
  • 12380 举报网站建设电脑网站打不开什么原因
  • 有了主机如何做网站网站首页该怎么做
  • 已经有网站怎么做淘宝客程序员做电商网站的公司好吗
  • 合肥市做网站的公司有哪些网站建设实践课程报告
  • 营销型建设网站实训总结模板下载免费网站
  • 游网站建设方案内容dede学校网站
  • 广东企业网站制作专业网站建设公司兴田德润优惠吗
  • 婚恋网站建设太原百度公司找山西云起时
  • 建立网站来网上销售的英文自助定制网站开发公司
  • 免费网站建设站忘记网站后台账号