- 帮助大家学习使用OpenAI的各类API开发应用 ,学习多个实站项目。 推荐他人订阅可获取扣除平台费用后的35%收益,文末有名片!
- 说明:该文属于 ChatGPT实践指南白宝书 专栏,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社区,早鸟价订阅模式除外。
- 福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读权限之外,还有机会加入 星荐官共赢计划 ,详情请戳我 。
- 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
- 荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计划” 发起人。
- 现象级专栏《白宝书系列》作者,文章知识点浅显易懂且不失深度;TFS-CLUB社区创立者,旨在以“赋能 共赢”推动共建技术人成长共同体。
- 🏆 白宝书系列
- 🏅 Python全栈白宝书
- 🏅 ChatGPT实践指南白宝书
- 🏅 产品思维训练白宝书
- 🏅 全域运营实战白宝书
- 🏅 大前端全栈架构白宝书
文章目录
- ⭐ ChatGPT 最主要的对话功能
- ⭐ ChatGPT 对话功能的演示
- 🌟 搞怪案例 ① - 询问如何做 "红烧肉"
- 🌟 演示案例 ② - 文本翻译[翻译源码]
- 🌟 演示案例 ③ - 代码问题
- 🌟 演示案例 ④ - 修复Bug
- 🌟 演示案例 ⑤ - 编写毕设大纲
- ⭐ AI 绘图功能
ChatGPT 的热度这么高,被说得这么好,这么强大,那么这一节我们就来深度体验一把,看看ChatGPT到底能做些什么!
⭐ ChatGPT 最主要的对话功能
相信小伙伴们也都知道,ChatGPT 最主要的功能其实就是对话功能,也是目前人们最津津乐道的功能。
这里我们来和传统的搜索引擎做一下对比,当我们使用搜索引擎的时候,往往会给我们返回的事一堆网页,需要我们自己去过滤筛选。大多数情况下,这些网页反馈的信息质量都比较差。更别提某些竞价排名的广告了(说的是谁大家都清楚),很难能够一次性的找到自己想要的答案,通常情况下都需要访问很多网页才能够找到自己想要的正确答案。
而 ChatGPT 就不一样了,它所做的事情就是不需要用户去做选择,它知道你问的是什么,更重要的是,它知道你想要一个什么样的答案,它帮你把选择的过程做好了,最终给我们返回的就是我们想要的那个问题的、满意的答案。
⭐ ChatGPT 对话功能的演示
接下来我们就尝试着演示几个小案例,比如说 “询问如何做红烧肉”,“编写一段代码,演示算法之类”,“给出一段代码需求让ChatGPT来实现”,“编写一个前端页面”,以及演示 “AI绘图功能等等” ~ 让我们拭目以待吧~
🌟 搞怪案例 ① - 询问如何做 “红烧肉”
访问 “https://openai.com/blog/chatgpt” ,点击 "Try ChatGPT"
即可跳转到 “ChatGPT” 的首页。需要在能够访问谷歌的情况下去访问~
从下图中我们可以看出,ChatGPT 返回的不是网页,而是以打字的形式,一排一排的向我们打字输出,向我们展示问题的结果。
除了直接给出提问问题的结果,ChatGPT 还能够根据语境,进行上下文理解、情感分析和语义分析,给出比较符合人们常理认知的、合理的拟人化建议。比如说我们再次向 ChatGPT 提问 “我感觉这道菜味道比较淡怎么办?”
从下图可以看出,ChatGPT 知道我说的这道菜指的就是 "红烧肉" ,这种 "自作聪明" 地方式 就像真的跟我在对话,这种能够分析出上下文语义,语境的功能真的很强大,至少搜索引擎做不到这一点~
如果各位小伙伴想要学习做一些家常菜,不妨试着与 ChatGPT 聊聊,相信它一定也不会让你失望~ 吼吼吼~
🌟 演示案例 ② - 文本翻译[翻译源码]
在日常的工作中,不管是开源的 github 也好,还是源码的阅读也好,程序员的工作都离不开翻译,下面我们试试一个翻译的案例。(很简单)
向 ChatGPT 发送下面这一段源码,让其解释该源码的作用和详细参数的使用:"time" 包的 "sleep" 方法
def time(): # real signature unknown; restored from __doc__"""time() -> floating point numberReturn the current time in seconds since the Epoch.Fractions of a second may be present if the system clock provides them."""return 0.0
下图是 ChatGPT 给出的答案:
这段源码定义了一个名为
time
的函数,它返回当前时间自 Unix 纪元以来的秒数,精确到浮点数。如果系统时钟提供了秒以下的精度,则可能存在秒的小数部分。在函数文档字符串中,有以下说明:
time() -> floating point numberReturn the current time in seconds since the Epoch. Fractions of a second may be present if the system clock provides them.
这段文档字符串用于说明该函数的功能和参数,其中:
time()
: 函数名称->
: 指示函数返回值类型floating point number
: 返回值类型,即浮点数Return the current time in seconds since the Epoch.
: 返回当前时间自 Unix 纪元以来的秒数Fractions of a second may be present if the system clock provides them.
: 如果系统时钟提供了秒以下的精度,则可以返回秒的小数部分。由于这个函数的签名是未知的,因此注释中的
# real signature unknown; restored from __doc__
表示该函数的签名未知,但是该函数的实现被从函数的文档字符串中恢复出来。最后,该函数的实现只是简单地返回了浮点数 0.0,因此需要根据实际需求进行修改,以便正确地返回当前时间。
🌟 演示案例 ③ - 代码问题
相信很多小伙伴在面试的时候经常会遇到一些算法题,那么来看一看 ChatGPT 是如何实现一个排序算法的案例的吧。
以下是 Python 中的快速排序算法实现:
def quick_sort(arr):if len(arr) <= 1:return arrelse:pivot = arr[0]less = [x for x in arr[1:] if x <= pivot]greater = [x for x in arr[1:] if x > pivot]return quick_sort(less) + [pivot] + quick_sort(greater)# 测试 arr = [3, 2, 5, 1, 8, 4] sorted_arr = quick_sort(arr) print(sorted_arr) # [1, 2, 3, 4, 5, 8]
快速排序的基本思路是通过递归地将待排序的数组分成两个子数组,其中一个子数组的元素都比另一个子数组的元素小,然后再对这两个子数组分别进行快速排序。具体实现时,我们选择一个基准值(pivot),然后遍历整个数组将小于等于基准值的元素放在一个数组 less 中,大于基准值的元素放在一个数组 greater 中。然后,我们递归地对 less 和 greater 两个数组进行快速排序,最后将排序后的 less、pivot 和 greater 连接起来。
快速排序的时间复杂度为 O(nlogn),是一种常用的排序算法。
🌟 演示案例 ④ - 修复Bug
作为程序员,谁也不敢保证自己写的代码 100% 不出 Bug,既然 ChatGPT 能写代码,那么它能不能将出了 Bug 的代码进行修复呢?让我们来看一看吧。
以一个存在闭包问题的代码示例,如下:
def create_multipliers():return [lambda x : i * x for i in range(5)]for multiplier in create_multipliers():print multiplier(2)
ChatGPT 对话结果如下:
这段代码存在一个常见的 Python 闭包陷阱,即在 lambda 表达式中使用循环变量,但实际上 lambda 表达式在函数执行时才会被调用,此时循环变量已被改变,导致结果不符合预期。
为了修复这个问题,我们需要将 lambda 表达式中的循环变量进行捕获,可以通过将循环变量作为默认参数来实现:
def create_multipliers():return [lambda x, i=i : i * x for i in range(5)]for multiplier in create_multipliers():print(multiplier(2))
在这个修复后的实现中,我们将循环变量
i
作为 lambda 表达式的默认参数,这样每次创建 lambda 表达式时,都会保存一个i
的副本,在 lambda 表达式执行时使用该副本,而不是使用循环变量本身。这样就可以得到正确的结果了。输出结果:
0 2 4 6 8
🌟 演示案例 ⑤ - 编写毕设大纲
相信很多即将毕业的小伙伴非常喜欢这个案例,让 ChatGPT 编写一个基于opencv的如何识别运动目标检测与跟踪的毕设大纲。
恭喜即将毕业!以下是基于 OpenCV 的运动目标检测与跟踪毕设大纲:
一、研究背景和意义
- 介绍运动目标检测与跟踪的背景和意义
- 分析目前常见的运动目标检测与跟踪算法的优缺点
- 阐述本文所提出的算法的创新点和应用前景
二、研究现状和相关技术
- 介绍运动目标检测与跟踪的相关概念和技术
- 分析目前主流的运动目标检测与跟踪算法和技术
- 对比分析各种方法的优缺点
三、系统方案设计
- 系统架构设计
- 系统模块设计
- 各模块之间的交互流程设计
四、运动目标检测算法设计
- 采用背景差分法进行前景检测
- 对前景图像进行形态学处理
- 对形态学处理后的图像进行连通区域分析
- 采用目标检测算法对区域进行筛选
五、运动目标跟踪算法设计
- 采用卡尔曼滤波算法对目标进行预测
- 采用匈牙利算法进行目标匹配
- 采用多目标跟踪算法对多个目标进行跟踪
六、算法实现与性能分析
- 选取合适的实验数据集
- 实现所提出的运动目标检测与跟踪算法
- 对算法进行实验测试和性能分析
七、总结与展望
- 对本文所提出的算法进行总结和评价
- 分析算法的优缺点和不足之处
- 展望运动目标检测与跟踪在未来的发展趋势和应用前景
以上是一个基本的大纲,具体实现和分析可以根据需要进行调整和补充。祝您毕设顺利!
⭐ AI 绘图功能
除了可以和 ChatGPT 对话以外,我们还可以让它为我们创作图片,AI创作的访问地址为: https://labs.openai.com/。下面我们就让它为我们创作一副图片吧, 输入我们的问题,点击生成按钮,等待几秒钟。
比如生成 “大熊猫吃竹子” 的图片:
不过,openai官方介绍,图片生成产品还处于beta测试版,相信经过一-段时间的学习与打磨,它的功能也会更加强悍。除了 ChatGPT 的AI绘图功能之外,目前市面上还有一个非常火的 AI绘图产品,就是 Midjourney - https://www.midjourney.com/ 。
感兴趣的小伙伴,可以自行测试一下哦,目前官网是可以直达的,但是Midjourney目前架设在 Discord 频道上,最终运行去 discord 上面的,需要能够访问谷歌的情况下才可以正常使用,请自行搜索。
登录到 Discord 以后,就是使用的开始。
其实我们使用 ChatGPT 最主要的还是使用它的对话功能,它既能够提供我们一些普通的搜索类的问题,也能够提供我们专业的程序开发的相关问题。
在各个方向上,只要能够发挥想象力都可以通过对话功能来帮助我们做提示。当然了,ChatGPT 给出的提示也并不是 100% 完美的,还需要我们自己去润色一下,将其更加的符合我们的预期。
除此之外, ChatGPT 胡编乱造的功能,也是非常厉害的。不信你看下面: