当前位置:首页|资讯|AIGC|艺术

软件工程3.0实践之路(四):LLM辅能软件设计,有惊喜

作者:书圈发布时间:2024-02-25

原标题:软件工程3.0实践之路(四):LLM辅能软件设计,有惊喜

正如在开篇:软件工程3.0实践之路(一)中介绍道,LLM在软件需求定义、开发和测试上应用比较普遍,但在设计上比较薄弱,应用比较少。现在AIGC火热,文生图、图生图比较流行,LLM在艺术作画、宣传海报设计上能发挥作用,甚至让不少平面设计人员下岗了,但在软件设计(如UI设计、架构设计、数据库设计、接口设计等)上似乎不能大显身手,在这方面也难以见到精彩的分享。

今天我知难而上,聊聊LLM如何赋能软件设计。

我先问问最近火起来的Google的Gemini:LLM如何赋能软件设计?

从其回答来看,LLM在软件设计中还是比较乐观的,可以应用于架构设计、UI设计、数据库设计和接口设计等。那我们下面就尝试这方面实践,检验能否达成Gemini所说的状态。

1. 创建智能体:架构设计助手

我还是尝试用智谱清言来创建一个智能体,然后和智能体进行对话来帮忙完成软件设计。

我们还可以给它上传知识库文件,只是这部分,我缺乏足够的文档去构建知识库,我相信一家企业会有足够的文档来支撑架构设计的知识库。

2. 整体设计和架构设计

有了智能体“技术架构师”助手,我就可以和它一起来完成架构设计中的一些任务。

首先我上传了一个业务需求文档《某银行催收系统业务需求》,然后让它基于这个文档来完成系统的整体设计。

让它根据文字生成架构图是有挑战的·,我试试多家基于LLM的应用,看看哪家可以支撑架构图的生成。GPT-4/GPT-3.5 Turbo不支持架构图的生成,我还是不得不问我的智能体“技术架构师助手”,它画了一张简单的架构图,它能画但画得过于简单:

这不能算画,而是靠文字拼成。试了百度的文心一言,也是靠文字拼成,但效果好一些:

两份架构设计都谈到API网关,那就让它们帮忙设计API网关。先看在智谱清言中定义的智能体给出的详细设计。

然后再看文心一言给的设计。

设计是自顶向下分解的过程,我们可以继续针对所关注的某项内容或某个组件,让智能体或文心一言继续帮助进行设计。上面是第一次生成的结果,如果觉得有问题,我们还是可以指出问题,并通过更好的提示词(表达)来获得更好的结果。正如我常说的,“人机交互”是常态,发挥各自的优势,让人机智能1+1大于2。

