应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

用ChatGPT,构建账号系统的C4模型架构图

  hi,我是熵减,见字如面。
  昨天我们用ChatGPT来设计一个账号系统,并尝试输出:模型表,类关系图,序列图,状态图等常用的架构设计中常用的元素。
  具体见:用ChatGPT,快速设计一个真实的系统
  今天,我们继续向更高层级延伸一下,看ChatGPT能不能更进一步释放工程师的生产力,创造更多的可能性。
  所以,这次我们就来尝试用ChatGPT,来构建账号系统的C4模型的架构图啦。
  什么是C4模型,见:系统架构:C4架构模型,画架构图的脚手架
  由于ChatGPT不能直接输出图像,所以我们转化为用Mermaid的脚本,通过markdown的方式输出,再用支持Mermaid渲染的工具,将图片显示出来。Part1生成数据库初始化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五个表,并设置它们之间的关联关系。Part2直接输出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代码版本较低,而Mermaid近期升级了对C4模型的脚本规范,所以,我试图提升ChatGPT升级一下:
  提示:这不是最新版的,请用Mermaid的最新版的C4Diagrams脚本,再次输出
  ChatGPT:
  输出的结果,依然在我的渲染插件中无法展示。
  所以,我尝试换了一种方法,来让其帮我继续做C4模型图,这也是我发现的一个大惊喜:
  你给ChatGPT一个内容模版,它立马就会学会应用,而且效果惊人。
  下面我们继续来看新方法的过程。Part3C4模型架构图1C4Context视图
  提示:下面,我要给你一个最新版本的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模型图,就可以如法炮制啦。我们继续其他层级视图的输出吧。2C4Container视图
  提供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)
  脚本渲染后图片为:
  3C4Component视图
  提供Mermaid官网的demo后,就可以
  提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Component的Mermaid脚本,用markdown输出
  具体代码省略啦,直接上图咯。
  ChatGPT输出代码渲染后图片为:
  4C4Dynamic视图
  提供Mermaid官网的demo后,就可以提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Component的Mermaid脚本,用markdown输出
  ChatGPT输出代码渲染后图片为:
  5C4Deployment视图
  提供Mermaid官网的demo后,就可以
  提示:
  请按照上面给的案例,输出我们我们要处理账号系统C4Deployment的Mermaid脚本,用markdown输出
  ChatGPT输出代码渲染后图片为:
  备注:在ChatGPT熟悉了23次过程后,只要输入模版,其就会自动给出结果啦,连提示都可以省略了,重复工作完全自动化啦。Part4复杂的状态和序列图
  在今天的实验中,最后尝试做了一个复杂的系统状态转化图,具体如下:
  提示:在账号系统中的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对象,以通知其信息已被更新。
  渲染后的图片为:
  Part5写在最后
  今天的实验,就是这么多啦,希望对你有启发哦。
  在日常的系统设计中,创造系统图表是一件不太容易,也非常繁琐的事情,而ChatGPT则可以很好地帮我们处理这些问题,让我们可以节省不少的时间和精力哦。
  在实验的过程中,也可以发现ChatGPT存在这个各种可能性,只要我们能给出不错的提示,提供有效的上下文,他就可以快速的学习,并将此结果有效的利用在接下来的任务之中。
  ChatGPT还有很多未知的能力,值得每一个人去探索,保持好奇心吧。
  THEEND
  行动进化自己,输出成就他人
  与你一同终身成长

