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

用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
  行动进化自己,输出成就他人
  与你一同终身成长

火龙王者全新的三职业铭文玩法,你了解吗?大家好,自带铭文的传奇有很多,最早的带铭文的传奇可以说是老SF传奇,而今天我为大家聊聊有着铭文系统的传奇《火龙王者》。火龙王者是三职业的复古传奇打金版本,下面我为大家介绍……安克8合1拓展坞评测颜值高,接口丰富,支持100W快充在入手MacBookPro之后,才发现配件需求也是一波又一波,但是最要的还是刚需的拓展坞,毕竟它的机身只有4个雷电接口,很多外设都没办法直接连啊,在网络上和各平台也搜了一圈拓展……精巧打造品位生活桌面,fashion潮酷C位小翘蓝牙机械键盘前段时间给电脑桌面升级了电动升降桌,又升级了显示器等等,最近计划升级键盘鼠标,主要是考虑到以前的键盘都是有线,在有限空间的桌面上拖着一根尾巴真的是有点碍眼,果断这次就考虑无线机……阿娇首谈闪婚闪离的原因,羡慕男方的家庭氛围,无奈婚后争吵不断近日Twins成员阿娇在接受访谈的时候首次提到与赖弘国闪婚离婚的内幕,阿娇与赖弘国于2018年闪婚,当初的婚礼现场也是感动了无数人,就连当初曝光照片的人发文庆祝阿娇出嫁,不少网……蒸红薯时,不要往锅里加水了,教您一个新方法,比烤红薯还香甜嘿,大家好,我是卷毛。进入初冬以来,红薯就开始大量上市了,其实平常红薯也是有卖的,当时相对来说,经过秋后的丰收,冬季拿出来售卖的红薯是最香甜的。由于冬天寒冷的天气,热腾腾的红薯……10岁女孩身高168CM,医生3种食物是身高增长剂,常给孩子每一个父母都希望自己的孩子能够长个大高个,这样也可以为孩子的颜值增分不少,虽然遗传因素会决定身高,但是后天的营养补充以及锻炼对身高的影响也是非常重要的。【案例分析】……薪资必须保密,不然轻则通报重则开除,老板们在害怕什么撰文《财经天下》周刊作者周享玥编辑游勇被处罚的员工要是我们也可以像苹果那样公开讨论薪资该多好啊。时隔四个多月,再次在社交平台上看到有关密薪制的热搜,尤其……雷军有点无底线了,16G512G偷偷降3000元!三星也招架小米这个品牌有点要强,看着别人研发出什么顶尖旗舰,自己也想赶快跟着弄。比如拿折叠屏来说吧,看着三星华为已经有很多款折叠屏面世,小米急得不行,于是在今年快马加鞭,给用户带来……唯美励志金句摘抄1。世间的一切都可以努力,唯独相爱全凭运气2。你所浪费的今天,是昨日死去的人苦苦哀求的明天;你所厌恶的现在,是多少人再也回不去的曾经3。有回声的山谷真的值得纵身一跃……一台真正好用的手机需要满足这三个要素,若预算不足,可以再忍忍一台真正好用的手机需要从多方面考量,但最起码需要满足这三个要素,小伙伴们的预算如果不足,可以再忍忍。第一:电池电量大,最好有快充买安卓手机一定要看电池大小,最好选购……小沐智能马桶盖proh评测电解水杀菌预湿处理,好用在科学管理技术的支持发展之下,从前看似遥不可及的智能控制家居企业如今中国早已走进了不同寻常百姓家。这不,除了现已具有十分常见的扫地机器人系统之外,近些年来人工智能马桶盖也开始研……iPhone14要彻底移除实体SIM卡了手机SIM卡每次变革背后其实都有苹果在推动,先是在iPhone4上使用microSIM卡,接着又在iPhone5上造就了NanoSIM,并沿用至今。而现在,苹果似乎又想让iPh……
世界杯最新夺冠概率阿根廷跌至8。6第六,葡萄牙5。8第八直播吧11月22日讯世界杯阿根廷12不敌沙特赛后,数据网站Opta更新本届世界杯夺冠概率前十六的球队,阿根廷从上期的12。6第二,跌至8。6第六。夺冠概率排行:1、……超级冷门!北京国安队与卞相壹九段,究竟谁输得更惨?这年头,到处都是冷门。如果不是超级冷门,大概率拿不到台面上来。2022年11月4日,第27届三星火灾杯世界围棋大师赛半决赛,卞相壹九段执白棋惨败韩国女子第一人崔精九段。……里讷斯讷斯挪威的最南端从克里斯蒂安桑(Kristiansand)(参看之前的文章)开往里讷斯讷斯(Lindesnes)一路都是弯弯曲曲的海岸线。这一路让你真正领会到了为什么挪威是世界上海岸线最长的国……华为P60渲染图曝光后摄模组设计大胆,识别度拉满华为在2022年9月期间发布了Mate50系列,而且该系列发布后也得到了许多用户的好评。但反观P系列,华为自从在2021年发布P50系列后,P60系列一直都没有消息。不过……齐鲁银行企业级人工智能服务及管控中台来源:2022第三届中小金融机构数智化转型优秀案例评选获奖单位:齐鲁银行荣获奖项:运营管理创新优秀案例奖一、项目方案人工智能技术的发展,让数据决策和系统……江苏淮安古黄河沿岸牵牛花盛开来源:视觉中国2022年9月14日,江苏淮安,古黄河沿岸,盛开的牵牛花。眼下正是牵牛花盛开的季节,淮安城区公园、主干道两旁,各色牵牛花正竞相开放,红色的、紫色的,一朵朵,……去巢湖古镇柘皋吃早饭,逛老街朋友向我推荐,巢湖柘皋镇的早点很好吃,他同事经常特地开车去吃早饭,这应该是个拍摄的题材。旋即上网搜寻相关知识,做好功课。连日的阴雨阻碍了行程,这两天太阳终于出来了。202……谷爱凌恋情疑似曝光!与外国帅哥亲密搂抱坐大腿,高调晒照引热议饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!11月10日,谷爱凌在社交平台分享出了自己进入斯坦福大学后的生活,并配文精彩片段,其中她和一外国帅哥合影亲密,……姜子牙品质升级全新归来,你准备好封神了吗?姜子牙在王者世界观中也是一位特殊的存在,因为之前他的形象设定与模型也相对老旧,不能完全体现出他的身份和气质,在2021年提出姜子牙重塑这一计划。经历了一年多的等待之后,全新的姜……双十一选购指南,一文看懂华为智能手表应该怎么选?我看你不像有高血压的样子啊?不测一测怎么知道。保准儿没有。朋友信誓旦旦保证自己身体健康,但是华为WATCHD测试结果显示,他的血压低压有点第三级高压的风险。堂……张惠妹目测150斤!穿11万大衣走机场迈不开腿,近照似杨二车近日,有网友拍到了,张惠妹现身上海国际机场的照片。照片中的张惠妹,体型再次增大,目测约有150斤。久未露面的她,身穿价值11万多的豹纹大衣,看起来……俗话说秋收冬藏!天气寒冷,建议吃这5种砂锅炖菜,暖身暖胃冬季,阳退阴生,俗话说秋收冬藏,万物在冬日进入休眠状态,储存能源,那人类的身体也同样,也要享受丰收、休养生息。在冬日就适合用砂锅炖上一锅热乎乎的汤,暖身暖胃,养脾胃。下面……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网