写点什么

ChatGPT - SpringBoot Prompting Chain

作者:小马哥
  • 2023-04-08
    四川
  • 本文字数:1574 字

    阅读完需:约 5 分钟

ChatGPT - SpringBoot Prompting Chain

最近,我做了一个关于 ChatGPT 到软件开发工程领域的研究


目标: 探索 ChatGPT 在软件开发微服务 API 的能力

原文地址: https://chatgpt-community.cn/promptchain-%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/2023/04/08/Prompt-Chain-Springboot/

实验目标

你作为开发加入一个电子商城项目中,现在需要为该项目从零开始搭建架子, 并完成如下功能:


  1. 用户可以查看商品详情,包含了商品的图片、标题、描述、价格等信息,


期望技术栈


  • Java17

  • Lombok 1.18.24

  • Gradlew gradle-7.2-all.zip

  • SpringBoot 2.2.2.RELEASE

  • SpringBoot Starter

  • SpringBoot Starter Web

  • SpringBoot Starter Data JPA

  • mybatis-spring-boot-starter 2.1.0

  • mybatis-plus-boot-starter 3.4.0

  • flyway-core


测试技术栈


  • spring-boot-starter-test

  • wiremock

Prompt 试验记录

  • [脚手架 prompting]

  • [c3 架构 prompting]

  • [US 到工序 prompting]

  • [工序到测试用例 prompting]

  • [测试用例到生产代码 prompting]

试验结果

项目从 0 到 1,有 GPT 99% 完成搭建



C3 应用架构图,GPT 画出



测试用例测试通过,GPT 实现!



应用启动成功,GPT 实现!


Prompt Chain SpringBoot 详细描述

Prompt 1 - 构建脚手架目的:    让GPT了解项目上下文Input:  project name,  package info, prefer tech stackOutput:  step-by-step guideline , 构建《Context》detail:  docs/1-脚手架prompting.md
复制代码


Prompt 2 - c3架构prompting目的: 让GPT根据项目上下文,画出C3应用架构图Input:  《Context》Output:  plunt umldetail:  docs/2-c3架构prompting.md
复制代码


Prompt 3 - US到工序prompting目的: 让GPT根据项目上下文和用户故事,设计工序Input:   UserStory定义, 《Context》Output:  工序定义, Procedure 列表detail:  docs/3-US到工序prompting.md
复制代码


Prompt 4 - 工序到测试用例prompting目的: 让GPT根据上下文,工序和用户故事,生成测试用例Input:   UserStory定义, 《Context》, Procedure工序列表Output:  测试用例代码detail:  docs/4-工序到testcase_prompting.md
复制代码


Prompt 5 - 测试用例到生产代码prompting目的:     让GPT根据上下文,工序和用户故事,测试用例生成 产品代码Input:   UserStory定义, 《Context》, Procedure工序列表,测试用例Output:  产品代码detail:  docs/5-test-case到生产代码-prompting.md
复制代码

如何使用该 Prompt Chain 帮助快速实现项目搭建

  • 【快速性】请按照 Prompt 1-5 的顺序,依次与 GPT 进行交互,进行快速构建

  • 【顺序性】后续的每一步都依赖前一步帮助 GPT 建立的上下文和理解

  • 【可回溯】如果不确定当前 GPT 所了解的上下文,可以使用某些指令让 GPT 可视化上下文

  • 【可回滚】如果当前 Prompt 步骤不太满意,可以回滚当前 Prompt 或者到指定的 Prompt 阶段,方法在小技巧里有体现

小技巧

  1. 如果 GPT 回答的问题,不够正确,可以点击


regenerate
复制代码


  1. 如果 GPT 回答的问题不够完整, 可以补充


answer not complete
复制代码


  1. 如何回溯 GPT 上下文,让 GPT 可视化


1. 在描述结尾用:`if you understood, please say `YES` and show the the story definition`   具体: docs/3-US到工序prompting.md
2. 对话中使用WHAT语句,比如: what's structure for `MallApplication`what's `tech stack` for `MallApplication`具体:docs/2-c3架构prompting.md
复制代码


  1. 如何回滚 Prompt


举例: 问题:以该项目举例,我进行当Prompt第四阶段时,我发现GPT的第3阶段上下文发生变化和丢失,改问题会影响工序的产生。方案:我希望gpt回滚当第二阶段。方法:进行遗忘回滚操作 - Forget about `US1`
复制代码


启发和思考

该测试验证了通过 Prompt Chain 可以很好的与 GPT 完成交互,并最终于 ChatGPT 一起完成软件开发工程领域的各项工作。


工作总结


  • 脚手架创建工作

  • 需求理解和拆分

  • 工序设计

  • 生成测试用例

  • 生成生成代码


并且,在设计 Prompt Chain 的时候,如果瞒住以下一些原则会使得交付流程更加顺滑,提高更高的准确率


Prompt Chain 设计原则


  • 快速性

  • 顺序性

  • 可回溯

  • 可回滚

发布于: 2023-04-08阅读数: 20
用户头像

小马哥

关注

程序员、技术顾问、编程教练 2019-07-21 加入

ThoughtWorks Senior Consultant MentorFinder共创社区发起人 CGC ChatGPT社区发起人 爱豆创空间社区少儿编程社区发起人 ActNow ToastMaster国际演讲俱乐部主席

评论 (1 条评论)

发布
用户头像
想要获取文章里面的Prompt试验项目github地址,或者参加ChatGPT社区 https://chatgpt-community.cn/,可以联系我私聊哈~
2023-04-08 13:49 · 四川
回复
没有更多了
ChatGPT - SpringBoot Prompting Chain_软件开发_小马哥_InfoQ写作社区