【AI思维空间】ChatGPT纵横编程世界,点亮智慧火花 | 京东云技术团队

作者:京东零售 王英杰

概述

该文档记录云交易开发小伙伴儿们在开发过程中的实际应用案例,记录典型案例,以解决开发过程中的实际问题为主,涵盖设计方案、编码、测试、集成、部署等等。

目的:贡献最佳实践,分享心得,共同成长!

1. 怎样构造Prompt

1.1 基本构成

一般情况下,Prompt可以分成以下4个部分:

  • Instruction: 指引,即要解决的问题类型
  • Context: 上下文,即问题的背景
  • Input Data: 输入数据,即具体的问题
  • Output Indicator: 输出指示,即对输出的一些约束

举例:

Instruction: 向我说明前端所需技术栈 Context: 假设你是一个前端面试官,我是一个本科毕业的应届生 InputData: 向我说明现阶段前端行业要求应届生掌握的技能情况 Output Indicator: 用尽量简单易懂的语言

1.2 设计原则

  • 清晰,切忌复杂或歧义,如果有术语,应定义清楚。
  • 具体,描述语言应尽量具体,不要抽象或模棱两可。
  • 聚焦,问题避免太泛或开放。
  • 简洁,避免不必要的描述。
  • 相关,主要指主题相关,而且是整个对话期间,不要东一瓢西一瓤。

举例:

✅有效 Prompt 总结一下《鲁滨逊漂流记》所讲内容? # 聚焦、相关 北京最地道的本土餐厅有哪些? # 具体、相关

❌无效 Prompt 告诉我关于这个世界为什么存在? # 宽泛、开放 可以帮我完成工作吗? # 开放 你好 # 无目的、不聚焦

2. 最佳实践案例集

案例1 开发过程中快速优化代码

(1)提供代码片段,并提出自己的诉求级具体优化方向

(2)进一步提出具体的优化方向

(3)获得优化后的代码根据业务场景进行加工,测试

  • 获取优化后代码整合进工程中
  • 根据业务场景优化代码,将抓取的异常Exception改为NullPointerException(优化场景:此处由于一致性问题,查商品主数据时存在商品主数据写服务数据还未同步到读服务的场景,报空指针,需抓取后做重试)
  • 优化后自测无问题即可

案例2 运用chatGPT对JVM进行优化

案例3 SQL优化及排错

1)帮忙检查下sql有没有问题,这个是要将业务表新增几个字段

它帮忙给识别到一些问题

按照它提示的问题修改;

我让它将三条sql合并到一条,要不然jed会提示让合并,所以让GPT帮忙合并。

还是很智能的,jed的sql检查也都顺利通过了,能帮我们review sql的正确性,降低错误操作的风险。

案例4 GPT按需生成工具类

你是一个程序员,帮忙编写一段程序,要求输入一串字符串,中间“,”分隔,最多有50个片段,然后需要校验这些片段是否有重复的,重复的放在set里面返回;

GPT给我生成的是python代码;

重新提问:你是一个Java程序员,帮忙编写一段程序,要求输入一串字符串,中间“,”分隔,最多有50个片段,然后需要校验这些片段是否有重复的,重复的放在set里面返回

再次进行优化:将50作为一个变量,不要写死,重新生成一个方法;

总结: 在项目中有需要校验一个字符串50个渠道,逗号分割,判断渠道是否重复的需求,所以通过一步步提问,让GPT帮忙生成一个工具类,这样我们在项目中可以直接使用改工具类进行快速的验证。

案例5 云交易加密服务需部署到抖音服务器上,需从零开始搭建部署环境。

背景:由于长时间使用京东Jdos部署代码,对于Linux的一些指令已经忘记。故使用ChatGPT指导我从零搭建JAVA部署环境。

1)下面我给ChatGPT的指令

指令1:CentOS7安装JAVA环境,然后通过nohub命令后台启动java jar包并把日志输出到 douyin.txt文件中

