颠覆传统编程:用ChatGPT十倍提升生产力

我们即将见证一个新的时代!这是最好的时代,也是最坏的时代!

需求背景

背景:

平时会编写博客,并且会把这个博客上传到github上,然后自己买一个域名挂到github上。

我平时编写的博客会有一些图片来辅助说明的,写完之后如果我把图片和文字全部都上传到博客网站,后期图片很多时就会导致网站加载特别慢

所以想把图片存储在一个公共的对象存储平台(腾讯云的cos服务),这样只要上传一个公共访问链接即可,极大的减少存储空间。

需求:

每次写完博客都要手动上传图片,然后把得到的链接在复制到本地的markdown文件中,如果一篇文章的图片特别多,这简直就是灾难!所以我想

  1. 给一个文件路径,自动把markdown文件中本地的图片上传到腾讯云的cos平台,并获取公共链接

  2. 把本地的文章的链接自动替换为公共链接

调研和设计

腾讯云cos服务是提供这样的接口的,但是接口需要鉴权,所以我把上诉的需求拆解为三部分

  • 生成鉴权sign_key
  • 调用腾讯云的接口上传图片,并获取链接
  • 输入markdown文件,找到本地图片链接,上传并替换为公共链接

错误示范

我阅读腾讯云的cos文档,需要提供签名,一共需要八个步骤才能生成


我把这八个过程每一个过程都复制给chatgpt,让他帮我写


总结

后面太多我就不演示了,我直接说总结:

  • 在这个过程中给我的代码基本都是可以运行的,我只需要微调一下就可以用,报错直接扔给他也基本都可以解决
  • 但是整个过程还是需要我理解每一步,并且把这八个步骤进行汇总和调整
  • 比Google搜索要好用一点,但是还没有那么好用,总感觉差点意思

正确示范

生成上面的签名之后,我就让他去写上传接口


仔细阅读一下上面的第二张图片,我要求**【把其中的url的uri替换为文件名,然后它给我代码并解释这是做什么,它说这是上传到【腾讯云的cos服务】,要知道我在这之前是完全没有提到过【腾讯云】、【cos服务】等字眼的,也就是它只依赖我提供的hostcoder-xieshijie-img-1253784930.cos.ap-beijing.myqcloud.com】**这个域名,就判断出我这是腾讯云的cos服务,这就有点厉害了,更厉害的是,当然要求他写一个测试用例:

它直接把我之前费力八个步骤生成的签名直接生成了!这太离谱了!

  • 我以为:chatgpt不知道腾讯云cos签名的生成过程,然后我阅读文档,把八个步骤重组并依次喂给chatgpt,让他帮我写
  • 实际上:chatgpt不仅知道腾讯云cos,在我要求他上传时,就自动把官方推荐的生成签名的方式给我生成了!

这意味着以后大部分网络开源的内容,你甚至不用阅读啃文档,你只要知道一个概念,剩下的就交给他就可以!

后面的上传和替换markdown的内容我就不截图,后面对于chatgpt就非常简单了,最后附上完整的代码(95%是chatgpt写的)

# -*- coding=utf-8
import hmac
import hashlib
import os
import re
import requests# 定义 SecretKey 和 KeyTime
# 替换为自己的key和id
secret_key = "xieshijie_key"
key_time = "1680947045;2980950645"
secret_id = "xieshijie_id"
http_method = 'put'def generate_url_param_list():return ""def generate_header_list():return ""def generate_sign_key_val(uri_pathname):# 生成 SignKeysign_key = hmac.new(secret_key.encode(),key_time.encode(),hashlib.sha1).hexdigest()# 生成 HttpStringhttp_string = f"{http_method.lower()}\n{uri_pathname}\n"http_string += "\n"http_string += "\n"# 生成 StringToSignstring_to_sign = f"sha1\n{key_time}\n{hashlib.sha1(http_string.encode()).hexdigest()}\n"# 生成 Signaturesignature = hmac.new(sign_key.encode(),string_to_sign.encode(),hashlib.sha1).hexdigest()# 生成签名sign_key_val = f"q-sign-algorithm=sha1" \f"&q-ak={secret_id}" \f"&q-sign-time={key_time}" \f"&q-key-time={key_time}" \f"&q-header-list={generate_header_list()}" \f"&q-url-param-list={generate_url_param_list()}" \f"&q-signature={signature}"return sign_key_valdef generate_file_name(file_path):# 获取文件名return file_path.split('/')[-1]def put_request(file_path, sign_key):# 设置请求头headers = {'host': 'coder-xieshijie-img-1253784930.cos.ap-beijing.myqcloud.com','Authorization': sign_key}# 设置请求体with open(file_path, 'rb') as f:data = f.read()uri = generate_file_name(file_path)# 发送 PUT 请求url = f'https://coder-xieshijie-img-1253784930.cos.ap-beijing.myqcloud.com/{uri}'response = requests.put(url, headers=headers, data=data)# 判断响应状态码并返回结果if response.status_code == 200:print('本地图片上传成功')return urlelse:print('本地图片上传失败')return 'fail'def replace_local_image_links(file_path):"""读取Markdown文件,提取其中的本地图片链接并替换为基于图片名称计算的新链接。Args:file_path (str): Markdown文件路径。"""# 判断文件是否是Markdown格式if not file_path.endswith('.md'):print('该文件不是Markdown格式。')return# 读取Markdown文件内容with open(file_path, 'r', encoding='utf-8') as f:content = f.read()# 匹配所有本地图片链接  匹配形式为:![...](...)regex = r"!\[\S+\]\((\S+)\)"matches = re.findall(regex, content)# 替换本地图片链接为新链接for match in matches:# 判断链接是否是本地路径if not match.startswith('http'):# 获取图片名称和路径if os.path.isabs(match):image_name = os.path.basename(match)image_path = matchelse:image_name = os.path.basename(match)image_path = os.path.abspath(os.path.join(os.path.dirname(file_path), match))sign_key = generate_sign_key_val('/' + image_name)# 上传图片到COS并计算新链接new_link = put_request(image_path, sign_key)# 替换Markdown文件中的链接content = content.replace(match, new_link)# 将替换后的Markdown内容写回文件with open(file_path, 'w', encoding='utf-8') as f:f.write(content)print('本地图片链接替换完成。')if __name__ == '__main__':# 测试替换replace_local_image_links("/Users/xieshijie/Desktop/test.md")

