官方 gpt3.5, gpt4.0、github copilot chat、gpt3.5 api、gpt4 api 对比

这是「进击的Coder」的第 848 篇技术分享

作者:刘志军

来源:Python 之禅

阅读本文大概需要 9 分钟。

gpt4 的智能程度大于 gpt3.5,毫无争议,但是 OpenAI 提供的 GPT3.5 API  能力是否和官方的 GPT3.5 相当?对应的 GPT4.0 是否也一样?另外, Github 的 copilot chat 能力又怎样?

我试着用一个编程问题分别用不同的模型去测试看看效果如何。

问题:请帮我实现一个 Python 函数,根据指定时间计算当月最后一天, 传入的参数值为 datetime 类型,返回的结果也为 datetime

我把 AI 返回给我的所有内容直接贴出来

GPT3.5 API 的回答

import datetimedef get_last_day_of_month(date):# 获取下个月的第一天next_month = date.replace(day=28) + datetime.timedelta(days=4)# 往前推一天,即为当月的最后一天last_day = next_month - datetime.timedelta(days=1)return last_day# 示例用法
date = datetime.datetime(2022, 9, 15)
last_day = get_last_day_of_month(date)
print(last_day)  # 输出:2022-09-30
```在上面的代码中,我们首先获取下个月的第一天,然后往前推一天,即可得到当月的最后一天。


粗略一看,感觉也没什么毛病,特别是它还给你加了注释,说得好像很有道理,先获取下个月第一天,然后再往前减一天就得到了当月的最后一天。实际运行时就有 bug,因为 9 月只有 30 天,28+4=32,相当于  next_month 的值 10 月 2 日了,减一天也是 10 月 1 日, 最后的返回值就是错误的。

结论:有明显的 bug

GPT4.0 API 回答:

import datetimedef get_last_day_of_month(date):# 获取下个月的第一天if date.month == 12:next_month = date.replace(year=date.year+1, month=1, day=1)else:next_month = date.replace(month=date.month+1, day=1)# 往前推一天,即为当月的最后一天last_day = next_month - datetime.timedelta(days=1)return last_day# 示例用法
date = datetime.datetime(2022, 9, 15)
last_day = get_last_day_of_month(date)
print(last_day)  # 输出:2022-09-30
```在上面的代码中,我们首先获取下个月的第一天,然后往前推一天,即可得到当月的最后一天。


GPT4.0 API 的回答思路其实和 GPT3.5 是类似的,同样是先获取下个月的第一天再减 1 天,只不过换了种方式实现,这次是直接将月份加 1,天数设为第 1 天,另外还做了边界处理,如果当前是 12 月份,直接将年份加 1,避免了 bug 出现, 这份代码没什么毛病。只是看起来代码量多了点。

结论:无 bug,但代码量偏多

官方 GPT3.5 回答

下面是一个使用Python实现的函数,根据指定时间计算当月最后一天,并返回结果为datetime类型:from datetime import datetime, timedelta
import calendardef get_last_day_of_month(date):# 获取当前日期的年份和月份year = date.yearmonth = date.month# 获取当月的天数_, last_day = calendar.monthrange(year, month)# 构建最后一天的日期last_day_date = datetime(year, month, last_day)return last_day_date
你可以调用这个函数并传入一个datetime类型的日期作为参数,它将返回该日期所在月份的最后一天。例如:date = datetime(2023, 6, 15)
last_day = get_last_day_of_month(date)
print(last_day)  # 输出:2023-06-30 00:00:00
这将返回datetime(2023, 6, 30),表示2023年6月的最后一天。


官方 GPT3.5 用到了 calendar 模块下的一个函数 monthrange, 这个函数怎么用它并没有做过多解释,其实这个函数会根据月份返回两个值(元组),第一个值是这个月第一天是星期几,第二个值是这个月份的天数。 这个月份天数就很容易计算当月最后一天了。

结论:无 bug,但解释不够具体

官方 GPT4.0 回答

在Python中,可以使用calendar模块的monthrange()函数来获取一个月的最后一天。这个函数返回一个包含两个元素的元组,第一个元素是指定月份第一天的星期(0-6表示星期一到星期日),第二个元素是指定月份的天数。下面是一个函数的实现,该函数接受一个datetime对象作为参数,返回该月份的最后一天:from datetime import datetime
import calendardef get_last_day_of_month(date):_, last_day = calendar.monthrange(date.year, date.month)return datetime(date.year, date.month, last_day)# 测试
date = datetime.now()
print(get_last_day_of_month(date))
请注意,这个函数返回的日期是月份的最后一天,但是时间部分与传入的日期相同。如果你希望最后一天的时间部分是23:59:59,你可以修改函数如下:from datetime import datetime, time
import calendardef get_last_day_of_month(date):_, last_day = calendar.monthrange(date.year, date.month)return datetime.combine(datetime(date.year, date.month, last_day), time(23, 59, 59))# 测试
date = datetime.now()
print(get_last_day_of_month(date))