ChatGPT回答如下:

指令2:到官网下载再安装JDK太麻烦了,帮我将上述安装jdk的步骤换成yum方式安装

ChatGPT回答如下:

2)下面参考它给的指令安装JDK8,然后检测JDK版本,成功安装了。

3)接下来我把jar包上传到一个指定的目录,创建目录命令我都忘了。。。问问ChatGPT吧。

4)把开发好的jar包上传到已经创建好的目录中

5)执行nohup命令

6)浏览器访问swagger成功了

6)使用感受,几分钟就解决了我的问题。避免了我一步步百度,去翻CSDN还容易找到错误的答案。极大地节省了我的时间。因为后续还有几台机器要部署,已经把命令和步骤整理成文档沉淀下来。

案例6 jar包停止进程Linux命令咨询

上次用chatgpt帮我查询linux搭建java环境,后台部署jar包的命令,这次jar包更新需要替换jar包。我又咨询了如何停止jar包所在的进程。

1)执行第一个命令, ps -ef | grep jar 命令查找所有正在运行的jar包进程

2)执行第二个命令,kill -9 PID,这里我的jar包的进程PID是32723

3)重新部署jar包服务,这个命令之前已经问过ChatGPT并沉淀下来了,直接拷贝过来使用。

4)检查是否部署成功

案例7 假如图灵奖得主、软件工程圣经《人月神话》作者还活着,他会如何看待ChatGPT提升研发效能?

今天思考ChatGPT如何提升研发效能这个问题。正当我为这个问题绞尽脑汁的时候。突然灵光一现,为什么不问ChatGPT帮我思考用ChatGPT如何提升研发效能这个问题呢?

就像武侠电视剧和电影中的那样,剧中武侠高手左脚踩右脚就能腾空而起一样。那我问ChatGPT如何用ChatGPT提升研发效能肯定也是可行的。理论是可行的,那么OK让我们开始实践。

首先我们给ChatGPT设置一个角色。在软件工程提效领域非常资深的大师有谁呢?我第一时间就想到了人月神话的作者——布鲁克斯 FrederickP.Brooks.Jr

1)下面我们给它一个指令:假如你是《人月神话》作者FrederickP.Brooks.Jr.,你需要以它的思维和角度思考我想你提问的问题。如果你理解了,请回复好的。

我们可以看到它回复了好的。

2)接下来我们给它第二个指令:现在ChatGPT非常厉害,你认为如何用它来提升研发效能?

它以软件工程师的角度回答了ChatGPT技术可以从自动化测试、语言翻译、代码优化、自动文档化这几个角度来提升研发效能。

1和3这两个已经想到了,2目前不需要,第四个自动文档化确实没有想到。接下来我们继续结合第4条自动文档化继续深入追问。

3)接下来是第三个指令:针对第四条自动文档化,请你编写一个Java的查询学生姓名和年龄的Controller接口,然后为这个接口生成提供给前端的API文档。

下面它直接编写了一个API接口,并直接用swagger来生成api文档了。

swagger接口

结果不是很理想,我们再问问它是否还有其他用ChatGPT提升研发效能的建议

4)接下来是第四个指令:请你以《人月神话》作者FrederickP.Brooks.Jr.的角度提出10条用ChatGPT提升研发效能的建议。

最后它帮我们生成了10条建议

下面把建议附赠给大家:

1.通过提供自然语言处理的能力,Chat GPT可以帮助团队成员更高效地进行沟通和协作,减少误解和沟通不畅的情况。

2.ChatGPT可以被用来智能化项目管理。例如,在团队中使用Chat GPT聊天机器人来跟踪进度、分配任务和协调团队成员的工作。

3.通过了解开发者的意图和需求,Chat GPT可以提供更加智能化和个性化的开发辅助工具,如代码提示、错误检查等。

4.ChatGPT可以利用机器学习和数据挖掘技术,从已有的代码库中提取最佳实践、代码片段和模板,并向开发者推荐最佳实践和代码重用。