我用了差不多半天的时间完成这件事,大部分时间是阅读腾讯云的cos服务文档和分步骤生成签名的过程,如果正确使用实际我觉得可以缩短到1个小时!


升级plus

整个过程让我对ChatGPT的潜力有了更深的认识。起初,我花费了半天的时间,主要用于阅读腾讯云COS服务的文档以及分步骤生成签名的过程。然而,正确利用ChatGPT实际上可以将这个过程缩短到一个小时,甚至更少。

ChatGPT不仅能高效地生成代码,还能在一些复杂的任务中表现出强大的理解和推理能力。这次体验让我更加坚定地认为,ChatGPT正在以一种前所未有的方式颠覆传统的编程和开发流程,真正实现了十倍的生产力提升。

于是,我果断充了一个GPT-4

image-20240623134517420


更多惊喜

我们的公众号还将定期分享:

  • 最新互联网资讯:让你时刻掌握行业动态。

  • AI前沿新闻:紧跟技术潮流,不断提升自我。

  • 技术分享与职业发展:助你在职业生涯中走得更远、更稳。

  • 程序员生活趣事:让你在忙碌的工作之余找到共鸣与乐趣。

关注回复【1024】惊喜等你来拿!

敬请关注【程序员世杰】

coder_world_618

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

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

相关文章

Docker网络介绍

网络是虚拟化技术中最复杂的部分,也是Docker应用中的一个重要环节。 Docker中的网络主要解决容器与容器、容器与外部网络、外部网络与容器之间的互相通信的问题。 这些复杂情况的存在要求Docker有一个强大的网络功能去保障其网络的稳健性。因此,Docker…

【Linux】了解冯诺伊曼体系结构

文章目录 冯诺依曼体系结构概念冯诺依曼体系结构的推导过程理解冯诺依曼体系 冯诺依曼体系结构概念 冯诺依曼结构是现代计算机发展所遵循的基本结构形式之一,其特点是“程序存储,共享数据,顺序执行”。冯诺依曼结构消除了原始计算机体系中&a…

PCDViewer-5.0.0——开启漫游的世界

在点云相关的研发和生产中,按Pose进行场景漫游是一个十分有用的功能,它可以快速地检查SLAM建图质量或点云编辑效果。用 ros rviz进行点云漫游是一项不错的选择,但它存在的一定的开发门槛,而且需要安装额外的资源。 PCDViewer-5.0.…

物理隔离状态下,如何保障数据单向导入的安全性?

为了保护企业的核心数据,像一些涉密行业会通过物理隔离方式,将网络隔离成内网和外网,比如军工、党政、生物医药、金融等行业,网络隔离后会存在外网数据单向导入内网,内网数据单向导出外网等交互需求。在实施数据单向导…

Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!

代码仓库 会同步代码到 GitHub https://github.com/turbo-duck/flink-demo 当前章节 继续上一节的内容:https://blog.csdn.net/w776341482/article/details/139875037 上一节中,我们需要使用 nc 或者 telnet 等工具来模拟 Socket 流。这节我们写一个 …

36.Http协议的设计与解析

