基于FastGPT和芋道源码挑战一句话生成代码

这篇具有很好参考价值的文章主要介绍了基于FastGPT和芋道源码挑战一句话生成代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

芋道源码相信很多朋友都很了解了,今天我们试着基于FastGPT实现芋道框架的代码生成。芋道的代码生成,是基于数据库表字段实现的,那我们的思路就是看看如何使用GPT帮我们生成数据库表结构,只要数据库表字段有了,代码也就生成好了。实现这个需求我们就需要用到FastGPT的高级编排功能。编排的整体思路如下:
基于FastGPT和芋道源码挑战一句话生成代码

FastGPT应用编排

  • 1.登录FastGPT,打开应用菜单,点击右上角"新建"按钮,创建一个AI应用(选择"简单的对话"模板即可)。

基于FastGPT和芋道源码挑战一句话生成代码

  • 2.进入高级编排页面,先定义"对话开场白",然后点击右上角保存按钮。

基于FastGPT和芋道源码挑战一句话生成代码

  • 3.根据前述的整体思路,开始第一个AI环节:需求分析和模型设计。我们需要选择该环节对话模型(本文我选择GPT4-Turbo演示)和设计需求分析提示词。提示词主要是预设身份,并给出需求分析的要求,我这里主要是要求将需求抽象为模型和字段,并以markdown格式输出。配置完成后,保存,然后测试看下效果。

基于FastGPT和芋道源码挑战一句话生成代码

基于FastGPT和芋道源码挑战一句话生成代码

  • 4.第二个AI环节:判断用户是否已对需求分析和模型设计是否满意,是否可以进入下一环节。在这里我们需要在AI每一次输出需求分析和模型设计后,调用FastGPT的"问题分类"模块,判断用户意图。同样的,我们需要选择分类模型,设计分类提示词,并测试分类结果。

基于FastGPT和芋道源码挑战一句话生成代码

基于FastGPT和芋道源码挑战一句话生成代码

  • 5.第三个AI环节:用户已经对需求分析和模型设计结果完成确认,那么接下来就需要让AI帮我们生成SQL语句了。在这里我们为方便后续SQL语句的提取,要求AI以json数组形式返回建表SQL语句,并且要求AI在每张表按芋道规范添加公共字段(如创建者、创建时间、修改者、修改时间、逻辑删除、租户ID字段),大家也可以添加自己的要求。

基于FastGPT和芋道源码挑战一句话生成代码

基于FastGPT和芋道源码挑战一句话生成代码

  • 6.第四个AI环节(可选):如果只是为满足单表代码生成,这一步就可以直接跳过。这个环节主要是让AI根据模型设计和生成的SQL来分析这些表之间是否存在主子表、树表,并且将分析结果使用json格式将分析结果返回,方便后续调用接口生成主子表和树表代码用。

基于FastGPT和芋道源码挑战一句话生成代码

基于FastGPT和芋道源码挑战一句话生成代码

  • 7.将AI生成好的SQL和表关系数据做为参数,调用我们自定义的接口,生成代码并返回代码下载地址,我们将代码下载地址显示在页面上,用户就可以愉快下载了。

基于FastGPT和芋道源码挑战一句话生成代码

基于FastGPT和芋道源码挑战一句话生成代码

  • 8.扫码关注我的微信公众号,回复"芋道助手"就可以获取完整的FastGPT应用配置了(包含提示词)。

基于FastGPT和芋道源码挑战一句话生成代码文章来源地址https://www.toymoban.com/news/detail-760164.html