5.ChatGPT可以作为一个知识库,帮助开发者更快地获取所需信息。例如,ChatGPT可以回答关于某项技术或库的问题,或提供代码样例等。

6.在开发过程中,Chat GPT可以自动进行代码评审和测试,及时提供反馈和纠正错误,帮助开发者更早地发现和解决问题。

7.ChatGPT可以自动分析代码库中的重复代码、遗留代码和低效代码,提供优化建议,并减少代码维护负担。

8.ChatGPT可以帮助开发者进行数据分析和可视化,提供交互式探索和信息呈现功能,从而更好地理解数据和模型。

9.通过使用Chat GPT生成自然语言描述的方式,可以将机器学习模型的结果更加易读易懂地呈现给非技术人员,并提高沟通效率。

10.最后,Chat GPT可以被用来开发智能化的应用程序,如聊天机器人、智能客服等,从而更好地服务用户。

案例8 使用ChatGPT帮忙查找bug

使用mybatis判断String字符串为空的条件表达式,我一开始写成 || 了。自己看了半天也没看出问题。询问ChatGPT一眼帮我找出来了。

案例9 重构代码AI插件探索

idea安装插件【NexChatGpt】

1、在实际的开发中,对代码里面相识的两个类,进行抽象重构。

可以直接生成两个类的抽象父类,可以供参考

目前这个插件,有时候会出现问题,还需要重启idea。

有时候提示让贴上自己的代码。。。

免费提问30次。。。

还有些不稳定。。。

案例10 生成一个随机获取ip的算法

小试牛刀,成功搞定

使用随机算法获取一个ip

以ip作为入参,成功搞定我的需求

案例11 帮忙写一个简单的spring的ioc框架

太复杂了,尽然无法支持,就来一个简单的

再完善下,并帮忙写一个测试案例测试下看

亲自验证测试是否正确,能否跑起来

虽然能够跑起来,但是测试结果和其预期不一致,分析错误产生的原因是注解inject使用错误,正确使用时需要对注解添加元注解@Retention,其作用可以简单理解为设置注解的生命周期。

@Retention 注解传入的是 RetentionPolicy 枚举,该枚举有三个常量,分别是 SOURCE、CLASS 和 RUNTIME

三者区别如下:

SOURCE 代表着注解仅保留在源级别中,编译器将Java文件编译成class文件时将之遗弃。

CLASS 代表着注解被保留在class文件中,JVM加载class文件时将之遗弃。

RUNTIME 代表着标记的注解会由JVM保留,因此运行时环境可以使用它。

总结:chat-gpt对于技术细节可能无法把控,但是总体的程序框架及逻辑验证还是没有问题的。

案例12 生成 linux 常用命令思维导图,使用markdown语法输出

(该案例可以用于任何思维导图的使用中,提高写思维导图的效率,提示: 思维支持markdown文件导入)

案例13 给项目结构/模块/类命名,命名简单了。

Martin Fowler 提出了一个经典的关于命名的语言:“一个好的命名就像是好的魔法,它可以让事情变得清晰易懂。”这个语言表达了好的命名在代码中的重要性,良好的命名可以帮助读者更快地理解代码的意图和功能,提高代码的可读性和可维护性。同时,精确的命名也可以减少代码中的歧义和错误,使代码更加健壮。

以电商商品系统为例,给提供一个 DDD项目模块命名样例

案例14 字符处理、文本格式化

JOSN 串的格式化与压缩:

案例15 添加代码注释/代码评审/询问代码设计思路

ChatGPT生成代码注释,以提高代码的可读性和可维护性。

代码的可读性很重要,因为代码是由人编写和维护的。当代码可读性差时,它

将很难理解和修改,这将导致代码的可维护性和可扩展性受到影响。特别是大

家都是团队合作,如果代码的可读性很差,必然影响到团队里的其他人,也非

常不便于扩展。