前面,我们试图让LLM完成系统设计方案、生成架构图等。如果图的素材不适合LLM的训练,也可以借助UML语言工具(PlantUML,详见https://plantuml.com/zh/guide)的转换,通过类似程序语言的DSL素材来训练/微调LLM,从而生成UML,来辅助我们完成软件设计,包括序列图、部署图等。这样借助单模态的LLM就能完成软件设计,而不需要多模态的LLM。

但多模态的LLM已经出现了,未来生成架构图或UML图,也不会是问题。最近两天,OpenAI的文生视频大模型Sora被刷屏,效果惊艳,人们预测离AGI(人工通用智能)不远了,也许2-3年就到来当AGI到来时,架构设计、详细设计等问题就迎刃而解了。

已关注

关注

重播分享

关闭

观看更多

更多

    退出全屏

    视频加载失败,请刷新页面再试

    刷新

    视频详情

    (已经精准生成我们所设想的画面,from OpenAI)

    除了生成设计图,我们也可以反过来,让LLM帮忙审查架构图,指出架构设计的问题。

    我上传了一张相对复杂的、银行某系统的架构设计图(英文),让Google Gemini帮忙评审、指出问题。

    分析得清清楚楚。我再上传一张国内银行的系统架构图,让智能体帮忙分析。

    “然而,该系统的缺点可能是” 没有另起一行,格式不够理想,但效果还是不错的。由于篇幅所限,其它一些好的实践案例,就不放上来了。

    在设计工作上,其实可以借助多个LLM来帮忙,例如让文心一言帮忙设计架构图,然后我们设计人员在此基础上丰富设计图,然后再输入给Gemini,让它评审,相当于在多个智能体上进行博弈,最终获得相对完美的设计

    国内也有一些专家在进行这方面探索,例如架构副驾驶ArchGuard co-mate(帮助架构的设计与治理,详见https://github.com/unit-mesh/co-mate)设计了一套 DSL,让 LLM 根据不同的场景填空和编写 DSL。

    (放松一会,看一个广告,然后继续精彩内容)

    3. UI设计

    其实,当人们讨论AIGC时,特别是文生图,自然我们就想到,让LLM帮助完成软件的UI设计,虽然不能一步到位,但可以给我们一些设计的灵感或出一张设计草图。

    我们可以先让智能体帮我们生成设计草图或给出设计指导意见,如下:

    ......

    然后把这要求给文生图工具或插件,让它帮忙生成设计图:

    虽然不能直接使用,但可以作为参考样例。另外,有相关的一些工具或开源项目,例如:https://github.com/oobabooga/text-generation-webui。

    按照昨天的文章 全面解读OpenAI Sora,揭秘AI技术的未来 中说道:产品设计师可以使用 Sora 将他们的概念变为现实,直接从他们的描述中呈现产品设计的逼真视频演示,获得设计效果,然后设计师再完成产品的真实设计。

    已关注

    关注

    重播分享

    关闭

    观看更多

    更多

      退出全屏

      视频加载失败,请刷新页面再试

      刷新

      视频详情

      (真实呈现空间和艺术品,from OpenAI)

      再介绍这一领域探索、获得初步成果的两篇论文。

      论文1: PromptInfuser: Bringing User Interface Mock-ups to Life with LLMs

      • 大型语言模型(LLMs)和提示编程降低了原型设计人工智能功能的障碍,使新手能够通过自然语言提示快速创建定制的人工智能功能。
      • 将LLM提示整合到用户界面模拟中可以显著加快功能原型的创建速度,让设计师更早地了解他们的设计将如何与人工智能集成,并在设计过程的早期阶段使用功能原型进行用户研究。
      • PromptInfuser是一个Figma插件,可以让设计师将LLM功能融入用户界面模拟中,引入了两种新颖的LLM交互方式:输入-输出和框架更改。
      • 将LLM提示整合到用户界面设计中可以通过紧密整合UI和AI原型设计来改变设计流程,但可能需要额外支持提示编写,以确保更顺畅的原型设计体验。

      论文2:Exploring Mobile UI Layout Generation using Large Language Models Guided by UI Grammar

      • 本文探讨了利用大型语言模型(LLMs)生成移动用户界面(UI)布局,并引入了UI语法的概念,以指导LLMs的生成能力,提高生成过程的可解释性和可控性。
      • 讨论了LLMs在UI布局生成方面的潜力,以及应用UI语法来表示UI元素中固有的分层结构,旨在改进生成过程和生成结果的质量。
      • 文中介绍了使用GPT-4进行的初步实验,展示了LLMs通过上下文学习产生高质量UI布局的潜力,以及UI语法在改进生成质量的某些方面上的潜力。
      • 概述了用于UI布局生成的提示设计,包括表示上下文学习中的UI元素和将分层结构整合为UI语法以指导生成过程。
      • 讨论了使用LLMs和UI语法对未来研究的影响,包括生成高保真度UI原型的潜力,以及在UI布局生成方面需要进一步改进和评估的需求。

      除了LLM可以做这些工作,它还可以评审UI设计,指出我们设计中的问题。下面就是一个比较具体、生动的实例。

      4. 设计咨询

      LLM,自然是一个很好的设计顾问,我们可以向它了解架构设计、UI设计、数据库设计、设计模式等相关的知识或实践经验。这个无需多演示,这里就给一个设计模式咨询的结果,

      给了这么多例子,我相信你开始相信LLM能很好地赋能软件设计。


      Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1