构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...

这篇具有很好参考价值的文章主要介绍了构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

长太不看版:基于领域驱动设计思考的 AI Agent 框架 Chocolate Factory,框架现在还在 PoC 阶段,欢迎加入开发。(当前主要关注于 SDLC + AIGC 的场景)。

GitHub:https://github.com/unit-mesh/chocolate-factory

Demo 视频:

在过去的一段时间,我们尝试从先前的 AIGC 应用经验里,进行一些再提炼和总结。从起先的 ClickPrompt(https://www.clickprompt.org/)、ChatFlow,到我们的 AI + 软件开发组织 Unit Mesh 下构建了一系列应用:

  • AutoDev。一个具备多语言支持 🌐、自动生成代码 🏗️ 和有用的错误修复助手 🐞 的AI驱动编程巫师!包括可定制的提示 🎨 和神奇的自动测试功能 🧪!🚀

  • DevTi。一个基于 LLM 的微调来提供全面智能化解决方案,助力开发人员高效完成开发任务,以实现自动化用户任务拆解、用户故事生成、自动化代码生成、自动化测试生成等等。

  • CoUnit。一个基于 LLM 的虚拟团队接口人(API),通过向量化文档、知识库、SDK和 API 等,结合 LLM 智能化团队间对接与协作。

  • 以及我们在其它海外、国内的内外部项目上的应用经验。

于是乎,我们开始构建 Chocolate Factory 框架,以实现一个内部的目标:如何在 1 天内将一个复杂场景做成 PoC?

引子 1:回顾 LLM + 工作流

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...,人工智能,ui,测试用例

半年前,我们构建了 ChatFlow:https://github.com/prompt-engineering/chat-flow ,一个围绕 ChatGPT 构建的简易工作流引擎。简单来说:将做事的套路工具化,结合 AI 进行自动化。具体来说:

  1. 我们认为每个具体的问题可以拆为 N 步。

  2. 每一步都需要结合具体的规范和上下文。

  3. N 步之间都是有关联的,诸如于通过 DSL。

我们先前设计的 DSL 如下所示:

# ....
  - name: 分析需求,编写用户故事
    ask: |
      story: $$placeholder$$
    cachedResponseRegex: .*
    values:
      placeholder: |
        用户通过主菜单进入“权限管理”模块,选择“账号管理”Tab页,可以看到“新增账号”按钮。
        点击“新增账号”按钮,系统弹出新增账号窗口(可能还会写一句“背景置灰”)。
        用户可在窗口中填写姓名、登录邮箱……
        若用户未填写必填字段,则点击“确认”时给出错误提醒“请完成所有必填字段的填写!”
        点击“确认”按钮后弹出二次确认窗口,二次确认信息为“确认创建该账号?账号一旦创建成功即会邮件通知对应用户”。用户再次选择“确认”则系统创建账号,若用户选择“取消”则返回填写账号窗口。
  - name: Mermaid 绘制流程图
    ask: |
      我会给你一个模糊的需求,你需要:
      1. 分析和完善需求,但是不需要返回结果给我。
      2. 使用 Mermaid 绘制时序图,但是不需要返回给我。
      3. 最后,只返回 Mermaid 代码,如:"""```mermaid graph {}""",只返回 Mermaid 代码。
      需求,如下:
      """
      $$response:1$$
      """

而在使用 RAG 技术时,即结合向量数据库时,我们可以添加更多的 examples 作为上下文,就可以使 LLM 更理解我们的问题,以输出更理想的解决方案。

引子 2:DDD 的问题空间与解空间

软件系统的构建实则是对问题空间的求解,以此获得构建解空间的设计方案。—— 《解构领域驱动设计》

在领域驱动设计(Domain-Driven Design,简称DDD)中,问题空间(Problem Space)和解空间(Solution Space)是两个关键的概念,用于帮助开发团队理解和建模复杂的领域问题以及设计相应的软件解决方案:(由 ChatGPT 生成

  • 问题空间(Problem Space) 问题空间是指领域中实际的业务问题、需求和挑战,它关注的是业务领域的本质问题和业务需求。在问题空间中,团队与领域专家合作,收集和理解领域的业务规则、流程、概念以及业务需求。

  • 解空间(Solution Space)是指基于问题空间的理解所提出的软件解决方案,包括软件架构、设计模式、编码实现等。在解空间中,开发团队将问题空间的概念和需求映射到具体的代码和技术实现上。

DDD 强调问题空间和解空间之间的分离,这意味着在开始开发之前,团队应该首先深入了解问题空间,与领域专家合作,确保对领域的理解是准确的。然后,他们可以将这个理解映射到解空间,设计和实现相应的软件系统。

Chocolate Factory:将 DDD 应用于 Agent 设计

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...,人工智能,ui,测试用例

(在 Chocolate Factory 中,右边才是真正 AI Agent 的使用领域)

围绕于上面的思考,也就有了 Chocolate Factory 三个核心思想:

  1. 基于问题域的用户意图识别与引导。

  2. 以 DSL 作为问题域与解决方案的中间语言。

  3. 围绕解决方案的内容生成与执行结果。

而如何设计中间的 DSL,以作为问题域的精炼,并作为解决方案的输入,则需要取决于不同领域的场景。

基于我们现有的框架能力,我们在三个场景下构建了示例:

  • text2UI,文本生成前端 UI。步骤分为三个阶段:问题澄清、方案设计和方案执行。

  • text2code,文本生成代码。步骤只有一个阶段:方案执行。

  • text2testcases,文本生成测试用例。

详细可以见前面的参考视频。

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...,人工智能,ui,测试用例

Text2UI 示例

当然了,这么说有一些抽象,我们可以先看个例子。如下是 Chocolate Factory 的文本转 UI 的步骤:

  • 步骤 1:ProblemClarifier:使用响应式布局,编写一个聊天页面

    • 步骤 1.1:ProblemClarifier:左边是一个导航,中间是聊天区,聊天区的下方是一个输入按钮。

  • 步骤 2:SolutionDesigner:请确认以下的设计是否符合您的要求。如果符合,请回复"YES",如果不符合,请提出你的要求。

  • 步骤 3:SolutionExecutor:生成一个聊天页面

最后效果图如下:

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...,人工智能,ui,测试用例

Chocolate Factory 的 Stage 设计

根据上面的思想,我们设计了五个 Stage:

  • ProblemClarifier.kt:根据用户提供的文本来澄清问题,以确保准确理解用户的需求。问题澄清器的任务是分析用户的输入,提取关键信息,可能要求用户提供更多详细信息以确保问题清晰,并将清晰的问题描述传递给下一步。

  • ProblemAnalyzer.kt:可以进一步分析问题,将问题细化成更具体的子问题或任务,以帮助解决方案的设计和执行。

  • SolutionDesigner.kt:根据经过问题澄清和分析后的用户需求,设计一个解决方案。解决方案设计师的任务是将问题领域的需求转化为可执行的计划或设计,确保解决方案符合用户的期望和要求。

  • SolutionReviewer.kt:负责审核已经设计好的解决方案,以确保其质量、安全性和合规性。审核员可能会对解决方案进行测试和评估,并提出建议或修改,以满足特定标准和要求。

  • SolutionExecutor.kt:负责实际执行解决方案的步骤,根据设计好的计划来生成结果。根据具体情况,解决方案执行者的任务可以包括编程、自动化、生成文档等。

在不同的领域里,会根据场景不同,而有所取舍。诸如在测试用例的场景下,text2tecases 的步骤如下:

  • 步骤 1:ProblemAnalyzer 分析用户的需求,确认是否是一个测试用例生成的需求

    • 多 Temperature 模式:TemperatureMode.Default, TemperatureMode.Creative

  • 步骤 2:SolutionDesigner 设计测试用例生成的方案

  • 步骤 3:SolutionReviewer 确认方案是否符合用户的需求

当然,后续还可以继续结合执行场景的代码:

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...,人工智能,ui,测试用例

部署和开发 Chocolate Factory

只需要下载项目,并启动 docker compose 就行了。

git clone https://github.com/unit-mesh/chocolate-factory
# modify OPENAI_API_KEY and OPENAI_HOST in docker-compose.yml
docker-compose up

模块:Code Interpreter

我们从加强了开发的 Unit Runtime 中提供的 REPL 功能,除了原先的 Spring、Ktor 框架的代码段运行,现在还可以支持绘图功能。

模块:Local Embedding

在代码场景上,由于已经有 Bloop 的成功经验,所以我们采用了同样的方式 —— 使用本地 Sentence Transformers 进行 embedding,并进对应的向量化搜索。

小结

Chocolate Factory 框架为解决复杂问题提供了一个结构化的方法,通过结合领域驱动设计和AI生成代码技术,可以快速实现复杂场景的Proof of Concept(PoC)。这个框架的开源性使得更多开发者可以参与并贡献,推动了 AIGC 领域的发展。

框架现在还在 PoC 阶段,欢迎加入框架的开发。

GitHub:https://github.com/unit-mesh/chocolate-factory文章来源地址https://www.toymoban.com/news/detail-707360.html

到了这里,关于构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ‍Java OCR技术全面解析:六大解决方案比较

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年04月15日
    浏览(24)
  • 电脑蓝屏问题排查和解决方案(超全面,超详细)

    本篇文章适用于 解决电脑能正常开机,但是用一会后就蓝屏 的问题。按照下面的顺序进行检查和修复, 绝大部分蓝屏问题都能得到解决 。 电脑蓝屏可以从三个方面进行检查: 1、内存条,2、硬盘,3、程序或者软件驱动。 1.内存条 内存条出问题或者损坏会导致电脑蓝屏,可

    2024年02月09日
    浏览(29)
  • 修复“找不到unityplayer.dll”故障:全面解析与实用解决方案大全

    在运行基于Unity引擎开发的游戏或应用时,遭遇“找不到unityplayer.dll,无法继续执行代码”的错误提示,意味着系统未能找到该核心动态链接库(DLL)文件,从而导致程序无法启动或正常运行。本文将深入解析该问题的原因,提供一系列详细的排查步骤与有效的修复策略,帮

    2024年04月12日
    浏览(51)
  • jenkin构建报错信息及解决方案

    报错信息1:Exception when publishing, exception message 最近一直在做Jenkins项目,也经常会出现一些报错信息,今天在测试的时候出现了下面的报错信息,所以现在记录一下我的报错过程及解决方案。 原因及解决办法 : 在我思考并查找后发现原因是我的连接的后端服务器IP地址改变了

    2024年02月11日
    浏览(41)
  • 由于找不到unityplayer.dll无法继续执行代码如何解决?UnityPlayer.dll丢失引发的程序执行障碍问题解析与全面解决方案指南

    在使用Unity引擎开发的游戏或应用中,时常会遇到一个常见的问题:“由于找不到unityplayer.dll,无法继续执行代码。”这个错误信息表明,运行环境在尝试启动基于Unity制作的应用程序时,无法找到一个关键的动态链接库(DLL)文件——UnityPlayer.dll,从而导致程序无法正常启动

    2024年04月15日
    浏览(27)
  • 构建未来的数字世界:创新开放API接口认证解决方案

    目录 1、引言 1.1 数字世界的发展 1.2 API接口的重要性 1.3 API接口认证的挑战 2、现有的API接口认证解决方案 2.1 基于令牌的认证方法 2.2 OAuth认证 2.3 OpenID认证 2.4 API密钥认证 3、创新开放API接口认证解决方案 3.1 双因素认证 3.2 生物特征认证 3.3 区块链认证 3.4 基于智能合约的认证

    2024年01月25日
    浏览(42)
  • KubeSphere 镜像构建器(S2I)服务证书过期解决方案

    目前 KubeSphere 所有 3.x.x 版本,如果开启了 DevOps 模块并使用了镜像构建器功能(S2I)都会遇到证书过期问题。 已开启 DevOps 模块 下载这个更新 S2I 服务证书压缩包,上传到任一可以访问 K8s 集群的节点; 把上传的压缩包解压 进入解压后的目录 执行更新证书的脚本 ./update-s2i

    2024年02月22日
    浏览(32)
  • 方案:AI边缘计算智慧工地解决方案

    在工程项目管理中,工程施工现场涉及面广,多种元素交叉,状况较为复杂,如人员出入、机械运行、物料运输等。特别是传统的现场管理模式依赖于管理人员的现场巡查。当发现安全风险时,需要提前报告,然后找到管理人员进行处理解决,过程十分繁琐。而且,人工管理

    2024年02月11日
    浏览(32)
  • 疑似ai写作怎么解决,解决方案

    随着人工智能技术的飞速发展,疑似AI写作的问题也日益凸显。如何有效解决这一问题,成为了当前亟待探讨的话题。本文将从七个方面展开讨论,以期为解决疑似AI写作提供一些思路和建议。 一、定义疑似AI写作 疑似AI写作指的是在文本中表现出类似人工智能的写作风格或模

    2024年04月22日
    浏览(24)
  • 使用UiPath和AA构建的解决方案 3. CRM 自动化

    您是否曾经从一个应用程序中查找数据并更新另一个系统? 在许多情况下,人们在系统之间复制和移动数据。有时,可能会发生“转椅活动”,从而导致人为失误。RPA可以帮助我们自动化这些活动,使其更快,同时还可以消除任何人为错误。 在这个项目中,我们将在客户服

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包