如何利用 OpenAI 的 API 提供一系列命令行包装函数?

c2598d07c8ecc9feb0da9c4a6cffbee2.gif

未来几个月或者几年内,真正出现差异化的将是开发人员的生产力。对于积极地将人工智能融入到工作流程的工程师来说,这将是一个巨大的优势。

原文链接:https://kadekillary.work/posts/1000x-eng/

未经授权,禁止转载!

译者 | 弯月

责编 | 王子彧 

出品 | CSDN(ID:CSDNnews)

几千年来,人们一直在四处寻找 10 倍速工程师。不幸的是,由于通货膨胀的影响,如今 10 倍速工程师已经不够了,我们需要更大的收益、更大的胜利、更多的代码、更多的 PR、更少的 linting 等等……因此,在这篇文章中,我将介绍如何利用 OpenAI 的 API 提供一系列命令行包装函数,大幅提升工作效率。

首先,你需要一个 OpenAI API 密钥。为此,你需要注册 OpenAI 账号(https://openai.com/blog/openai-api)。

注意,我不使用 bash 或 Mac 的 zsh。我使用的是 Fish。但实际上使用哪种命令行工具并不重要,你也可以试试看在 bash 或 zsh。

下面,我们开始。

ee06d7dc7adbeb315d89bc228e1918b3.png

Hey GPT

大语言模型能够提高专业开发人员的工作效率,GitHub Copilot 已经证明了这个方向的可行性。这意味着开发人员不必担心未来的工作前景,且软件的生产与分发方式不会发生剧烈的变化。

然而,大语言模型的影响力不仅于此。大语言模型将成为专业程序员的工具,但过于关注狭隘的用途可能会导致我们错失未来推动更大变化的潜力。

我们需要做的第一件事是,获取我们可能遇到的每个问题的答案。

# model: gpt-4 is in private beta (have to get from waitlist)
# model: gpt-3.5-turbo (if you don't have access)function hey_gptset prompt \'(echo $argv | string join ' ')\'set gpt (curl https://api.openai.com/v1/chat/completions -s \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_KEY" \-d '{"model": "gpt-4","messages": [{"role": "user", "content": "'$prompt'"}],"temperature": 0.7,"stream": true}')for text in $gptif test $text = 'data: [DONE]'breakelse if string match -q --regex "role" $textcontinueelse if string match -q --regex "content" $textecho -n $text | string replace 'data: ' '' | jq -r -j '.choices[0].delta.content'elsecontinueendend
end

注意,如果你想复制上述代码的话,

需要安装 jq(https://ravilabio.info/notes/unix/jq.html)。

我不打算深入介绍模型参数的微调,更多相关内容,请点击这里(https://platform.openai.com/docs/api-reference/chat/create)。

此处,我给这个函数起了个别名:h,为的是简化输入:

f74fa72f8fb0dc8d714cc87e93f7fa75.png

819e65fbb37c76122c07aca6d40e17f7.png

0639366b663b36cb5e235ae3df274e94.png

很好,下面我们来尝试一点有用的功能。

f9411b65c20ba54cd7ee5f5a182f9a45.png

Data GPT

我发现自己最常使用的一种模式是:提示+数据。

function data_gpt -a prompt dataset prompt_input (echo "$prompt: $data" | string join ' ')curl https://api.openai.com/v1/chat/completions -s \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_API_KEY" \-d '{"model": "gpt-4","messages": [{"role": "user", "content": "'$prompt_input'"}],"temperature": 0.7}' | jq -r '.choices[0].message.content'
end

0af88b47393f572ae6ad1592467868ee.png

生成的数据集在这里:

https://gist.githubusercontent.com/kadekillary/8c31580c6a339e476ed5b1a92b5c2875/raw/9d98452b688fd1d9feeb37551850294cc8df6580/nba.csv

66fc538f5f156a5f12fd99dfb8e32275.png

0578e38aeb8c081f43fe0850b5236d5c.png

outside_default.png

outside_default.png

显然,这里的用例非常广泛。我还尝试了另一个版本,可以读取管道的输入,但转义过程很混乱,现在写入文件和 cat 似乎更整洁了。

到目前为止,这些示例与使用 ChatGPT 获得的体验非常相似。但也存在一些差异:

1.我发现通过命令行拿 GPT 做实验更方便;

2.在其他命令中使用这些功能的能力,例如可以结合 GitHub 的 CLI 或 Jira CLI;

3.最后,你还可以链接多个调用,与使用 LangChain 等工具的感觉一样。

outside_default.png

IMG GPT

最后这个例子是创建图像。

function img_gpt -a promptset create_img (curl https://api.openai.com/v1/images/generations -s \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_API_KEY" \-d '{"prompt": "'$prompt'","n": 1,"size": "1024x1024"}')echo $create_img | jqset url (echo $create_img | jq -r '.data[0].url')set rand_num (random 1 1000000)curl -s $url -o img-"$rand_num".png
end

outside_default.png

生成图像如下:

outside_default.png

openai edits api

还有一个有用的例子是代码编辑。基本可以实现目标:修改或编辑代码,提高运行时的复杂性,重写为单行指令,添加文档字符串等等。但是,我不打算使用 fish 为其生成包装器,而是使用自己编写的代码:

function openai_edits_apih 'can you generate a golang script that reads from stdin and sends that to the OpenAI Code Edits API endpoint - include only the code nothing else' | string replace '```' '' > openai_edits_api.goh 'can you generate the commands to build and run the golang script - only include the commands' | string replace '```' '' > openai_edits_api.shdata_gpt 'can you generate some tests for the following golang script' (cat openai_edits_api.go | string collect) | string replace '```' '' > openai_edits_api_test.godata_gpt 'can you generate a makefile for a golang project with the following files' (ls) | string replace '```' '' > Makefile
end

看上去有点混乱,但经过基本的整理,你至少可以完成90%的工作。

outside_default.png

总结

最后,我们需要考虑的一件事是,这只是一个开端。最近,OpenAI 宣布了插件,无疑是让 ChatGPT 如虎添翼。我认为,未来几个月或者几年内,真正出现差异化的将是开发人员的生产力。对于积极地将人工智能融入到工作流程的工程师来说,这将是一个巨大的优势。我认为,即将出现一种快速原型制作与模拟相结合的范例,帮助我们隔离和测试项目的各个组件。我不认为,程序员会被取代,更多的是提供有趣的新方法来尝试和解决更模糊领域更大的问题。

我希望通过本文,能让你对潜在的新工作流程和效率的提升有所了解。

outside_default.png

关于评论

评论1:只是代码写得快最多让你成为 5 倍速工程师。找几个写代码快的人很容易。

软件行业中的超高生产力是判断哪些问题需要解决。Richard Hipp 想的不是如何用 golang 订外卖,而是怎样更有效的存储数据。这并不是 ChatGPT 能解决的编程问题。如果 ChatGPT 不能完全解决这个问题,那就是很小的生产力提升, 因为最难的部分在于如何表述问题。

代码写得快,对于高效率工程师来说并不是需要解决的问题。ChatGPT 是个很棒的工具,几年之内我们也都会用它,它会改变一切。但它并不能成为经验丰富的工程师的对手。

评论2:同感,作为开发人员,我的工作是维护已有的系统,大部分工作内容都是决定哪些工作值得做、发掘或收集知识、找出修改哪些代码可以用最小的代价换取最大的成功。

许多时候还需要和客户或非技术人员讨论,判断现有功能能否满足他们的需求。

我一直在观察这次的 AI 热潮,而且一直不理解——我很怀疑,也许 GPT 可以分析成百上千个项目然后告诉我该做什么,甚至会让我把一些私有代码复制粘贴到我自己的项目中,但这并非我所愿。

也许它在编程的一小部分领域中效果不错,但同样,我并不觉得这与阅读文档并生成样板代码有什么区别。而且我对于它能改进代码也不感兴趣,毕竟让它改进代码的前提是你要提出正确的问题,而提出正确的问题才是工作中最难的部分,敲代码反而非常简单。

outside_default.png

 
☞最爱 ChatGPT,每天编码 300 行,月薪 8k-17k 占比骤减!揭晓中国开发者真实现状
☞CSDN蒋涛对话阿里云CTO周靖人:大模型风起云涌,阿里云将毫无保留地开放各项能力
☞商汤加入 ChatGPT 战局,发布“商量”语言大模型!

outside_default.png

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

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

相关文章

ChatGPT的一些好玩用途,有些你绝对想不到!

hello 大家好,今天我们来分享一篇有价值的ChatGPT如何去玩的教程 这里是一个快捷链接: 使用 这里是一个快捷链接: 使用 这里是一个快捷链接: 使用 这里是一个快捷链接: 使用 这里是一个快捷链接: 使用…

ChatGLM2-6B! 我跑通啦!本地部署+微调(windows系统)

ChatGLM2-6B! 我跑通啦!(windows系统) 1. 跑通了啥?2. 咋跑通的?2.1 ChatGLM2-6B本地部署2.2 ChatGLM2-6B本地微调2.3 小结 3. 打算做什么? 1. 跑通了啥? 记录一下此时此刻,2023年7…

详细Pygame制作贪吃蛇

贪吃蛇的玩法 用游戏把子上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴。…

用Pygame制作简单的贪吃蛇

✨✨✨ 感谢优秀的你打开了小白的文章 “希望在看文章的你今天又进步了一点点,离美好生活更近一步!”🌈 前言 Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac OS 等操作系统&#xff0…

用vb.net制作贪吃蛇游戏

贪吃蛇游戏相信很多朋友都听说或者玩过,特别是以前使用过诺基亚手机的朋友,这在当时就是诺基亚手机的专配游戏。 本篇文章讲述如何在vb.net中编写此游戏代码。 一种方法是可以使用控件数组,在用户界面上使用如多个图片框构成整个背景&#xf…

用python自带的tkinter做游戏(一)—— 贪吃蛇 篇

用python自带的tkinter做游戏(一)—— 贪吃蛇 篇 本人新手,刚自学python满半年,现分享下心得,希望各位老手能指点一二,也希望和我一样的新手能共勉,谢谢~ 大家都知道用python做游戏用的比较多的…

python笔记—>贪吃蛇游戏制作

1、安装需要的库pygame Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac OS 等操作系统,具有良好的跨平台性。Pygame 由 Pete Shinners 于 2000 年开发而成,是一款免费、开源的的软件包&#xff0…

手把手教你使用 Python 制作贪吃蛇游戏

贪吃蛇游戏是有史以来最受欢迎的街机游戏之一。在这个游戏中,玩家的主要目标是在不撞墙或不撞墙的情况下抓住最大数量的水果。在学习 Python 或 Pygame 时,可以将创建蛇游戏视为一项挑战。这是每个新手程序员都应该接受的最好的初学者友好项目之一。学习…

使用pygame制作贪吃蛇小游戏

使用pygame制作贪吃蛇小游戏 开发基本思路效果展示 具体实施步骤制作窗口,插入音频与图片绘制蛇与果实按键控制生成食物死亡设置其他设置 整体代码 开发基本思路 1、制作窗口,插入音频与图片 2、绘制蛇与果实 3、按键控制 4、生成食物 5、结束判断 效果…

应对新的挑战!ChatGPT将如何改变多域作战?

​公众号博主推送内容,未经许可,不得转载或者引用。 原文:Exploring the Possibilities of ChatGPT in Rugged Military AI Applications 《ChatGPT:利用最先进的技术支撑多域作战》 ChatGPT是一款基于GPT-3大型自然语言模型的…

Unity 接入巨量引擎今日头条广告投放SDK

巨量引擎 头条上报SDK接入 1.进入巨量引擎平台 ① 下载头条上报SDK SDK接入文档 我用的是5.3.0的官网上是3.3.12 SDK下载完了之后。 ②将unity工程导出android 工程。然后将下载的aar包导入UnityLibrary/libs文件夹下(如图文件夹) 并在改build.gradle文…

字节跳动 AI Lab 火山翻译在 WMT2022 非洲语向任务夺得桂冠

动手点关注 干货不迷路 1. 非洲语言的现状 非洲是世界上面积第二大的大洲,也是世界上第二个人口大洲,其大陆上存在 2146 种语言——约占世界语言总数的三分之一。广袤的面积、繁多的种族,还有宗教传播和殖民统治的影响,使其成为世…

Java开发经典面试题

重写与重载的区别重写与重载的区别_重写和重载_carrie呀carrie的博客-CSDN博客。。。。。。。。。。。https://blog.csdn.net/luoro/article/details/118307852?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167875749216800211587145%2522%252C%2522scm%2522%253…

2023前端面试时遇到的面试题

2023前端面试时遇到的面试题 1.数组有哪些方法 push、pop、unshift、shift、join、forEach、filter、map、find… 2.filter和some返回的分别是一个什么 filter返回的是一个数组,some返回的是一个布尔值 3.es6新增了哪些方法 let和cconst、模板字符串&#xff…

Promise面试题

Promise面试题,带你搞懂同步异步执行顺序 前置知识面试题面试题一面试题二面试题三面试题四 分析面试题一分析面试题二分析面试题三分析面试题四分析 前置知识 Promise中的then方法 then:指定用于得到成功value的成功回调和用于得到失败reason的失败回调…

移动版OpenAI,手机的杀手还是救星?

AI登陆手机,难度因人而异。 原本小编还以为「2023年是属于元宇宙的一年」,实在没想到以ChatGPT为代表的AI技术能在这么短的时间内抢走元宇宙的风头,成为2023年的技术关键词。从OpenAI到搜索引擎、从绘图工具到游戏公司,几乎所有「…

领导讲话云山雾罩像糊弄鬼,这些职场潜规则你知道吗

上一篇:入职银行科技部半年,我已经丧失跳槽的能力了! 混迹职场时间久了,就会发现领导职务越高,说话越有水平,也有高度,可是有时让你听的却是云山雾罩,不知道该如何应对。 聪明的人能…

代码的艺术(一)

目录 代码整洁的必要性 为什么要有代码 为什么要写得整洁 整洁的艺术 混乱的代价 整洁的定义 规整端正,符合规范 简洁精炼,便于阅读 什么是整洁的代码 怎样写出整洁的代码 不断改进 不要糊弄 具体做法 有意义的命名 使用函数 注释 勤加…

〖程序员的自我修养 - 优质简历篇①〗- 知己知彼,面试官是如何分析一份简历的

人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考能力与认知能力。 说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利&#xff1a…

chatgpt赋能python:Python抠图教程:用代码实现高效抠图

Python 抠图教程:用代码实现高效抠图 什么是抠图? 在设计、美术、广告等领域中,经常需要把一张图片中的某个物体或人物单独提取出来,以便于进行后续的处理、叠加、合成等操作。这个过程就叫做抠图。 传统的抠图方式需要用到PS、…