Http协议比Redis协议复杂的多,如果程序员自己去实现,工作量大。 Netty已经把Http协议的编解码器实现好了,只需要简单的配置就可以使用。 做一个http的服务端需要HttpServerCodec。 看它继承的父类: 结合了两个类: HttpRequestDecoder(入站处理器extends Channelnbound…

【网络安全常用术语解读 :什么是0day、1day、nday漏洞】

脆弱性攻击的时间窗被称作脆弱性窗口。通常情况下,一个安全漏洞的时间越久,攻击者就会有更多的机会去攻击它。 2. 0day 漏洞 0天漏洞,也被称作"零日漏洞",是指尚未由供应商公布的缺陷,表示攻击者已知晓该缺…

FlowUs2024重磅革新预告:RAG技术赋能『问问AI』,笔记变现新纪元等你开启!

🎉 在FlowUs的广阔天地间,知识的边界被无限拓展,引领着一场场创新与收获的庆典!🚀 随着一年间不断的精进与革新,FlowUs与众多用户并肩前行,在追求极致体验的道路上迈出坚实步伐。步入2024年&am…

WordPress项目教程:自动采集并发布,让你轻松实现网站内容更新

随着互联网的发展,越来越多的人开始关注自己的个人网站,通过网站展示自己的才华、分享知识、推广产品等。然而,个人网站的运营并非易事,尤其是内容更新方面。为了解决这个问题,今天我们将为大家推荐一款WordPress插件主…

minio直接通过地址访问无需服务器转发

背景 做网站有些图片、视频、js等资源,没有什么变化,想在网站上直接使用,前端拿到地址可直接访问获得,而不是通过后台转一道再获得,折腾了半天访问不到,从网上找资料挨个试,也没完全解决&#…

云计算期末综合测试题

云计算综合测试题 单选题填空题判断题简答题 单选题 这里选择题,直接以填空题展示,并给出解析 Bigtable是(Google)开发的分布式存储系统 解析:分布式结构化数据表Bigtable是Google基于GFS和Chubby开发的分布式存储系统…

君子小人的格局、境界

子曰:君子怀德,小人怀土;君子怀刑,小人怀惠。 直译:君子怀念道德,小人怀念乡土;君子关心法度,小人关心恩惠。 这里的君子与小人只是体现格局、境界的不同; 君子怀的是德…

DVWA 靶场 SQL Injection (Blind) 通关解析

前言 DVWA代表Damn Vulnerable Web Application,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

sklearn之各类朴素贝叶斯原理

sklearn之贝叶斯原理 前言1 高斯朴素贝叶斯1.1 对连续变量的处理1.2 高斯朴素贝叶斯算法原理 2 多项式朴素贝叶斯2.1 二项分布和多项分布2.2 详细原理2.3 如何判断是否符合多项式贝叶斯 3 伯努利朴素贝叶斯4 类别贝叶斯4 补充朴素贝叶斯4.1 核心原理4.2 算法流程 前言 如果想看…

天马学航——智慧教务系统(移动端)开发日志四

天马学航——智慧教务系统(移动端)开发日志四 日志摘要:优化了教师端界面的UI,更新了教师端添加课程,提交成绩等功能,修复了一些已知的BUG 1、教师添加课程设计 教师在此界面添加课程,并将数据提交后端进行审核 界…

WAAP的特性、功能以及优势

随着互联网技术的快速发展,Web应用程序和API已经成为企业日常运营中不可或缺的部分。然而,与此同时,网络攻击手段也愈发复杂和隐蔽,给企业的数据安全带来了严峻的挑战。为了应对这一挑战,WAAP(WebApplicati…

fastapi+vue3+primeflex前后端分离开发项目第一个程序

安装axios axios是用来请求后端接口的。 https://www.axios-http.cn/docs/intro pnpm 是一个前端的包管理工具,当我们需要给前端项目添加新的依赖的时候,就可以使用pnpm install 命令进行安装。 pnpm install axios安装 primeflex primeflex是一个cs…

知乎客户端跨平台-Hybrid-调试实战

在开发上述功能的过程中,发现了 flipper 这个工具 flipper 提供了一个桌面客户端,然后这个桌面客户端提供了一个和手机客户端通信的机制,免去了 socket 服务的开销,依靠这个通信机制,我们可以把上述的功能复制过来 基…

AI时代的音乐革命:创作更简单,灵魂在哪里?

#AI在创造还是毁掉音乐# 我是李涛,一名音乐创作者,最近一直在思考一个问题:AI到底是在创造音乐,还是在毁掉音乐? 几个月前,我第一次接触到AI音乐创作工具。它让我震惊,只需要输入几个关键词&a…

Apollo9.0 PNC源码学习之Planning模块(一)—— 规划概览

0 前言 规划本质就是搜索问题,数学角度来看就是寻找函数最优解 规划模块复杂的就是相关的逻辑处理和过程计算 对于规划的三维问题,目前解决方案:降维+迭代 将SLT问题分解为ST和SL二维优化问题:在一个维度优化之后,再另一个维度再进行优化,最后整合成三维的轨迹。 虽然降…