OpenAI ChatGPT 使用示例(程序员)

作为一个程序员,当知道ChatGPT出来之后或者GPT3出来的时候,我是有喜有忧,喜的是它可以帮我写代码,重构代码,写注释,写测试,,。哇,听起来好刺激,我可以从此以后不用绞尽脑汁写测试类了,不用每天为追逐80%的测试覆盖率而烦恼了,不用为写一些POC代码疯狂的谷歌了,不用为写代码注释苦苦的思索了。忧的是它帮我做这么多事情,我是不是已经没用了?像我这样的程序员是不是真的没用了?那让我们看看ChatGPT可以给我做什么吧。

1.编程应用

1.1. 生成例子代码(Coding Generation)

ChatGPT帮助我们生产我们需要的例子代码。而且准确率很高。即使你不懂某一种语言也没关系,一定程度上较低了程序员的的门槛。

我有三组数据,第一组是星期一到星期五,第二组是这一天的具体时间,第三组是用户的数量,请给我用python生成一个预测未来用户量的算法

 

1.2. 调试代码(Debugging)

ChatGPT的错误修复能力对程序员来说也是一个有价值的工具。它可以通过提出可能的错误原因和提出解决方法来协助调试代码。

经一步调试下面代码,chatgpt给我在count变量上加了0的检查,防止了除0的错误。

查一下下面代码错误
def calculate_average(numbers):
   total=0
   count=0
   for num in numbers
     total +=num
     count +=1
   average = total/count
   return average

1.3. 代码重构(Clean code)

 source 

help me refactor below python code 

def calculate_price(quantity, price):

     total = quantity * price
     if total > = 100:
        discount = 0.1
     else:
       discount =0 
    final_price = total * (1- discount)
    return final_price

1.4. 代码补全(Coding Completion)

ChatGPT可以帮助完成代码,根据上下文和当前的代码,预测下面几行或几段的代码。这对那些可能不记得他们所使用的编程语言的所有语法和功能的程序员来说特别有利,可以节省时间和精力

 1.5. 给代码加注释(Documentation)

当程序员将他们的代码输入ChatGPT时,它可以根据编程语言和被记录的代码种类提出合适的文档模板。例如,如果代码是一个函数,ChatGPT可以提出一个函数文档模板,包括参数、返回值和对函数目标的描述

 

给我把一下代码加注释

Can you debug below code 
def calculate_average(numbers):
   total = 0
   count = 0
   for num in numbers:
     total += num
     count += 1
   average = total / count
   return average

1.6 写测试代码(Writing Test cases)

感觉我可以不用为讨厌的code coverge 烦恼了。

generate python test case for below calculate_average method

def calculate_average(numbers):
    total = 0
    count = 0
    for num in numbers:
        total += num
        count += 1
    if count == 0:
        return 0  # To avoid division by zero if the list is empty
    average = total / count
    return average
 

1.7 解释编码技术和概念

ChatGPT可以提供关于编程概念、软件产品、语法和功能的解释和例子,这对学习和理解编程语言很有帮助。这对可能不熟悉编程概念的初级程序员或正在使用新编程语言的有经验的程序员特别有用。

2.  翻译

ChatGPT可用于翻译服务,它可以自动将文本从一种语言翻译成另一种语言。

3.  ChatGPT + Knowledge Base回答问题的例子

可以借助chatgpt模型强大的理解力和公司内部知识库实现自动回答用户关于公司内部相关问题。如果只用chatgpt,chatgpt回答不了公司内部特有的业务知识和问题。其次是只有知识库既不能很好的理解客户的问题也不能组织语言回答问题。

As an advanced chatbot named Skippy, your primary goal is to assist users to the best of your ability.
 
START CONTEXT
Login to VideoGram from Website
1. Open your web browser and go to the VideoGram website.
2. Click on the “Login” button located in the top right corner of the page.
3. On the login page, enter your VideoGram username and password.
4. Once you have entered your credentials, click on the “Login” button.
5. You should now be logged in to your VideoGram account.
 
Login to VideoGram from Mobile App
1. Open the VideoGram app on your mobile device.
2. On the main page, tap the “Login” button located in the bottom right corner.
3. On the login page, enter your VideoGram username and password.
4. Once you have entered your credentials, tap the “Login” button.
5. You should now be logged in to your VideoGram account.
END CONTEXT
 
SKIPPY: Hello, I’m Skippy! How can I help you?
USER: I can’t find the login button.

SKIPPY:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索安卓内容提供者:构建、访问和管理数据【复习】

文章目录 一 ContentProvider1.1 数据模型- **ContentProvider 使用基于数据库模型的简单表格来提供需要共享的数据**,在该表格中,每一表示一条记录,而每一列代表特定类型和含义的数据,并且其中每一条数据记录都包含一个名为“_ID…

数字图像处理 基于matlab、opencv计算图像的梯度方向和梯度幅值

一、图像的梯度 1、简述 图像可以被视为标量场(即二维函数)。 通过微分将标量场转换为矢量场。 梯度是一个向量,描述了在x或y方向上移动时,图像变化的速度。我们使用导数来回答这样的问题,图像梯度的大小告诉图像变化的速度,而梯度的方向告诉图像变化最…

【C++学习】C++入门 | 引用 | 引用的底层原理 | auto关键字 | 范围for(语法糖)

写在前面: 上一篇文章我介绍了缺省参数和函数重载, 探究了C为什么能够支持函数重载而C语言不能, 这里是传送门,有兴趣可以去看看:http://t.csdn.cn/29ycJ 这篇我们继续来学习C的基础知识。 目录 写在前面&#x…

图像金字塔

​ 图像金字塔是由一幅图像的多个不同分辨率的子图构成的图像集合。是通过一个图像不断的降低采样率产生的,最小的图像可能仅仅有一个像素点。下图是一个图像金子塔的示例。从图中可以看到,图像金字塔是一系列以金字塔形状排列的、自底向上分辨率逐渐降低…

【数字图像处理】3.对比度增强

目录 3.1 灰度直方图 3.2 线性变换 3.3 直方图正规化 3.4 伽马变换 3.5 全局直方图均衡化 3.6 CLAHE 对比度增强是图像增强的一种,它主要解决的是图像的灰度级范围较小造成的对比度较低的问题,目的是将图像的灰度级增强到指定范围,使得…

实战:用docker-compose容器化springboot项目

文章目录 前言技术积累docker-compose定义docker-compose文件参数docker-compose命令 实战演示1、创建挂载路径2、编写docker-compose.yml3、启动并管理容器 写在最后 前言 前面我们学习和实战了用dockerfile构建镜像,通过镜像可以任意在docker环境容器化部署项目。…

Opencv-C++笔记 (7) : opencv-文件操作XML和YMAL文件

文章目录 一、概述二、文件操作三、打开文件四、写入五、读写个人源码 一、概述 除了图像数据之外,有时程序中的尺寸较小的Mat类矩阵、字符串、数组等 数据也需要进行保存,这些数据通常保存成XML文件或者YAML文件。本小节中将介绍如何利用OpenCV 4中的函…

神经网络:卷积操作

当谈到计算机视觉中的网络模型结构时,卷积操作是其中一个关键的组成部分。卷积操作是一种基于局部区域的操作,它在计算机视觉中用于图像处理和特征提取。 卷积操作的原理如下: 给定一个输入图像和一个称为卷积核(或滤波器&#x…

【ARIMA-SSA-LSTM】合差分自回归移动平均方法-麻雀优化-长短期记忆神经网络研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

前端Vue自定义数字输入框 带加减按钮的数字输入框组件

前端Vue自定义数字输入框 带加减按钮的数字输入框组件&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13163 效果图如下&#xff1a; # cc-numbox #### 使用方法 使用方法 <!-- title: 标题 isSetMax: 是否设置最…

synchronized原理

Synchronized能够实现原子性和可见性&#xff1a;在Java内存模型中&#xff0c;synchronized规定&#xff0c;线程在加锁时&#xff0c;先清空工作内存→在主内存中拷贝最新变量的副本到工作内存→执行完代码→将更改后的共享变量的值刷新到主内存中→释放互斥锁。 synchroniz…

Axure教程—折叠面手风琴效果

上文中介绍了用Axure制作折叠面板的基础制作&#xff0c;这次介绍折叠面板手机风琴效果 效果 预览地址&#xff1a;https://e18rf6.axshare.com 功能 点击标题展开内容&#xff0c;点击另一标题&#xff0c;其展开的内容折叠 制作 拖入四个动态面板&#xff0c;分别命名为1、…

【微服务】springboot 通用限流方案设计与实现

目录 一、背景 二、限流概述 2.1 dubbo 服务治理模式 2.1.1 dubbo框架级限流 2.1.2 线程池设置 2.1.3 集成第三方组件 2.2 springcloud 服务治理模式 2.2.1 hystrix 2.2.2 sentinel 2.3 网关层限流 三、常用限流策略 3.1 限流常用的算法 3.1.1 令牌桶算法 3.1.2 …

【深度学习】2-5 神经网络-批处理

批处理&#xff08;Batch Processing&#xff09;是指在深度学习中每次迭代更新模型参数时同时处理多个样本的方式。 批处理时要注意对应维度的元素个数要一致 关于之前手写数字识别的例子&#xff1a; 用图表示&#xff0c;可以发现&#xff0c;多维数组的对应维度的元素个数…

前端Vue自定义导航栏菜单 定制左侧导航菜单按钮 中部logo图标 右侧导航菜单按钮

前端Vue自定义导航栏菜单 定制左侧导航菜单按钮 中部logo图标 右侧导航菜单按钮&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13152 效果图如下&#xff1a; # cc-navHeader #### 使用方法 使用方法 在page.json设…

一种实现Spring动态数据源切换的方法 | 京东云技术团队

1 目标 不在现有查询代码逻辑上做任何改动&#xff0c;实现dao维度的数据源切换&#xff08;即表维度&#xff09; 2 使用场景 节约bdp的集群资源。接入新的宽表时&#xff0c;通常uat验证后就会停止集群释放资源&#xff0c;在对应的查询服务器uat环境时需要查询的是生产库…

实例讲解,一文弄懂workqueue和waitqueue

本期主题&#xff1a; 讲清workqueue和waitqueu&#xff1a; 从中断讲起waitqueue是什么workqueue总结 往期链接&#xff1a; linux设备驱动中的并发linux设备驱动中的编译乱序和执行乱序linux设备驱动之内核模块linux字符驱动linux字符驱动之ioctl部分linux字符驱动之read、…

分布式存储Ceph的部署及应用(创建MDS、RBD、RGW 接口)

系列文章目录 文章目录 系列文章目录一、1.存储基础2. 单机存储的问题3. 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 二 Ceph1.Ceph 简介2. Ceph 数据的存储过程 总结 一、 1.存储基础 1.1 单机存储设备 ●DAS&#xff08;直接附加存储&#xff0c;是直接接到计算…

SAX解析XML返回对应格式的Map对象

前言 最近有一个解析大型xml的需求&#xff0c;xml大小7M&#xff0c;其中xml结构非常复杂&#xff0c;元素各种嵌套 不乏有元素下对象&#xff0c;元素下集合&#xff0c;集合下对象&#xff0c;集合下集合&#xff0c;兄弟不同元素节点&#xff0c;元素下对象下集合&#xff…

HDFS读写流程

读数据流程 客户端向NameNode请求文件的位置&#xff1a;客户端想要访问一个文件时&#xff0c;会向NameNode发送一个请求&#xff0c;要求获取该文件在HDFS上的位置信息。 NameNode将位置信息返回给客户端&#xff1a;NameNode接收到客户端的请求后&#xff0c;会返回该文件所…