用 AI 编程-释放ChatGPT的力量

最近读了本书,是 Sean A Williams 写的,感觉上还是相当不错的。一本薄薄的英文书,还真是写的相当好。如果你想看,还找不到,可以考虑私信我吧。

ChatGPT for Coders
Unlock the Power of AI with ChatGPT: A Comprehensive Guide to Efficient and Effective Coding

下面这篇内容,基本上是我的读书笔记与自己的感悟。

先看一下下面这一段视频,它是一个最直观的 Transformer,有输出就有输出(是不是跟有问题就有答案像的狠呢?)

在这里插入图片描述

GPT能干什么

GPT 做为一个生成网络,只要有输入就一定给个输出,同时有一定的随机性,也不能保证它的输出一定是人类期望的结果(这个是现在AIGC 里最难的做对齐的那部分RLHF)。在这个基础上我们来理解 GPT 能干什么吧。

本质上 GPT 是一个针对输入产生输出的生成模型。不过它可以针对输入做多种任务的输出:翻译、总结、回答、代码生成等。

对于程序员来讲它可以做下面的事

  1. 根据输入的要求输出代码。
  2. 根据输入的信息进行 Debug。
  3. 根据输入的错误信息提供解决问题的思路与方法。
  4. 可以集成到 IDE 或者别的什么里边辅助完成功能。
  5. 解读各种语言的代码,理解它的功能。
  6. 提供一定的自定义能力,或者说定制化。
  7. 一个很强大的 NLP 工具或者 NLP 库。

在这里插入图片描述

实际上在使用 GPT 做编程辅助的时候,能感受到的就是效率的快速提升,还有低端编码工作的快速被替代。同时它还能极大的 扩展一个熟练级别员工的工作能力范围。建议任何一个老板都给自己的员工这样一个工具。少花钱,多做事。

如果 GPT 的对齐能力更好,那肯定是能替换越来越多的低端编码人员。所以,我真的不建议那些现在还在考虑转行到 IT 行业的人继续这样的行动。

下面就分别介绍一下它。

如果你要用 GPT 编程你需要清晰的知道 ,它不会完成你的所有功能,它会有错误,尤其是内存问题,逻辑可能没问题,但是内存的使用与管理一定会有问题。

你可以把它当成一个有一定 CS 知识的刚毕业的学生,这可能暂时是一个恰当的水准,但是它有时还能给你惊喜。

所以你要使用它编码,你要给出清晰的功能指令描述,还有你期望使用的一些技术,如变量命名规则,那些部分使用函数,那些部分使用类,那些部分使用 DesignPattern,你只有完成了这些东西的构想或者说逻辑设计 在自己的脑海里,才能更清晰的指望 GPT 帮你完成了。

举个例子吧:

Prompt:完成一个 TODO 的功能,用 Django 框架,写出相应的 View 及 Template 代码。

你能精确的得到 views.py, models.py, todo 相关的 template 代码。但是怎么运行,还有创建这个 App 它是不会告诉你的。

而下在贩 Prompt 可能就会告诉你所有的。

用 Django 完成个 TODO 的 Demo,给出所有的相关代码 。

它返回的是所有的 Python 代码 、Template 代码还有交互。

所以,你用 GPT 编码时,要清晰的知道自己的指令能不能表达出自己的完整的需求。只有你能够清晰的表达了自己的逻辑,你才可以用 GPT 去做编码工作。它不能代替你做系统性的思考。但是可以辅助你做任何事。

但是,只要你有编程经验,我都比较建议你了解大模型的相关知识,学习一下如何将大模型应用到自己的工作领域中。如果不知道从何开始,可以看看知乎知学堂推出的《程序员的AI大模型进阶之旅》,这里有业内大咖带你了解和学习大模型的实现原理和应用技术,带你学习AI 大模型技术与编程相结合,培养独立训练大模型的能力,可以增加你的职场竞争力.

这两天就开课了,趁着免费,有时间的建议去听听

调试这件事是在做什么呢?处理代码的问题,让它完成正常的功能。所以要做 Debug,就需要你做的

  1. 清晰的理清逻辑是什么。
  2. 提供出错的代码及出错的信息。
  3. 扔给 GPT,让它尝试告诉你问题及如何修改。
  4. 把修改过的代码再确认一下,如果不成,重复 1~3.

不过,我建议你把这个东西在所谓的 Debug 之前也做一下,因为 GPT 是可以 做代码 Reveiw,也可以做静态检查,甚至光看代码就能评估出一部分错误的。所以为什么不早点用它呢?

编码用它,编译前也用它,编译后也用它。你要想什么事都可能有它的作用。

不过同时 要注意这几件事:

  1. 问题要清晰
  2. 代码要简洁
  3. 不要光指望它解决所有问题。

按我的个人经验,有效的 Debug 只有下面几种

Print、Log、Profile、Breakpoint、人肉看代码

GPT 高级技巧

数据库设计,我想 GPT 做的数据库设计还是在平均水平以上的,因为它既懂三范式,又有大量的实践经验。还能直接生成 SQL 对应各个数据库的,让你直接试用一下哦。那怕用它生成性能测试的都没问题。

接口调用,只要给它接口描述文档,它是一定可以生成正确的调用代码的。省时省力。

Web 开发,用它写基础的前后端代码我都干过,后端出错少,前端出错多,但是也不是不能解决的。

