AI 写书,升级了!
时间:2023-06-23 12:54:33来源:程序员鱼皮

大家好,我是屑老板鱼皮,上周给大家分享了下我们 的写书功能。只需要输入你想写的书名和描述,就能够自动让 AI 帮你生成一本书籍:

由于也是刚刚上线嘛,功能没有做到特别完备,也收到了很多小伙伴们的反馈,比如:


(相关资料图)

写书的速度太慢,一本书要写个十几分钟!
我的书写到一半,突然就终止了,感觉不稳定。。
我的书写到一半,鱼毛儿没了,领鱼毛后发现又要重新写。。。

收到大家的反馈后,我就开始写代码来修复这些问题了。

现在,AI 写书功能已经全面升级,改进如下:

写书速度快了几倍,一本 8 个章节的书籍只要 两分半左右就能完成。
AI 写书失败后,可以点击重试,自动接着之前的章节续写。
支持设置书籍的目录数,目录数越多,书籍的内容越完整。

欢迎大家体验一下,AI 写出来的书,还是挺有意思的哈哈!

鱼聪明 AI:

介绍完了优化点,接下来我想给大家分享一下 AI 写书程序的优化方法。

当我们要开发一个执行时间很长、中间过程很多的任务时,都可以采用下面的方法来设计程序,能够给发起任务的用户带来更好的体验。

比如我们鱼聪明的 AI 写书任务,要经过:任务校验 => 生成目录 => 依次生成多篇文章 => 结果生成等多个流程,总耗时可能要超过 10 分钟。

最简单粗暴的方式,就是一个方法内,把所有这套流程的代码全部写完。像下面这样:

String写书(){任务校验代码100行生成目录代码100行生成多篇文章代码100行结果生成代码100行}

但是这样的缺点很明显:

代码不利于阅读理解
只要有任何一个环节抛出异常又没注意处理,程序就会崩盘,任务整体失败

所以,首先我们要进行 任务拆分,把每个任务作为一个单独的方法(函数),将上一个任务的结果作为下一个任务的输入来进行参数传递。

像下面这样:

String写书(){A=任务校验()B=生成目录(A)C=生成多篇文章(B)D=结果生成(C)}

这样,程序的结构就很清晰了。但只要有一个方法失败,整个写书任务还是会终止,再次重试时还会从第一步(任务校验)开始执行。

怎么解决呢?

我们可以对任务状态进行 持久化,比如把每个任务的执行结果、任务整体的执行状态保存到数据库中,比如当前正在写第几篇文章。如果失败了,就把失败的信息和当前步骤记录到数据库中,相当于保存了个断点。

然后,写书任务的每个小步骤在执行前,都要从数据库(而不是从程序中)获取当前任务的最新状态,从而判断自己是否需要执行当前步骤。

举个例子,如果已经生成过书籍的目录,然后服务器挂了导致任务失败。点击重试后,生成目录的任务就不用再执行了。

伪代码如下:

String写书(){任务校验()A=从数据库查任务状态if(A任务未生成目录){生成目录()}...后续操作}

通过上面的 任务拆分任务状态持久化,我们的程序就已经有了从中间失败状态继续执行的能力。

但是还要考虑一些特殊情况,比如任务失败了,还没来得及把 “失败” 状态保存到数据库中服务器就挂了,给用户的感觉就是 “任务仍在执行中”。

对于这种情况,可以编写定时任务来轮询数据库中所有执行超过一定时间、并且状态仍为执行中的任务,并且将这些任务状态置为 “失败”,算是一种补偿机制。

当然,系统资源允许的情况下,还可以适当增加重试策略,任务失败后自动重试,不影响用户体验。但一定要设置最大重试次数、重试间隔时间等,避免 “滚雪球”。

此外,只要是开发这种长耗时的任务,在上线初期最好多加一些监控和日志,后面排查问题会方便很多。

这样一套流程下来,程序的可靠性、可用性就会增强不少~

就先分享到这里,我们要继续去开发新功能了,后面给大家分享下大家优秀的 AI 大作,期待的话请多多为我们点赞吧!

长按扫码,生成你的 AI 大作:

往期推荐

标签:

最新
  • AI 写书,升级了!

    大家好,我是屑老板鱼皮,上周给大家分享了下我们的写书功能。只需要输

  • 世界快看点丨良率问题,被砍的苹果第四代 Apple Watch Edition 曝光

    ▲曝光的AlWatchditio(第四代),图源Koutai从Koutai分享的照片中可以

  • 每日热文:谁不喜欢毛茸茸的小狗狗呢?《FF16》有摸狗奖杯

    《最终幻想16》有摸狗奖杯,谁不喜欢毛茸茸的小狗狗呢?

  • 百亿投资“天天见”!动力电池产能“严重过剩”?

    动力电池产能是否“严重过剩”?长安汽车和宁德时代对同样的话题给出了

  • 澳门科学馆设长期展厅展示中国科学家精神-世界即时

    澳门科学馆设长期展厅展示中国科学家精神

  • 天然美白化妆品可信吗?

    天然美白化妆品一直都是消费者关注的话题。但是,能否信赖这些产品还需

  • 法国巴黎发生瓦斯爆炸 多栋建筑受影响

    本文转自【央视新闻客户端】; 当地时间6月21日17时左右,法国巴黎五区

  • 包粽子 制香囊 拼搭龙舟 石家庄市各社区开展丰富多彩的端午节活动

    图为谈后社区居民展示自己的香囊。(建北街道供图)图为在赵县西湘洋村,

  • 热推荐:喜得千金对联大全集 喜得千金对联大全

    1、上联:珍珠入掌门楣喜下联:兰蕙吐芳庭院新上联:华夏又添巾帼女下联:

  • 世界快报:量化私募智领三联旗下智领兆元正道1期年内跌13%

    量化私募智领三联旗下智领兆元正道1期年内跌13%

  • 今年前5个月,海口市货物贸易进出口323.7亿元 环球新资讯

    商报全媒体讯(椰网 海拔新闻记者张艺通讯员王咪)6月21日,国际旅游岛

  • 热讯:by2快乐大本营2009(by2快乐大本营)

    您好,现在汉格来为大家解答以上的问题。by2快乐大本营2009,by2快乐大

  • 电脑qq我的收藏在哪里-电脑qq的收藏在哪里

    1、苹果电脑版QQ我的收藏查看方法 步骤:第一种:1:登录QQ。2、2:在Q

  • 荆门市首届潮玩运动休闲大会在双泉温泉酒店启幕_全球播报

    6月19日,荆门市首届潮玩运动休闲大会启动仪式在双泉温泉酒店举行,全

  • 天天快报!代码1126怎么处罚?货车超载处罚标准是什么?

    代码1126怎么处罚?交通违法代码是由四位数字组成,按照交通法中的原

  • 甲骨文出现在哪个朝代?甲骨文的由来是什么?

    甲骨文出现在哪个朝代?甲骨文出现的朝代是商朝(约公元前17世纪-公元

  • 旅游
    • 今日报丨2023年属什么兔 2023年属什么兔年

    • 液氧储罐出现泄漏,现场有人员“冻伤”?别慌,这场应急演练教你怎么做_全球最资讯

    • 天天快看点丨【韩系动向1012】现代起亚开发全新纯电平台eM,搭载超大电池!

    • 邮储银行江门市分行成功发放全市首笔数字人民币贷款