用 AI 编程-释放ChatGPT的力量

news2025/2/2 10:42:14

最近读了本书,是 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.coloradmin.cn/o/1555281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【最新版RabbitMQ3.13】Linux安装基于源码构建的RabbitMQ教程

前言 linux环境 安装方式有三种,我们这里使用源码安装 Linux下rpm、yum和源码三种安装方式简介 个人语雀首发教程:https://www.yuque.com/wzzz/java/kl2zn22b42svsc6b csdn地址: https://blog.csdn.net/u013625306/article/details/137151862 安装版本…

政安晨:【Keras机器学习实践要点】(九)—— 保存、序列化和导出模型

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章是保存、序列化和导出模型的完整指南。 …

Redis 不再“开源”:中国面临的挑战与策略应对

Redis 不再“开源”,使用双许可证 3 月 20 号,Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示,今后 Redis 的所有新版本都将使用开源代码可用的许可证,不再使用 BSD 协议,而是采用…

蓝桥备赛——堆队列

AC code import os import sys import heapq a [] b [] n,k map(int,input().split())for _ in range(n):x,y map(int,input().split())a.append(x)b.append(y) q []# 第一种情况:不打第n个怪兽# 将前n-1个第一次所需能量加入堆 for i in range(n-1):heapq.h…

安装和使用 Oracle Database 23c 容器鏡像

Oracle Database 23c 是 Oracle 最新的数据库版本,它带来了许多新特性和性能改进。 对于开发者来说,Oracle 提供了一个免费的开发者版, 可以通过 Docker 容器轻松安装和使用。以下是详细的安装和使用指南。 安装 Docker 在开始之前&#xff0…

全局UI方法-弹窗二-列表选择弹窗(ActionSheet)

1、描述 定义列表弹窗 2、接口 ActionSheet.show(value:{ title: string | Resource, message: string | Resource, autoCancel?: boolean, confrim?: {value: string | Resource, action: () > void }, cancel?: () > void, alignment?: DialogAlignment, …

C++template之类模版进一步了解

前言:这一篇是在我的上一篇文章的基础上,再进一步所写的。 链接:CTemplate<>模版的介绍及深度解析-CSDN博客 一、类模板实例化 1.非类型模版参数 类型模版参数:就是跟在 class后面或者typename后的类型 非…

【软考---系统架构设计师】特殊的操作系统介绍

目录 一、嵌入式系统(EOS) (1)嵌入式系统的特点 (2)硬件抽象层 (3)嵌入式系统的开发设计 二、实时操作系统(RTOS) (1)实时性能…

【动手学深度学习-pytorch】-9.3深度循环神经网络

到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。 其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性,这就不是一个大问题。 然而,对一个单层来说,这可能具有…

【2024系统架构设计】案例分析- 4 嵌入式

目录 一 基础知识 二 真题 一 基础知识 1 基本概念 ◆系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。或者,可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

三菱Q系列PLC以太网TCP通讯FB块源码

三菱Q系列PLC的tcp通讯,客户端和服务器两个变量好用的FB块,调用块就可以实现通讯连接,不需要自己写程序,简单配置引脚就可以。该块还集成了断网,连接错误,发送接收数据错误报警等功能。具体功能见下面介绍.…

Java 并发编程之volatile可见性,原子操作线程不安全

volatile 关键字 在修饰的变量,在系统汇编的代码里会生成lock前缀,表示指令在多核CPU情况下,在当前处理器将缓存数据写回到系统主内存时,会引起其他CPU缓存了该内存地址的数据无效。 作用:保证线程的可见性&#xff…

UKP3d,AutoPDMS出轴测图时的焊点设置

焊点的设置是关联元件库里的连接方式(焊点设置不成功,请查看元件的连接方式),看元件的连接方式如下: 转到两次查看元件连接类型

动态内存管理+柔性数组

动态内存存在的意义 C语言是一种过程式编程语言,提供了底层访问能力和丰富的功能,广泛应用于操作系统、嵌入式系统、硬件驱动程序等领域。C语言的动态内存管理主要是通过malloc()、calloc()、realloc()和free()这几个标准库函数来实现的。 理解动态内存…

单调栈的使用一:接雨水

文章目录 1、单调栈接雨水的过程2、算法正确性的关键点:3、简化理解:4、算法的实现 题目路径: 42.接雨水 其他解法: 接雨水(动态规划/双指针/贪心) 单调栈原理: 单调栈和单调队列 单调栈直接…

Topaz Video AI for mac 视频增强软件

Topaz Video AI for Mac是一款专为Mac用户设计的视频增强软件,它利用先进的人工智能技术和机器学习算法,为用户提供卓越的视频编辑和增强体验。 软件下载:Topaz Video AI for mac v4.2.2激活版 这款软件能够快速提高视频的清晰度、色彩饱和度…

Python Flask Web框架初步入门

前言 flask基础 搭建flask服务器 定义html 使用templates模板定义页面的html html页面编写 render_template传参变量 定义图片 创建static目录,存入图片 html编写 flask入门 网站多域名 网站之间超链接跳转 入门案例 将centos的rpm包下载链接集成到自…

Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)

文章目录 1.配置 Yum 源2.下载 Python3 包3. 解压4.安装依赖环境5.安装出错场景 6.创建软链接7.配置 Python3 的环境变量8.验证补充:安装 openssl-devel补充:pip3 源配置 1.配置 Yum 源 # 注意!!!请先切换到 root 账号…

什么是搜索引擎(SEO)爬虫它们是如何工作的?

什么是搜索引擎(SEO)爬虫&它们是如何工作的? 你的网站上有蜘蛛🕷️。别抓狂!我说的不是真正的八条腿的蜘蛛🕷️。 我指的是搜索引擎优化爬虫。他们是实现SEO的机器人。每个主要的搜索引擎都使用爬虫来…