用 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 是一个针对输入产生输出的生成模型。不过它可以针对输入做多种任务的输出:翻译、总结、回答、代码生成等。
对于程序员来讲它可以做下面的事
- 根据输入的要求输出代码。
- 根据输入的信息进行 Debug。
- 根据输入的错误信息提供解决问题的思路与方法。
- 可以集成到 IDE 或者别的什么里边辅助完成功能。
- 解读各种语言的代码,理解它的功能。
- 提供一定的自定义能力,或者说定制化。
- 一个很强大的 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,就需要你做的
- 清晰的理清逻辑是什么。
- 提供出错的代码及出错的信息。
- 扔给 GPT,让它尝试告诉你问题及如何修改。
- 把修改过的代码再确认一下,如果不成,重复 1~3.
不过,我建议你把这个东西在所谓的 Debug 之前也做一下,因为 GPT 是可以 做代码 Reveiw,也可以做静态检查,甚至光看代码就能评估出一部分错误的。所以为什么不早点用它呢?
编码用它,编译前也用它,编译后也用它。你要想什么事都可能有它的作用。
不过同时 要注意这几件事:
- 问题要清晰
- 代码要简洁
- 不要光指望它解决所有问题。
按我的个人经验,有效的 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地址
相关文章:
用 AI 编程-释放ChatGPT的力量
最近读了本书,是 Sean A Williams 写的,感觉上还是相当不错的。一本薄薄的英文书,还真是写的相当好。如果你想看,还找不到,可以考虑私信我吧。 ChatGPT for Coders Unlock the Power of AI with ChatGPT: A Comprehens…...
【快速解决】解决谷歌自动更新的问题,禁止谷歌自动更新,如何防止chrome自动升级 chrome浏览器禁止自动升级设置方法
目录 问题描述 解决方法 1、搜索栏搜索控制面板 2、搜索:服务 编辑 3、点击Windows工具 4、点击服务 5、禁止谷歌更新 问题描述 由于我现在需要装一个谷歌的驱动系统,但是目前的谷歌驱动系统的版本都太旧了,谷歌自身的版本又太新了…...
【Leetcode每日一题】模拟 - 替换所有的问号(难度⭐)(42)
1. 题目解析 题目链接:1576. 替换所有的问号 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 遍历字符串:从左到右逐个处理字符。 处理问号字符:对于每个问号字符,我们需…...
再见 mysql_upgrade
在数据库管理的世界里,随着技术的不断进步和业务的不断发展,数据库的版本升级成为了一个不可避免的过程。 MySQL 作为业界领先的开源关系型数据库管理系统,其版本迭代与功能优化同样不容忽视。 而在这个过程中,升级工具就显得尤为…...
.NET Core教程:入门与实践实例
.NET Core教程:入门与实践实例 在信息技术飞速发展的今天,掌握一门高效的编程技术成为了每个开发者不可或缺的技能。在众多编程框架中,.NET Core以其跨平台、高性能和易扩展的特性,受到了广大开发者的青睐。本文将通过实例&#…...
docker环境配置过程中的常见问题
1、pull镜像问题 docker pull jenkins/jenkins:lts Using default tag: latest Trying to pull repository docker.io/library/centos ... Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/token?scoperepository%3Alibr…...
精选2024年最佳项目管理系统!实用推荐与详细评测
随着企业规模的扩大,项目量也会呈几何倍的增长,项目管理系统就成了企业管理必不可少的一部分。2024年优秀的项目管理系统推荐。今年为大家带来Microsoft Project、Zoho Projects、Jira以及Wrike项目管理系统评测。 什么是项目管理系统? 项目…...
民航电子数据库:CAEMigrator迁移数据库时总是卡死
目录 一、场景二、异常情况三、排查四、应急方案 一、场景 1、对接民航电子数据库 2、将mysql数据库迁移到cae数据库 3、使用CAEMigrator迁移工具进行数据库迁移时,该工具会卡死(不清楚是否是部署cae服务的服务器资源导致) 二、异常情况 …...
数据结构 第6章 图(一轮习题总结)
数据结构 第6章 图 6.1 图的基本概念6.2 图的存储及基本操作6.3 图的遍历6.4 图的应用 6.1 图的基本概念(2 4 11) 6.2 图的存储及基本操作(1 12 13 15 16) 6.3 图的遍历(2 3 5 16) 6.4 图的应用 6.1 图的基…...
如何在智能交通系统中使用物联网技术提高道路安全和效率
在智能交通系统中,物联网(IoT)技术可以通过多种方式提高道路安全和效率。以下是利用物联网技术提高智能交通系统效能的具体方法: 1. 车与路、车与车通信(V2X):通过在道路上部署传感器和路侧单元…...
七大 QC 工具图的定义与示例(看这篇就够了)
前言 七大 QC 工具图是通过数值的方式进行数据分析的工具,分别是鱼骨图、直方图、柏拉图、散布图、管制图、检查图和层别图。其实,我们在日常生活与工作中经常看到它们,只是样子和名字对不上而已,今天写这篇文章就是为了帮助自己…...
【JavaScript算法】DOM树层级显示
题目描述: 上述表达式的输出结果为 [DIV] [P, SPAN, P, SPAN] [SPAN, SPAN]直接上代码 let tree document.querySelector(".a"); function traverseElRoot(elRoot) {const result [];function traverse(element, level) {if (!result[level]) {resul…...
MySql实战--全局锁和表锁 :给表加个字段怎么有这么多阻碍
今天我要跟你聊聊MySQL的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成…...
axios请求类型是文件流怎么显示报错信息
axios请求类型是文件流,但是报错信息的话没法显示,在request.js文件中更改一下request拦截器代码: service.interceptors.request.use(config > { ...... , error > { console.log(error, 报错报错) // 处理请求错误 if (error.respons…...
DataX 源码改造支持Mysql 8.X
文章目录 DataX 源码改造支持Mysql 8.X问题背景克隆源代码并修改重新打包生产环境发布DataX 源码改造支持Mysql 8.X 问题背景 今天在使用DataX同步数据的时候遇到一个问题,报错如下 错误信息为:java.sql.SQLException: No suitable driver found for ["jdbc:mysql://…...
大数据学习-2024/3/29-oracle使用介绍
在plsql中登录ORACLE数据。 默认用户: 1、sys: 角色:数据库超级管理员账户。 权限:具有最高的权限,可以执行任何操作,包括操作数据字典和控制文件。可以创建和删除数据库对象,授予和回收其他用户…...
Vim - 文本编辑器 Vi vs Vim
你是否应该在学习 Vim 之前先学习 Vi,这完全取决于您自己、您的要求以及您的具体目标和需求。Vim 是 Vi 的扩展、增强和改进版本,它包括 Vi 的所有功能以及许多附加功能。 简约: Vi 设计简约。先学习 Vi 可以让你对基础知识有扎实的了解&…...
SpringBoot 登录认证(二)
SpringBoot 登录认证(一)-CSDN博客 SpringBoot 登录认证(二)-CSDN博客 SpringBoot登录校验(三)-CSDN博客 HTTP是无状态协议 HTTP协议是无状态协议。什么又是无状态的协议? 所谓无状态&…...
C#语言规范及特殊用法笔记
前言 记录在学习C#过程中遇到的知识点,会持续更新。 1. 常用数据类型结构的默认值 创建类的一个实例时,在执行构造函数之前,如果没给成员变量赋初始值,C#编译器将每一个成员变量初始化为默认值。虽然C#编译器为每个类型都设置了…...
Mysql数据库:日志管理、备份与恢复
目录 前言 一、MySQL日志管理 1、存放日志和数据文件的目录 2、日志的分类 2.1 错误日志 2.2 通用查询日志 2.3 二进制日志 2.4 慢查询日志 2.5 中继日志 3、日志综合配置 4、查询日志是否开启 二、数据备份概述 1、数据备份的重要性 2、备份类型 2.1 从物理与…...
kubernetes(K8S)学习(八):K8S之常见部署方案
K8S之常见部署方案 一、普通部署二、滚动更新(Rolling update)三、蓝绿部署(Blue/Green Deployment)四、灰度发布(金丝雀发布) 常见的部署方案参考博文:常见部署方案:普通部署、滚动…...
《AIGC重塑金融:AI大模型驱动的金融变革与实践》
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-oBSlqt4Vga1he7DL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...
【详解】运算放大器工作原理及其在信号处理中的核心作用
什么是运算放大器 运算放大器(简称“运放”)是一种放大倍数非常高的电路单元。在实际电路中,它常常与反馈网络一起组成一定的功能模块。它是一种带有特殊耦合电路和反馈的放大器。输出信号可以是输入信号的加法、减法、微分和积分等数学运算…...
银河麒麟V10:sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
一、引起原因: sudo chmod -R 777 bin 修改了/usr/bin/sudo的权限,引发后续问题。 二、现象: sudo执行命令报错: sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位 三、解决方法(知道root密码&…...
Android 多层级列表实现
方法一: Element.java : package com.chy.ydy.tools.treeutil; /*** TreeView 元素* */ public class Element {/** 文字内容 */private String contentText;/** 在tree中的层级 */private int level;/** 元素的id */private int id;/** 父元素的id */…...
柔数组的介绍
柔数组简单介绍 这个词你可能没有听过但是他的确是存在的。 1.在c99中结构中的最后⼀个元素允许是未知⼤⼩的数组,这就叫做『柔性数组』成员 2这就代表了它存在与结构体中,很重要的一点是,他只能是结构体的最后的一个成员,这是…...
跳槽多次未成功,问题源自何处?
众所周知,2023年市场很难!看着企业们纷纷裁员,甚至连内推这个后门都走不通!哪怕有面试,都是屡屡碰壁,你想清楚问题出在哪了吗?😭“求职不得,夜不能寐;三更半夜…...
Linux 操作系统 022-串口/U盘/共享文件夹
Linux 操作系统 022-串口/U盘/共享文件夹 本节关键字:Linux、centos、串口、U盘、共享文件夹 本节相关指令:echo、cat、mkdir、mount 1、串口 #(1) 查看串口是否可用,可以对串口发送数据比如: $ echo helloworld >/dev/ttyS…...
java题目9:100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(HorsesPackGoods9)
每日小语 正是他的意图损坏了他的悟性。——《充足理由律的四重根》 思考 有点鸡兔同笼的感觉嗷, //100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(public class HorsesPackGoo…...
操作系统OS Chapter1
操作系统OS 一、概念和功能1.概念2.功能3.目标 二、特征1.并发2.共享3.虚拟4.异步 三、发展四、运行机制五、中断和异常1.中断的作用2.中断的类型3.中断机制的原理 六、系统调用七、操作系统结构八、操作系统引导九、虚拟机 一、概念和功能 1.概念 操作系统(OS&…...
清廉企业建设/seo怎么搞
前文说到使用统计学习方法进行文本分类就是让计算机自己来观察由人提供的训练文档集,自己总结出用于判别文档类别的规则和依据。理想的结果当然是让计算机在理解文章内容的基础上进行这样的分类,然而遗憾的是,我们所说的“理解”往往指的是文…...
凡科网做网站花多少钱/互动营销平台
Arch一直在我笔记本里边,只是玩gentoo时我不进Arch了,现在回归Arch,升级到了最新,用上了gentoo的最新的2.6.31内核(自己配置,无initrd),引导程序用的grub4dos:Arch的启动脚本非常优雅,这也是我一眼就喜欢上Archlinux的原因之一:这是我的LXDE桌面:关机时的界面...
网站制作公司哪儿济南兴田德润有活动吗/seo在线工具
题目链接 第一个差分约束的题目。看了好多的博客,差分约束就是根据不等式建好图,然后求最短路或者最长路即可,很明显建图是关键。 这个题的题意是,给很多的区间,每个区间上至少ci个数,问最这些数最少有多少…...
wordpress 缩略图截图/成都今天宣布的最新疫情消息
1.将程序内部时区设置为UTC时间.(UTC 也可以叫 GMT)PHP设置:date_default_timezone_set("UTC");Yii设置:config/main.php 中添加 :timeZone>UTC,如此设置后,PHP生成的时间基本都是UTC时间了.例如://输出当前UTC时间date("Y-m-d H:i:s");2.数据库中存储U…...
淄博做网站小程序的公司/惠州seo外包服务
洛谷 P1886 滑动窗口 (单调队列) 题解 洛谷 P1886 题目 有一个长为 nnn 的序列 aaa,以及一个大小为 kkk 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如&…...
js 访问wordpress/免费发布推广的网站有哪些
微软利用OAuth2为RESTful API提供了完整的鉴权机制,但是可能微软保姆做的太完整了,在这个机制中指定了数据持久化的方法是用EF,而且对于用户、权限等已经进行了封装,对于系统中已经有了自己的用户表,和不是采用EF做持久…...