附:芋道自定义接口示例(供参考)

  • 1.我们在芋道工程中自定义一个接口(使用路径传参是因为这样在FastGPT接口配置中传递固定参数很方便,接口也比较好管理),接收上述参数,提取SQL并在数据库建表、按芋道规范生成代码。这里给出接口示例:
    @PermitAll
    @PostMapping("busi/{busiType}")
    public FastCommonRespVO busi(@PathVariable("busiType") String busiType, @RequestBody Map<String, Object> reqMap) {
        log.info("请求参数: {}", JSONUtil.toJsonStr(reqMap));
        FastCommonRespVO fastCommonRespVO = new FastCommonRespVO();
        fastCommonRespVO.setResponse("\\n失败了");
        FastBusiTypeEnum fastBusiTypeEnum = FastBusiTypeEnum.getByBusiCode(busiType);
        if (fastBusiTypeEnum != null) {
            FastService fastService = SpringUtil.getBean("fast".concat(fastBusiTypeEnum.getBusiCode()).concat("ServiceImpl"));
            try {
						    // doBusi方法会返回一个完整的代码下载地址
                fastCommonRespVO.setResponse("\\n".concat(fastService.doBusi(reqMap)));
            } catch (Exception e) {
                log.error("执行业务逻辑失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
                fastCommonRespVO.setResponse("\\n执行业务逻辑失败:".concat(e.getMessage()));
            }
        } else {
            fastCommonRespVO.setResponse("\\n非法的业务类型(busiType参数)");
        }
        log.info("响应结果: {}", JSONUtil.toJsonStr(fastCommonRespVO));
        return fastCommonRespVO;
    }
  • 2.这里还需要在芋道中自定义一个代码下载接口,方便用户下载。
    @PermitAll
    @GetMapping("/download/codegen/{codegenId}")
    public void downloadCodegen(@PathVariable("codegenId") String codegenId,
                                HttpServletResponse response) throws IOException {
        log.info("请求参数: codegenId={}", codegenId);
        // 根据生成代码记录ID查询相关表记录ID
        Set<String> tableIds = stringRedisTemplate.opsForSet().members(codegenId);
        if (CollectionUtils.isEmpty(tableIds)) {
            throw exception(ErrorCodeConstants.AIGC_FAST_NOT_FOUND_RECORD);
        }
        // 生成代码
        Map<String, String> codes = new HashMap<>();
        for (String tableId : tableIds) {
            codes.putAll(codegenApi.generationCodes(Long.valueOf(tableId)));
        }
        // 构建 zip 包
        String[] paths = codes.keySet().toArray(new String[0]);
        ByteArrayInputStream[] ins = codes.values().stream().map(IoUtil::toUtf8Stream).toArray(ByteArrayInputStream[]::new);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ZipUtil.zip(outputStream, paths, ins);
        // 输出
        ServletUtils.writeAttachment(response, "codegen.zip", outputStream.toByteArray());
    }

到了这里,关于基于FastGPT和芋道源码挑战一句话生成代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蚁剑连接一句话木马演示

    需要准备 一台虚拟机作为服务器,一台作为攻击机(可用主机),将虚拟机的网络都设置为桥接。 我这里服务器用win2008R2系统 攻击机用win10 接下来我会演示 php 的一句话木马 其他脚本语言的一句话木马使用过程和这个差别不大 在服务器上安装phpstudy 快速搭建服务器 安装成

    2024年02月14日
    浏览(44)
  • 你真的了解一句话木马吗?

    目录 一、前言: 二、什么是一句话木马: 三、常见的一句话木马: 木马讲解: 1、$_POST[cmd] 2、eval() 3、\\\"@\\\" 4、脉络梳理 四、可用于条件竞争的一句话木马: 木马讲解: 1、fopen() 2、fputs()  3、脉络梳理 五、图片马 1、什么是图片马: 2、.htaccess 3、木马图片 4.   .user.ini扩展

    2024年02月04日
    浏览(46)
  • java安全——jsp一句话木马

    提示:以下是本篇文章正文内容,下面案例可供参考 http://localhost:8003/index.jsp?cmd=whoami 不会回显执行的结果只能在后台打印一个地址,常用来反弹shell 代码如下(示例):

    2024年02月11日
    浏览(46)
  • 解封ChatGPT我只用了一句话

    文章前言 ChatGPT作为一个AI语言模型可以帮助使用者生成各种各样的文字内容,目前已被广泛应用于各种语言任务中,例如:文本生成、机器翻译、问答系统等,基于保障使用者权益和维护良好的价值观,官方限制ChatGPT不能回答不当言论(攻击或侮辱性)、敏感内容和带有偏见的

    2024年02月16日
    浏览(38)
  • 渗透干货|史上最全一句话木马

    PHP //可执行命令一句话 普通一句话 PHP系列 过狗一句话 【----帮助网安学习,以下所有学习资料文末免费领!----】 几个变性的php–过防火墙 过狗效果都不错: 密码-7 phpv9 高版本拿shell ASP asp 一句话 ASP过安全狗一句话 ASPX系列 ASPX一句话的 过安全狗效果不怎么样 不过我认为能

    2024年04月25日
    浏览(44)
  • 文件上传漏洞—一句话图片马制作

    提要 :在文件上传漏洞中,通常需要上传脚本类型的文件至服务端执行,获取WebShell,但是网站会严格过滤脚本类型的文件,这个时候便可以通过图片马来尝试突破。 简介 :在图片格式文件(JPG,PNG和GIF等)中添加隐藏一句话木马,利用文件包含漏洞,Web容器解析漏洞和.

    2024年02月07日
    浏览(50)
  • 一句话解释什么是出口IP

    出口 IP 是指从本地网络连接到公共互联网时所使用的 IP 地址。这个 IP 地址是由 Internet 服务提供商(ISP)分配给你的,它可以用来标识你的网络流量的来源。如果你使用的是 NAT(网络地址转换)技术,则在 NAT 设备内部会进行地址转换,使得多个设备可以共享同一个公共 I

    2024年02月08日
    浏览(40)
  • 一句话介绍大数据各种名词及其特点

    大数据 :传统PC无法处理的。数据大、数据类型繁多、处理速度快、价值密度低。 Hadoop :能够对大数据进行分布式处理的软件框架、这种处理具有高效、可靠、可伸缩的特点。Hadoop的特点:高效率、高可靠、高容错、高可拓展。成本低、Linux运行支持多语言。 SSH :建立在应用

    2024年02月03日
    浏览(38)
  • AI PPT 一句话搞定PPT讲演搞

    相信大家在职场中,一定会接触过写PPT,经常会把你搞得焦头烂额。在大部分的公司里,写PPT汇报又是不可能逃避的事情。但随着AI时代的到来,有很多AI帮你写PPT的工具也逐渐崭露头角,可以自动帮助你制作出华丽的PPT,给你的职场生活带来极大的便利。这些AI写PPT工具可以

    2024年02月13日
    浏览(49)
  • 一句话木马攻击复现:揭示黑客入侵的实战过程

    这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 准备环境 OWASP虚拟机 xfp 7与xshell 7 ​  DVWA系统默认的账号密码均为:admin/admin  ​ 攻击payload 这个命令的目的是在服务器上创建一个名为 shell.php 的文件,其中包含 PHP 代码。让我们逐步分析该命令:

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包