人工智能:数据处理它是比较擅长的,模型大概只能帮你想想,别的辅助代码可以帮你写写。挺好用的,但是也挺没用的。

自然语言处理,这个用它的 API 完全可以达到你期望的理想水平,就是有点儿贵。

最佳实践与避坑指南

尽信书不如无书,GPT 这东西可以用,但是全靠它,那就没有必要了。因类它得到的东西并不能保证正确与精简。

你最好只提供最小最精准的需求给它,这样它能给你个准确的结果。太广而泛之的东西,它给的结果并不一定是正确的,甚至是可能没用的。

如果你能给它一个 Few-Shot 的学习,它可能给你的结果更好。

多看看别人怎么用 GPT 的 Prompts,这样对你有足够的帮助。

不要相信 GPT 生成的操作多维数据甚至动态内存的代码。

关注我,带你学会 AI 与使用 AI 编程!

最后给大家分享一个我常用的国内可以访问的chagpt地址:https://ai.chatai-hub.com?share=wz
国内GPT地址

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

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

相关文章

计数器的原理和应用

一、计数器的原理和应用 要求&#xff1a;每计数三次&#xff0c;数码管值加一 #include<reg51.h> unsigned char s[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned char num0; void initcounter() {TMOD0x06;//0000 0110TH0256-3;TL0256-3;ET01;EA1;T…

java数据结构与算法刷题-----LeetCode34. 在排序数组中查找元素的第一个和最后一个位置

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找 解题思路&#xff1a;时间复杂度O( l o g 2 …

vue实现把Ox格式颜色值转换成rgb渐变颜色值(开箱即用)

图示&#xff1a; 核心代码&#xff1a; //将0x格式的颜色转换为Hex格式&#xff0c;并计算插值返回rgb颜色 Vue.prototype.$convertToHex function (colorCode1, colorCode2, amount) {// 确保输入是字符串&#xff0c;并检查是否以0x开头let newCode1 let newCode2 if (t…

五、基于KubeAdm搭建多节点K8S集群

如需查阅上一步骤,请点击下面链接:四、戴尔R630本地服务器Linux Centos7.9系统安装docker-ce-20.10.10-3.el7版本-CSDN博客文章浏览阅读727次,点赞12次,收藏13次。1、准备工作3、Linux Centos7.9系统的iDRAC远程管理、网络设置、SecureCRT远程登录终端、企业级静态ip地址配…

网络安全新视角:数据可视化的力量

在当今数字化时代&#xff0c;网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽&#xff0c;传统的网络安全防护措施已难以满足需求&#xff0c;急需新型的解决方案以增强网络防护能力。数据可视化技术&#xff0c;作为一种将复杂数据转换为图…

中国象棋AI在线对弈游戏源码

源码介绍 这是一款html5小游戏&#xff0c;主要功能在于js&#xff0c;带一套皮肤、内置ai算法&#xff0c;有能力的可以自行修改。 源码截图 下载地址 链接&#xff1a;https://pan.baidu.com/s/1fYp1HWsd91nJOdX1M8RFtQ?pwdh2iz 提取码&#xff1a;h2iz

自动化测试——面试题整理

1.selenium中有哪些元素定位方式&#xff1f; 元素定位的目的&#xff1a;使用Web自动化操作元素&#xff0c;让程序操作指定元素&#xff0c;就必须找到此元素 共有8种定位方式 与name有关的&#xff1a;name、class_name、tag_name【标签名定位】与link相关的&#xff1a;…

C语言最大公约数(辗转相除法)

输入两个整数&#xff0c;求他们的最大公约数&#xff1a; 如果我们不用辗转相除法的话&#xff0c;两个整数的最大公约数&#xff0c;我们就可以定义一个整数为两个整数中最小的那个数&#xff0c;然后两个整数一起除我们新定义的整数&#xff0c;如果都除尽了&#xff0c;这…

云服务器8核32G配置租用优惠价格94元/月、1362元一年

8核32G云服务器京东云轻量云主机价格94元1个月、282元3个月、673元6个月、1362元一年&#xff0c;配置8C32G-100G SSD系统盘-10M带宽-2000G月流量 华北-北京&#xff0c;京东云优惠活动 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 8核32G云服务器京东云轻量云主机价…

COLMAP 【Feature matching】特征匹配参数解释

&#xff08;Windows&#xff09;Colmap 具体使用教程可参考我的这篇博文 windowscolmap实现SFM三维重建位姿估计-CSDN博客 下面只是matching参数解释 Matching这个阶段很重要&#xff0c;匹配方式不同会对最终结果影响很大&#xff0c;要根据实际情况选择合适的匹配方式。下…

搜索与图论——bellman—ford算法、spfa算法求最短路

bellman-ford算法 时间复杂度O(nm) 在一般情况下&#xff0c;spfa算法都优于bf算法&#xff0c;但遇到最短路的边数有限制的题时&#xff0c;只能用bf算法 bf算法和dijkstra很像 #include<iostream> #include<queue> #include<cstring> #include<algori…

vue3封装Element表格

配置表头配置多选配置序号自定义操作列按钮 封装表格 Table.vue <template><el-table:data"tableData"width"100%":maxHeight"maxHeight"v-bind"$attrs"selection-change"handleSelectChange"row-click"hand…