admin 管理员组

文章数量: 887021

  • 帮助大家学习使用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/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 number
    
    Return 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 number

Return 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 arr
    else:
        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/。下面我们就让它为我们创作一副图片吧, 输入我们的问题,点击生成按钮,等待几秒钟。

比如生成 “大熊猫吃竹子” 的图片:


不过,openai官方介绍,图片生成产品还处于beta测试版,相信经过一-段时间的学习与打磨,它的功能也会更加强悍。除了 ChatGPT 的AI绘图功能之外,目前市面上还有一个非常火的 AI绘图产品,就是 Midjourney - https://www.midjourney/ 。

感兴趣的小伙伴,可以自行测试一下哦,目前官网是可以直达的,但是Midjourney目前架设在 Discord 频道上,最终运行去 discord 上面的,需要能够访问谷歌的情况下才可以正常使用,请自行搜索。登录到 Discord 以后,就是使用的开始。


其实我们使用 ChatGPT 最主要的还是使用它的对话功能,它既能够提供我们一些普通的搜索类的问题,也能够提供我们专业的程序开发的相关问题。

在各个方向上,只要能够发挥想象力都可以通过对话功能来帮助我们做提示。当然了,ChatGPT 给出的提示也并不是 100% 完美的,还需要我们自己去润色一下,将其更加的符合我们的预期。

除此之外, ChatGPT 胡编乱造的功能,也是非常厉害的。不信你看下面:

本文标签: 深度 基础 指南 ChatGpt