官方 4.0 的实现其实和 3.5 是一样的,但是,这个回答更贴心,比如这里给你介绍了 monthrange 函数的作用,如果我是第一次使用这个函数,我还要去查一下 API 是怎么使用的,这里它直接给你介绍了,另外,考虑到你可能还有其他需求,它也一并给了你解决方法,提前预测你的需求,牛得一批。

结论:无 bug,方案最佳,解释很详细

GitHub Copilot Chat 的回答

计算当月最后一天的方法与计算当月第一天类似,只需要将 day 参数设置为当月的最后一天即可。可以使用 calendar 模块来获取当月的最后一天。以下是一个实现该功能的 Python 函数:from datetime import datetime
import calendardef get_last_day_of_month(dt):"""Calculate the last day of the month for a given datetime.Args:dt (datetime): The datetime to calculate the last day of the month for.Returns:datetime: The datetime representing the last day of the month."""# Get the last day of the month for the given datetimelast_day = calendar.monthrange(dt.year, dt.month)[1]# Create a datetime object for the last day of the monthd = datetime(dt.year, dt.month, last_day)return d该函数接受一个 datetime 对象作为参数,然后使用 calendar.monthrange() 函数获取当月的最后一天。该函数返回一个元组,其中第二个元素表示当月的最后一天。然后,使用 datetime() 函数创建一个 datetime 对象,表示当月的最后一天,并返回该对象。使用该函数的示例如下:# Create a datetime object for January 15th, 2022
dt = datetime(2022, 1, 15)# Calculate the last day of the month for the given datetime
last_day = get_last_day_of_month(dt)# Print the result
print(last_day)  # Output: 2022-01-31 00:00:00在这个示例中,我们创建了一个 datetime 对象,表示 2022 年 1 月 15 日。然后,我们使用 get_last_day_of_month() 函数计算了该日期所在月份的最后一天,并将结果存储在 last_day 变量中。最后,我们打印了 last_day 变量的值,输出结果为 2022-01-31 00:00:00。

Copilot 的实现方案和官方的 GPT4 几乎是一样的,唯一不同之处是,Copilot 对代码的编写更规范,比如它给函数加上了文档注释,可读性会好些,考虑到 Copilot 是 GitHub 出品的,写代码更强大更规范在情理之中。

结论:无 bug,且代码有详细注释

最后总结一下,对程序员写代码来说,GitHub Copilot Chat  最优, 官方 GPT4 次之,GPT4 API 第三,  GPT3 排第4,GPT3.5 API 最弱。

考虑到官方 GPT3.5 有时也会胡言乱语,大部分情况下,GPT4 的 API 应该是要强于官方 GPT3 的。

另外,除了官方 GPT3.5 是免费之外,其它都需要收费,性价比最高的当属官方 GPT3.5,而性价比最低的是 GPT4.0 API。

f527312285657dab0975ee5007a7efb5.png

这里我只是让它写一个简单的函数作为测试,所以并非绝对权威,做这个实现的目的是粗概的了解下各个模型之间的表现和差距,希望对你有一定帮助。

91a0ddf21e41001e9601c88b3ebe1611.png

End

欢迎大家加入【ChatGPT&AI 变现圈】,零门槛掌握 AI 神器!我们带你从小白到高手,解锁智能问答、自动化创作、技术变现的无限可能。与我们共同成长,开启 AI 新征程!立即行动,未来已来!(详情请戳:知识星球:ChatGPT&AI 变现圈,正式上线!)

扫码加入:

af1b092636be7f38f0cbf91c581fadad.jpeg

好文和朋友一起看~

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

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

相关文章

刺激,GPT4/ChatGPT3.5/DALL-E同时玩

GPT4/ChatGPT3.5/DALL-E: AI创想师 ​ 这个画图效果着实可以 用来回答某某的问题GPT4确实比GPT3.5准 ​ 这是GPT4的回答 ​ 这是GPT3.5的回答,确实差一些 用了几天,发现可以一直(bai)用(piao)!!!

这套源码融合了chatgpt3.5、chatgpt4.0、midjourney、stable diffusion等技术,简直是炫酷至极

首先,让我们来看下面的效果演示图: 经过实际体验,这套chatgpt技术提供了令人惊艳的快速响应。整个系统可以在国内服务器上部署,只需配置好反向代理功能。 midjourney和stable diffusion在运行过程中表现得十分稳定。而且&#xff…

用OceanBase试了一下ChatGPT开源文档问答助手

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 随着去年年底 ChatGPT 的火爆出圈,到近日 OpenAI 发布了最新的 GPT-4 模型,大家都在思考、尝试如何利用 ChatGPT 的能力来构建自己的应用。 我们最近发现,在开…

淘宝天猫API详情接口调用分享

为了进行此平台API的调用,首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具,对接口进行测…

淘宝天猫API_获取商品详情原数据

item_get_app-获得淘宝app商品详情原数据 获取key和secret API返回结果 { "item": { "apiStack": [ { "name": "esi", "value": "{\"global\":{…

云从发布从容AI大模型;莫言用ChatGPT帮余华写颁奖词;罗普特遭立案调查丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 亚马逊网络服务将向印度的云基础设施投资127亿美元 5月18日,亚马逊宣布,亚马逊网络服务计划到2030年向印度的云基础设施投资10560亿印度卢比(127亿美元)&#xff…

03.SELF-INSTRUCT+Alpaca

文章目录 前言泛读储备知识提示学习提示工程Promt Engineering答案工程 背景介绍研究SELF-INSTRUCT的动机研究意义&贡献 精读Overview种子任务步骤1:定义指令数据步骤2:自动指令数据生成步骤2.1指令生成步骤2.2指令分类步骤2.3实例生成步骤2.4筛选和…

Windows应急响应 - 敏感目录文件痕迹排查,最近打开的文件 Recent,临时目录Temp,预读取文件Prefetch,程序执行情况Amcache.hve,Windows文件访问时间不更新原理

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 敏感文件痕迹排查 一、根据时间查找 Forfiles1、访问时间不更新问题 二、最近打开的文件 …

留学生如何利用好Chat GPT,助力留学生活?

目录 01.什么是Chat GPT ? 02.Chat GPT使用的问题 03.Chat GPT为留学生活提供了哪些便利? 04.海外院校对Chat GPT的态度 禁止使用 允许使用 05.如何正确使用呢? 07.使用技巧 08.使用的注意事项 寄语 01.什么是Chat GPT ?…

文笔润色-文本校对改写工具

文段改写软件 写作是一项对于很多人来说都需要频繁进行的活动,无论是工作中的商业写作还是学术写作,在完成优质内容的同时也需要付出大量的时间和精力进行语言润色和修改。然而,现在有了147ChatGPT改写润色软件,该软件可以全自动…

chatgpt赋能python:Python中怎么开方

Python中怎么开方 在Python中,开方是一种非常常见的数学操作。开方指的是求一个数的平方根或立方根等等。在Python中,我们可以使用自带的math库或使用第三方库numpy来进行开方操作。 使用math库进行开方操作 math库提供了sqrt()函数,可以用…

chatgpt赋能python:Python怎么计算开方

Python怎么计算开方 Python语言是一种高级程序语言,具有易学、易读、易写、易维护等特点。在数据分析、科学计算、人工智能等领域,Python被广泛应用。计算开方在数学计算中是一个常见的操作,Python也提供了多种求开方的方法。 常见的求开方…

chatgpt赋能python:Python怎样开方?完整解析Python开方方法

Python怎样开方?完整解析Python开方方法 Python作为一种流行的编程语言,用途十分广泛,可以用来进行数据分析、网络爬虫、Web开发等。Python还支持数学计算,包括开方。Python怎样开方?下面我们来一一解析Python开方的方…

chatgpt赋能python:开方在Python中的用法

开方在Python中的用法 开方是数学中常见的一种运算,用于求一个数的平方根。在Python中,开方运算可以通过使用math模块中的sqrt函数来实现。本文将介绍开方运算的概念、Python中的应用以及一些常见问题的解决方法。 开方的概念 开方是指,对…

陆奇-奇绩创坛-chatGPT新范式,新时代,新机会

奇绩创坛-新范式,新时代,新机会 01-新范式 新范式的新拐点 新范式的历史环境 新范式的社会影响 新范式的缔造者:Sam Altman和OpenAI 新范式的动力引擎 新范式的演化路径 02-新时代 新时代的宏观发展格局 新时代的中国机会 新时代的OpenAI生…

chatgpt赋能python:Python自动化脚本-让你的代码自动运行

Python自动化脚本-让你的代码自动运行 Python自动化脚本是一种强大的工具,可以在不断重复执行的任务上节省时间和精力。如果你是一名程序员或者数据分析师,你可能会经常处理一些需要不断重复的任务,如数据收集、清理、转换和加载。在这种情况…

chatgpt赋能python:用Python实现自动编程:提高生产力,降低成本

用Python实现自动编程:提高生产力,降低成本 Python作为一种易学易用的编程语言,已被广泛应用于各个领域。除了作为数据分析、机器学习等领域的主流语言,Python还可以用于实现自动编程。在本文中,我将介绍Python自动编…

解决必应搜索显示“cn.bing.com“重定向次数过多

使用新bing用到代理插件出现如下问题 使用科学上网全局代理就没有问题 解决方法重 置 Edge 在 Edge 的右上角 》 点击 “..." 》 设置 》 左边最下面的 ”重置设置“ 选项 》 点击 “重置” 按钮。

Microsoft旗下的Bing(必应)被封锁。可以试试加4的方法继续使用

Bing中国已经被关部门要求在中国内地暂停“搜索自动建议”功能30天。 下面演示下如何继续搜索 这是正常搜索状态下 。目前无法访问 只要在WWW后加上4.就能搜索到了

重磅综述!2023最热门“颠覆性”技术,用它发高质量文章游刃有余!

一、科研背景 生物医学是综合医学、生命科学和生物学的理论和方法而发展起来的前沿交叉学科,基本任务是运用生物学及工程技术手段研究和解决生命科学,特别是医学中的有关问题。机器学习技术能利用复杂的算法在大规模、异质性数据集中进行运行,在生物医学方面、人类…