孩子头上的旋代表什么?与智商和性格有关?今天告诉你答案一个旋儿好,两个旋儿坏,三个旋儿打架不要命!头上都有一个或两个旋,而且在民间也流传着不少关于发旋的顺口溜,那么这些发旋真的如同顺口溜所说的这样吗?很多人觉得一个人发……研究称冥王星上存在巨大冰火山或暗示生命可能性中新网3月30日电据美国有线电视新闻网(CNN)报道,近日,《自然通讯》杂志发表的一项研究,揭示了科学家对于冥王星的最新发现,美国国家航空航天局新视野号任务拍摄的照片分析显示,……德宜知识贴丨2022年高速免费时间,返乡出游千万要记住这几点根据《重大节假日免收小型客车通行费实施方案》来看,2022年收费公路免费通行时间为春节、清明节、劳动节、国庆节,共4个国家法定节假日以及当年国务院办公厅文件确定的上述法定节假日……奶奶瞒着宝妈给刚出生的宝宝刮汗毛,称刮掉猪毛风,网友太无知每个地方都有每个地方的习俗,地区的不同,习俗也是不一样的,对于抚养一个孩子来说,我们父母一辈的人们总是乐意将这些习俗继续传承下去,然而他们这样的想法与现代的年轻人是有很大差别的……2场赢球41分!广东宏远轻松晋级,季后赛首轮巨无霸一般的存在北京时间4月3日,CBA季后赛继续进行。广东宏远成了季后赛首轮首支晋级的球队,两场比赛他们赢了对手41分(124比101,122比104),晋级过程太轻松。天津荣钢引以为……人类的未来地球是我们的摇篮,但是我们不能永远待在摇篮里关注我们每天看书摘《人类的未来》作者:加来道雄加来道雄在这本《人类的未来》中将人类逐渐离开地球并建立外太空文明的这一过程进行了细化,揭示了人工智能、量子物理及……当年,英国人以怎样的心情目送ampampquot五月花amp其实,没有人关心他们,更没有人在乎他们。一群离经叛道的人,爱去哪儿就去哪儿吧,谁在乎呢?大西洋不好玩儿。在他们之前,一艘移民船从阿姆斯特丹出发,在半路上船沉大西洋,130……何超琼跟李嘉欣罕见同框,何超琼容貌越发慈祥,李嘉欣却越发刻薄郑志刚在香港举行了K11晚宴,轰动全城,连李嘉欣跟何超琼都一起来捧场了。另外大名鼎鼎的邱氏三姐妹也来了。邱咏筠带着自己的传奇车手丈夫董荷斌一起来参加,另外刘銮雄的妻子甘比也来参……国乒占3榜首!樊振东优势扩大王楚钦上升5位,刘诗雯跌出世界前12月14日,国际乒联公布了最新一期世界排名,国乒的樊振东与陈梦继续位居男女单首位,樊振东在连夺世乒赛与WTT世界杯决赛男单冠军之后,扩大了自己的领先优势;陈梦的领先优势逐渐缩……贝克汉姆11岁女儿开始化妆!深夜与贝嫂喝酒,比同龄孩子成熟太近日有媒体关注到贝克汉姆的小女儿小七,她今年已经有11岁了,看起来长大了不少,显得十分成熟,而这位优秀的足坛星二代在体型方面和自己的几个哥哥以及父母完全不相似,有些发福,从这一……都说面膜没用,那经常用面膜和从不用面膜究竟有什么区别?面膜是很常见的一种护肤品,主要作用是给皮肤快速补水。很多人都说,用面膜就是智商税,因为皮肤的水分大多是从身体内部吸收的,而且皮肤的好坏,还取决于先天条件和身体的健康情况等,所以……67岁李琦穿破洞衣服做核酸,越老越瘦显憔悴,走路颤巍还当志愿饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!5月23日,有网友在社交平台上晒出老戏骨李琦做核酸时的照片,引发外界热议。照片中,李琦身穿深色衣服,满头……
北京私藏的一处天然氧吧,有山有水风景如画,门票35有专车直达北京私藏的一处天然氧吧,有山有水风景如画,门票35有专车直达眼看着秋意渐浓,不少小伙伴都已经开始计划着在休闲的时候出去游玩了,毕竟秋季的确是非常适合出去游玩,因为这个时候……济南野生动物园免费了,保姆级游玩攻略给大家奉上,可以省钱济南野生动物园免费了,保姆级游玩攻略给大家奉上,可以省钱旅行推荐官旅行大玩家我的玩乐攻略旅行攻略扶持计划心动春节家人们,济南野生动物世界真的是免费了,免费时间1月21日到……湖南自贸区本土无人机生产企业两款产品获欧盟专利湖南日报新湖南客户端1月29日讯(记者周小雷通讯员徐娃实习生吴隽容)1月29日,大年初八,年味尚未消散,湖南自贸试验区已是一片忙碌。近期,位于湖南自贸区长沙片区经开区块无人机制……nba是否真的存在假球?NBA是否存在假球,一直是球迷担忧并争论的话题之一,尤其是自萧华担任nba总裁之后,球迷的这种担忧就愈发变得严重起来,早在2018年8月1日,美媒报道nba与著名博彩公司米高梅……内维尔利物浦很难找到比现有更出色的球员克洛普在红军很出色直播吧2月1日讯曼联名宿加里内维尔在接受《利物浦回声报》采访时,谈到了他对利物浦转会情况的看法。内维尔说道:对于弗格森爵士而言,在我们看到球员的问题之前,他就能把问题解决……都知机场免税店名酒卖的便宜,可为啥没人去倒买倒卖?看完懂了都知机场免税店名酒卖的便宜,可为啥没人去倒买倒卖?看完懂了经常出差或者喜欢旅游的朋友对机场一定不陌生,飞机作为当今最高效便捷的交通工具之一,诸多优点完美契合了当今快节奏的……贝弗利昨日惊天补扣后湖人自媒体向其道歉本人回应我接受!直播吧1月30日讯在昨天结束的一场NBA常规赛中,湖人在客场以121125加时不敌凯尔特人。在比赛第四节还有20秒的时候,浓眉三分球偏出,贝弗利从外线冲进禁区抢板补扣,惊……六大国产CPU龙头,谁能与国际大厂一战?国产CPU六剑客,能否撑起中国CPU的一片天?中央处理器(CPU),顾名思义,是底层硬件基础设施中的核心。当前CPU主流芯片架构为Arm和x86,均为国外主导,国产……whisper实践基于whisperpyqt5开发的语音识别大家新年快乐,事业生活蒸蒸日上,解封的第一个年,想必大家都回家过年,好好陪陪家人了吧,这篇文章也是我在老家码的,还记得上篇我带大家基本了解了whisper,相信大家对whisp……Metaverse元宇宙沉浸式体验元宇宙是一个新生的概念。它可能会对世界产生深远的影响就像互联网的出现一样目前,元宇宙正在各个行业中得到应用比如游戏、时尚、娱乐等。例如,Ralph……沈月除夕盘发年画娃娃瑞兔迎春造型沈月除夕当天红红火火喜庆年画娃娃盘发造型,身穿红色绣花旗袍,一双经典低跟鞋,造型甜美可爱,上镜非常好看。手持对联的她看起来红火漂亮惹人喜爱。手里捧着红色兔子玩偶的沈……01,输球又输人!中国男足创耻辱,1年4场不胜,亚洲杯出线没今年是中国男足各级国字号队伍全面出击的重要一年,包括冲击世界杯、奥运会、世青赛、世少赛。近期,主教练安东尼奥带领的U20国足前往阿联酋集训,备战U20亚洲杯决赛圈,跟阿联酋U2……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网