ChatGPT进行代码评审,以提高代码的质量和可靠性。

你还可以通过使用ChatGPT来进行代码评审。代码评审是指通过检查代码来发现和

修复错误、缺陷和不良实践的过程。ChatGPT进行代码评审可以帮助开发人员发现

代码中的潜在问题,并提出改进建议,从而提高代码的可靠性。

ChatGPT辅助进行代码逻辑重构

复杂代码可以按需进行重构,结合设计模式,可以给ChatGPT下达按设计模式重构代码的指令。

ChatGPT辅助源代码阅读 ,以提高源码阅读功底。

案例16 对于新概念的学习,可以层层递进,举例子。

案例17 本文诗意命名的由来

ChatGPT的命名能力真的是无可挑剔,自然语言的处理处理能力、理解能力太强大了!

作者:京东零售 王英杰

内容来源:京东云开发者社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8115.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT的原理与前端领域实践 | 京东云技术团队

一、ChatGPT 简介 ChatGPT的火爆 ChatGPT作为一个web应用,自22年12月发布,仅仅不到3个月的时间,月活用户就累积到1亿。在此之前,最快记录的保持者也需要9个月才达到月活1亿。 ChatGPT的反爬 https://chat.openai.com 因为各种政…

什么是人工智能?简单的人工智能发展史

参考资料 维基百科-人工智能史百度百科-炼金术百度百科-图灵图灵机快速入门教程百度百科-第五代计算机野心勃勃的日本第五代计算机,如何一步步走向失败(上)AI缘起-达特茅斯会议人工智能发展史Imagenet官网机器之心——专家系统炼金术与人工智能:休伯特•…

大师激辩:人工智能「性善论」——文艺复兴 or 终结者?

导读 一直以来,学界对于人工智能的生存性风险尚无定论,人工智能「性善论」是否成立?「超级智能」是否会脱离人类控制,产生伤害人类的目标?人类是否会从人工智能手中失去对未来的控制权? 上月,两…

14 张图表还原当前的 AI 地图和资本之争 | AIGC 101

推荐语 Newcomer是我一直订阅的付费专栏,作者Eric曾是科技新闻网站The Information的第一位员工,后来为彭博社(Bloomberg)写了六年关于技术行业的文章。在那段时间里,他大部分时间都在报道创业公司的来龙去脉&#xff…

MySQL 输了,PostgreSQL起航 !

来源:51CTO技术栈 在软件领域,数据库是毫无疑问的中流砥柱。在这片历史悠久、玩家众多的沃土上,流传着着无数技术和商业交织的故事。如今,老一代商业数据库日薄西山,开源数据库步步为营,处在浪潮之巅的我们…

工业机器人及工控系统

一、为什么要发展人形机器人? 中国劳动力人口数量持续下滑,美、德、日等多国具有同样趋势。根据国家统计局发布的数 据显示,2022 年我国人口从年龄构成看,16~59 岁的劳动年龄人口 8.76 亿人,占全国人口的比 重为 62.0…

AIGC令人惊叹,也令人害怕

编|Aeneas 源|新智元 ChatGPT诞生之后,用自己强悍的文本创作能力,不断刷新着我们的认知。AI即将给大学校园带来怎样的爆炸性改变?似乎还没人做好准备。Nature已经发文,担心ChatGPT会成为学生写论文的工具。…

这些你熟知的 app 和服务,都用上了人工智能

从微软在 Microsoft 365 服务中全面整合 GPT-4 能力 ,让 PPT、Word 文档、Excel 表格的制作变成了「一句话的事」,到 Adobe 刚刚发布 Adobe Firefly模型集合,让图形设计、字体风格、视频渲染乃至 3D 建模的门槛显著降低——你我熟知的那些工…

CSDN上海城市开发者社区线下活动纪实

