关系经济人类预测化学自然
中准网
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

如何用一个ChatGpt,绘制C4架构图

9月21日 倾城傷投稿
  今天,我们一起来看看ChatGPT能不能更进一步释放工程师的生产力,创造更多的可能性。
  所以,这次我们就来尝试用ChatGPT,来构建账号系统的C4模型的架构图啦。
  由于ChatGPT不能直接输出图像,所以我们转化为用Mermaid的脚本,通过markdown的方式输出,再用支持Mermaid渲染的工具,将图片显示出来。生成数据库初始化SQL
  我们首先来试试,生成数据库初始化SQL吧。
  提示:将以上账号系统的数据模型,生成MySQL数据库的SQL
  ChatGPT:创建表:AccountCREATETABLEAccount(idINTPRIMARYKEY,usernameVARCHAR(50)NOTNULL,passwordVARCHAR(50)NOTNULL,emailVARCHAR(50),phonenumberVARCHAR(20),stateVARCHAR(20),emailverBOOLEANDEFAULTfalse,phoneverBOOLEANDEFAULTfalse,createdatDATETIME,updatedatDATETIME);创建表:EmailVerificationCREATETABLEEmailVerification(idINTPRIMARYKEY,tokenVARCHAR(50)NOTNULL,expiredatDATETIME,accountidINT,FOREIGNKEY(accountid)REFERENCESAccount(id));创建表:PhoneVerificationCREATETABLEPhoneVerification(idINTPRIMARYKEY,tokenVARCHAR(50)NOTNULL,expiredatDATETIME,phonenumberVARCHAR(20),accountidINT,FOREIGNKEY(accountid)REFERENCESAccount(id));创建表:ThirdPartySocialAccountCREATETABLEThirdPartySocialAccount(idINTPRIMARYKEY,providerVARCHAR(20)NOTNULL,provideridVARCHAR(50)NOTNULL,accountidINT,FOREIGNKEY(accountid)REFERENCESAccount(id));创建表:LoginRecordCREATETABLELoginRecord(idINTPRIMARYKEY,accountidINT,loginatDATETIME,FOREIGNKEY(accountid)REFERENCESAccount(id));
  以上SQL语句可以在MySQL数据库中创建相应的表,包括Account、EmailVerification、PhoneVerification、ThirdPartySocialAccount和LoginRecord五个表,并设置它们之间的关联关系。直接输出C4Diagram
  接下来我们直接尝试其是否可以输出系统的C4模型的代码吧。
  提示:对于系统架构图,用Mermaidsc4diagram是非常有效的,接下来,我们需要开始构建c4模型的Mermaid脚本,并用markdown
  ChatGPT:
  好的,以下是用MermaidsC4Diagram构建系统架构图的Mermaid脚本,并用markdown格式输出:C4ModelforAccountSystemLevel1:SystemContextDiagramtitleAccountSystemSystemContextDiagramactorUserUserAccountSystem:UseLevel2:ContainerDiagramtitleAccountSystemContainerDiagramAccountSystemAccountService:UsesAccountSystemEmailService:UsesAccountSystemPhoneService:UsesAccountSystemThirdPartyService:UsesAccountSystemDatabase:UsesAccountServiceDatabase:ReadsWritesEmailServiceDatabase:ReadsWritesPhoneServiceDatabase:ReadsWritesThirdPartyServiceDatabase:ReadsWritesLevel3:ComponentDiagramtitleAccountSystemComponentDiagramAccountSystemAccountService:ManagesAccountsAccountSystemEmailService:SendsEmailAccountSystemPhoneService:SendsSMSAccountSystemThirdPartyService:InteractswithSocialPlatformsAccountServiceAccount:AccessesAccountDataEmailServiceEmailVerification:ValidatesEmailPhoneServicePhoneVerification:ValidatesPhoneNumberAccountPasswordSecurity:ManagesPasswordsAccountLoginRecord:RecordsLoginInformation
  虽然给出了完整的代码,但在我的vscode的插件中,无法渲染出正确的结果图。
  我推测由于ChatGPT训练的时间是21年的,所以其给出的代码版较低,而Mermaid近期升级了对C4模型的脚本规范,所以,我试图提升ChatGPT升级一下:
  提示:这不是最新版的,请用Mermaid的最新版的C4Diagrams脚本,再次输出
  ChatGPT:
  输出的结果,依然在我的渲染插件中无法展示。
  所以,我尝试换了一种方法,来让其帮我继续做C4模型图,这也是我发现的一个大惊喜:
  你给ChatGPT一个内容模版,它立马就会学会应用,而且效果惊人。
  下面我们继续来看新方法的过程。C4模型实验C4Context视图
  我输入的提示:下面,我要给你一个最新版本的MermaidC4Diagrams脚本案例,你要记住哦
  ChatGPT:好的,尽管跟我分享吧。
  我将从Mermaid官网上复制的C4Context代码输入给了ChatGPT:C4ContexttitleSystemContextdiagramforInternetBankingSystemEnterpriseBoundary(b0,BankBoundary0){Person(customerA,BankingCustomerA,Acustomerofthebank,withpersonalbankaccounts。)Person(customerB,BankingCustomerB)PersonExt(customerC,BankingCustomerC,desc)Person(customerD,BankingCustomerD,Acustomerofthebank,
  withpersonalbankaccounts。)System(SystemAA,InternetBankingSystem,Allowscustomerstoviewinformationabouttheirbankaccounts,andmakepayments。)EnterpriseBoundary(b1,BankBoundary){SystemDbExt(SystemE,MainframeBankingSystem,Storesallofthecorebankinginformationaboutcustomers,accounts,transactions,etc。)SystemBoundary(b2,BankBoundary2){System(SystemA,BankingSystemA)System(SystemB,BankingSystemB,Asystemofthebank,withpersonalbankaccounts。nextline。)}SystemExt(SystemC,Emailsystem,TheinternalMicrosoftExchangeemailsystem。)SystemDb(SystemD,BankingSystemDDatabase,Asystemofthebank,withpersonalbankaccounts。)Boundary(b3,BankBoundary3,boundary){SystemQueue(SystemF,BankingSystemFQueue,Asystemofthebank。)SystemQueueExt(SystemG,BankingSystemGQueue,Asystemofthebank,withpersonalbankaccounts。)}}}BiRel(customerA,SystemAA,Uses)BiRel(SystemAA,SystemE,Uses)Rel(SystemAA,SystemC,Sendsemails,SMTP)Rel(SystemC,customerA,Sendsemailsto)UpdateElementStyle(customerA,fontColorred,bgColorgrey,borderColorred)UpdateRelStyle(customerA,SystemAA,textColorblue,lineColorblue,offsetX5)UpdateRelStyle(SystemAA,SystemE,textColorblue,lineColorblue,offsetY10)UpdateRelStyle(SystemAA,SystemC,textColorblue,lineColorblue,offsetY40,offsetX50)UpdateRelStyle(SystemC,customerA,textColorred,lineColorred,offsetX50,offsetY20)UpdateLayoutConfig(c4ShapeInRow3,c4BoundaryInRow1)
  ChatGPT:
  提示:请按照上面给的案例,输出我们修改后的账号系统的C4Context的Mermaid脚本,用markdown输出
  ChatGPT输出:C4ContexttitleAccountSystemContextDiagramEnterpriseBoundary(EB,AccountSystemBoundary){System(AccountSystem,AccountSystem,Allowsuserstomanagetheiraccounts,passwords,andloginsessions。)User(User,User,Auseroftheaccountsystem。)SystemExt(MailSystem,EmailSystem,Theinternalemailsystem。)SystemExt(SMS,SMSSystem,ThesystemthatsendsSMSmessagesfor2FA。)AccountSystemUserAccountSystemMailSystemAccountSystemSMS}BiRel(User,AccountSystem,Uses)Rel(AccountSystem,MailSystem,Sendsemails)Rel(AccountSystem,SMS,SendsSMSmessagesfor2FA)UpdateElementStyle(User,fontColorred,bgColorgrey,borderColorred)UpdateRelStyle(User,AccountSystem,textColorblue,lineColorblue,offsetX5)UpdateRelStyle(AccountSystem,MailSystem,textColorblue,lineColorblue,offsetY10,offsetX50)UpdateRelStyle(AccountSystem,SMS,textColorblue,lineColorblue,offsetY10,offsetX50)
  代码渲染后为:
  实验成功,那接下来的其他的C4模型,就可以如法炮制啦。C4Container视图
  提供Mermaid官网的demo后,就可以提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Container的Mermaid脚本,用markdown输出
  ChatGPT输出代码为:C4ContainertitleContainerdiagramforAccountSystemSystemExt(identityprovider,IdentityProvider,Anexternalidentityprovider,suchasAuth0orOkta,tagsv1。0)Person(user,User,Auserofthesystem,witharegisteredaccount,tagsv1。0)ContainerBoundary(c1,AccountSystem){ContainerExt(webapp,WebApplication,Java,SpringMVC,DeliversthestaticcontentandtheaccountsystemSPA)Container(spa,SinglePageApp,JavaScript,Angular,Providesalltheaccountsystemfunctionalitytousersviatheirwebbrowser)ContainerDb(database,Database,SQLDatabase,Storesuserregistrationinformation,hashedauthcredentials,accesslogs,etc。)ContainerDbExt(api,APIApplication,Java,DockerContainer,ProvidesaccountsystemfunctionalityviaAPI)}Rel(user,webapp,Uses,HTTPS)UpdateRelStyle(user,webapp,offsetY60,offsetX90)Rel(user,spa,Uses,HTTPS)UpdateRelStyle(user,spa,offsetY40)Rel(webapp,spa,Delivers)UpdateRelStyle(webapp,spa,offsetX130)Rel(spa,api,Uses,async,JSONHTTPS)RelBack(database,api,Readsfromandwritesto,sync,JDBC)Rel(identityprovider,user,Providesauthenticationfor)UpdateRelStyle(identityprovider,user,offsetX45)Rel(api,identityprovider,Uses,async,OAuth2OpenIDConnect)UpdateRelStyle(api,identityprovider,offsetY60)
  脚本渲染后图片为:
  C4Component视图
  提供Mermaid官网的demo后,就可以提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Component的Mermaid脚本,用markdown输出
  ChatGPT输出代码渲染后图片为:
  C4Dynamic视图
  提供Mermaid官网的demo后,就可以提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Component的Mermaid脚本,用markdown输出
  ChatGPT输出代码渲染后图片为:
  C4Deployment视图
  提供Mermaid官网的demo后,就可以提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Deployment的Mermaid脚本,用markdown输出
  ChatGPT输出代码渲染后图片为:
  备注:在ChatGPT熟悉了23次过程后,只要输入模版,其就会自动给出结果啦,连提示都可以省略了,重复工作完全自动化啦。复杂状态试图
  在今天的实验中,最后尝试做了一个负责的系统状态转化图,具体如下:
  提示:在账号系统中的EmailVerification,PhoneVerification,ThirdPartyBinding的状态发生变化时,Account中对应信息变化的Mermaid脚本
  ChatGPT:
  以下是在账号系统中的EmailVerification,PhoneVerification,ThirdPartyBinding的状态发生变化时,Account中对应信息变化的Mermaid脚本:
  给出的代码如下:stateDiagramv2stateAccountasaccount{stateEmailVerifiedasemailVerifiedstatePhoneVerifiedasphoneVerifiedstateThirdPartyBoundasthirdPartyBound〔〕emailVerified:initialize〔〕phoneVerified:initialize〔〕thirdPartyBound:initializeemailVerifiedphoneVerified:EmailverifiedemailVerifiedthirdPartyBound:ThirdpartyboundphoneVerifiedthirdPartyBound:ThirdpartyboundemailVerifiedemailVerified:ReverifyemailphoneVerifiedphoneVerified:ReverifyphonethirdPartyBoundthirdPartyBound:UnbindthirdpartyemailVerified:EmailunverifiedphoneVerified:PhoneunverifiedthirdPartyBound:Nothirdparty}
  这个脚本包含了四个节点,分别表示账户,电子邮件验证,电话验证和第三方绑定。每个节点有对应的状态,包括已验证,无效,已绑定和未绑定。节点之间的关系用箭头表示,例如账户有电子邮件验证,电话验证和第三方绑定。在状态发生变化时,节点的颜色也会相应地改变。
  代码渲染图片:
  继续尝试,输出以上变化的序列图,提示:
  ChatGPT:
  以下是在账号系统中的EmailVerification,PhoneVerification,ThirdPartyBinding的状态发生变化时,Account中对应信息变化的序列图的Mermaid脚本:sequenceDiagramparticipantAccountparticipantEmailVerificationparticipantPhoneVerificationparticipantThirdPartyBindingAccountEmailVerification:VerifyEmail(email,code)activateEmailVerificationEmailVerificationAccount:EmailVerified(email)deactivateEmailVerificationAccountPhoneVerification:VerifyPhone(phone,code)activatePhoneVerificationPhoneVerificationAccount:PhoneVerified(phone)deactivatePhoneVerificationAccountThirdPartyBinding:BindThirdParty(thirdPartyAccount)activateThirdPartyBindingThirdPartyBindingAccount:ThirdPartyBound(thirdPartyAccount)deactivateThirdPartyBindingAccountThirdPartyBinding:UnbindThirdParty(thirdPartyAccount)activateThirdPartyBindingThirdPartyBindingAccount:ThirdPartyUnbound(thirdPartyAccount)deactivateThirdPartyBinding
  上面的序列图描述了Account对象和三个相关对象(EmailVerification,PhoneVerification和ThirdPartyBinding)之间的交互,以处理EmailVerification,PhoneVerification和ThirdPartyBinding状态变化的情况。
  在这个序列图中,Account对象向EmailVerification,PhoneVerification和ThirdPartyBinding发送请求,以更新与它们关联的信息。每个参与者在收到请求后执行其操作,并通过消息传递结果将结果返回给Account对象,以通知其信息已被更新。
  渲染后的图片为:
  写在最后
  今天的实验,就这么多啦,希望对你有所启发。
  在日常的系统设计中,创造系统图表是一件不太容易,也非常繁琐的事情,而ChatGPT则可以很好的帮我们处理这些问题,让我们可以节省不少的时间和精力。
  在实验的过程中,也可以发现ChatGPT存在这个各种可能性,只要我们能给出不错的提示,提供有效的上下文,他就可以快速的学习,并将此结果有效的利用在接下来的任务之中。
  ChatGPT还有很多未知的能力,值得每一个人去探索,保持好奇心吧。