引言 5月27号中午,很高兴能和现CSDN副总裁、前微软 Azure 工程团队首席研发经理、技术畅销书《编程之美》及《构建之法》的作者邹欣邹老师,以及CSDN的 “上海城市开发者社区” 的部分成员齐聚一堂,参加CSDN上海城市开发者社区自5月初成立以来…

中国开发者薪酬集中在 20万-34万元、Vite 爆火、Angular 下行,最新 JavaScript 年度报告重磅发布!...

整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 诞生于世纪之交的 JavaScript,经历了 27 年的发展,已成为当今世界上最受开发者欢迎的编程语言之一。 近日,stateofjs.com 网站正式发布了《2022 年 JavaScript 年度调…

Voice Control for ChatGPT 沉浸式的与ChatGPT进行交流学习。

Voice Control for ChatGPT 日常生活中,我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的,毕竟相对于文字来说语音就不会显的那么的苍白无力,同时最大的好处就是能解放我们的双手吧,能更快实现两者间的对话,沟通…

语音识别之语音控制

接上文,如何实现语音控制呢?比如当我们说天气的时候,界面会自动呈现的天气预报的界面,当我们说UC的时候,会自动跳转到UC浏览器上等等。其实方法很简单,仅仅需要对识别到的字符串进行判断,当它符…

ChatGPT的焦虑蔓延,暴露了企业转型的关键要素

由美国OpenAI公司研发的聊天机器人程序ChatGPT,可以说是火遍了全网。据瑞银集团的报告显示,在ChatGPT推出仅两个月后,它在2023年1月末的月活用户已经突破了1亿,成为史上用户增长速度最快的消费级应用程序。根据Sensor Tower的数据…

如何获取ChatGPT的APIKEY

点击跳转官网,右上角个人中心查看key 进入后查看左侧API keys,点击生成即可 key已生成,即可调用API进行自主调用 API文档,点击查看 ChatGPT的API接口是基于OpenAI的GPT-3.5预训练模型,使用RESTful API架构和JSON格式进…

AutoGPT爆火,GitHub上已有42k星标,打造一款属于自己的AI助手,什么是全自动AI?ChatGPT已过时?

GitHub上线了一个新的基于GPT-4的开源应用项目AutoGPT,凭借超42k的Star数在开发者圈爆火。 AutoGPT能够根据用户需求,在用户完全不插手的情况下自主执行任务,包括日常的事件分析、营销方案撰写、代码编程、数学运算等事务都能代劳。比如某国…

【chatgbt (一)】 AI绘图 Midjourney

1. 注册一个Midjourney 账号 1.1 有一个可靠的网络环境 ( 这里的 可靠 就是 可靠的意思。你懂的) 1.2 注册一个discord账号 到这个页面就是OK了 1.3 注册一个Midjourney账号 接受邀请就到这里了 2. 画图 2.1 指令作图 进错频道发送了 /imagin 指令 机器人告诉我要去#new…

ChatGPT+Ai绘图【stable-diffusion实战】

ai绘图 stable-diffusion生成【还有很大的提升空间】 提示词1 Picture a planet where every living thing is made of light. The landscapes are breathtakingly beautiful, with mountains and waterfalls made of swirling patterns of color. What kind of societies m…

孔乙己的长衫!ChatGPT 最可能取代的 10 种工作!

所谓的【孔乙己的长衫】,是近来很火的网络热梗。它指的是,经济不好,就业形势不乐观,一些媒体就此发表看法,说现在年轻人普遍存在问题:把学历看得太重,以致于不愿意放下身段去劳动了,…

拆解追溯ChatGPT各项能力的起源

https://franxyao.github.io/blog.html 作者:符尧, yao.fued.ac.uk,爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学与 彭昊,Tushar Khot在 艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿与 剑…

万字拆解!追溯ChatGPT各项能力的起源

导语 一篇十分深度剖析GPT系列模型的文章,作者翻译成了中文,在这里分享给大家。 来源:李rumor 作者:符尧, yao.fued.ac.uk,爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学与 彭昊&#x…