投诉 评论 转载

黄文涛通胀平稳收官,23年关注工业通缩核心观点2022年,CPI全年同比2,从量上看物价水平总体温和上涨,但结构上差异较大。涨价较多的仍是以猪肉为主的食品价格和能源价格,剔除食品、能源后的核心CPI仅上涨0。……大麻油行业研究及十四五规划分析报告2021年全球大麻油市场规模大约为亿元(人民币),预计2028年将达到亿元,20222028期间年复合增长率(CAGR)为。未来几年,本行业具有很大不确定性,本文的202220……中超第1留不住30岁核心接通知3天后离开泰山,世界杯告别赛季聚焦中超CBA,独一无二球迷媒体点击右上角关注,不会后悔的。。。经历了上赛季的双冠后,山东泰山本赛季遇到强有力的挑战,武汉三镇的崛起让泰山的卫冕难以实现,目前,泰山……2022年5月即将发布的手机,3款让人期待已久,用户又要按捺2022年5月对好多用户来说可能到了一年中较为平淡的时候,手机的春季发布潮已过,而秋季则还未至。然而平静中往往蕴含着惊雷,高通将在2022年5月上旬发布骁龙8Gen1(型……如何用一个ChatGpt,绘制C4架构图今天,我们一起来看看ChatGPT能不能更进一步释放工程师的生产力,创造更多的可能性。所以,这次我们就来尝试用ChatGPT,来构建账号系统的C4模型的架构图啦。由……再见姆巴佩!梅西下周约见拉总,2大特权令球王动摇,皮克心虚了梅西和大巴黎之间本来关系是非常不错的,梅西也多次传闻可能和大巴黎在明年夏天完成续约。这样梅西就很有可能在大巴黎完成退役,毕竟大巴黎队内有着3000万欧元的年薪在这里踢球最起码工……下次买电视注意了,OLED电视已经过时,技术更先进的新电视更大家有没有发现?在买电视时经常会听到导购说这是普通LED液晶电视,这是高端的OLED电视,我们推荐效果更好的OLED电视。这些话放在十年前的确没说错,OLED电视的综合效……打卡必去!首届城阳东糖球会游玩攻略抢先看糖球会要来啦!!糖球会要来啦!!重要的事情说三遍。距离上一次海云庵举办糖球会,已经快三年时间了,现在只要一想到各式各样酸酸甜甜的冰糖葫芦,就不自觉得淌哈喇子。……库克打脸了,iPhone14ProMax薰衣草紫色曝光,这才声明:原创不易,禁止搬运,违者必究!对于颜值控的人来说,机身的外观设计也很重要。苹果手机的外观设计,虽说千篇一律,并没有太大变化,硬朗的机身,后置相机模组多年也是浴霸的形……伯爵致敬经典设计,真力时PILOT飞行员系列书写全新篇章20界面新闻记者罗以文黄姗界面新闻编辑楼婍沁伯爵致敬经典设计在日内瓦举行的钟表与奇迹(WatchesWonders)高级钟表展上,PIAGET伯爵2023年新品亮……少了5G的Mate50Pro,体验并没输?虎嗅这次拿到的Mate50Pro是流光紫配色,华为手机一直不光不好买其实也不好借。当我满心欢喜打开包装,发现是流光紫,内心还是有那么一丝抵触。我带着它坐地铁的确获得了一些回头率……死亡搁浅导演剪辑版将于今年春季登陆PC小岛工作室官方推特宣布宣布,《死亡搁浅导演剪辑版》将于2022年春季登陆PC平台,将在Steam与Epic商城同时上架。《死亡搁浅导演剪辑版》此前于2021年9月登陆PS……
艾弗森历史上仅3个人参加选秀能力压我,科比乔丹库里都不够格两件事造句用两件事造句大全独家述评消费新场景令流量变销量2021年全球最畅销10款智能手机出炉iPhone包揽前五,睡眠不好谁之过揪出枕头的七宗罪脑积水治疗换了脑积水怎么办便携式户外净水器的特点热爱生命补气血的食物有哪些气血不足吃哪些食物好国有企业发展壮大的秘密地区造句用地区造句大全抖音当道培训机构如何借势推广引流
中国近代十大武林高手谁说中国传统武术没救了才子加流氓郭沫若小狐狸朵朵的流水账调分辨率之后怎么将显示不全的桌面调为全屏显示新提丰田新RAV4荣放混动版惊现机油乳化恶意转移财产怎么处理?种植玉米如何防治黄星蝗?一口乱牙的赵薇,整牙前的范冰冰,未变脸的林心如,22年堪比换贾樟柯拍了一部贺岁大片,用的iPhoneXS陶瓷玩具的优点法律途径中怎样处理小三跟她的孩子七仔说八卦赵露思赵丽颖秦海璐白冰金世佳赖冠霖靳东

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州