实时

您的位置:首页>资讯 >

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

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


(资料图片)

原文链 接: 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。

下面,我们开始。

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"elsecontinueendendend

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

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

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

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

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

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

生成的数据集在这里:

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

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

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

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

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

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

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\".pngend

生成图像如下:

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 "```" "" >Makefileend

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

总结

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

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

关于评论

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

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

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

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

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

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

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

关键词:

推荐阅读
未来几个月或者几年内,真正出现差异化的将是开发人员的生产力。对于积极地将人工智能融入到工作流程的工程

2023-04-13 02:12:11

大家好,小乐来为大家解答以上的问题。新闻的结构特点,新闻的结构这个很多人还不知道,现在让我们一起来看看

2023-04-12 22:29:31

新京报讯4月12日晚间,融创中国控股有限公司(简称“融创中国”)发布公告称,复牌指引已满足,将在4月13日

2023-04-12 21:13:42

说明:【】为音效,()为备注标题可自拟使用台本前请先b站私信我,我只对单独一篇进行授权,不可私自用于

2023-04-12 19:51:10

1、它深刻揭露了旧中国的黑暗,控诉了统治阶级对劳动者的剥削和压迫,表达了作者对劳动人民的深切同情,向

2023-04-12 18:46:06

碳排放量和碳足迹(CFP)对于人们来说已经不是新鲜的词语了,但大家是否有真的感知?曾经看到过这样的数据

2023-04-12 18:13:10

1、舂,读音[chōng],声母ch,韵母ong,声调1。2、释义:把东西放在石臼或乳钵里捣去皮壳或捣碎:舂米。3

2023-04-12 17:10:01

宁夏“村BA”决赛开赛

2023-04-12 16:12:09

一年之计在于春,不误农时忙春耕。近日,在湖北省郧西县店子镇马鹿坪村高标准农田建设现场,机声隆隆,车辆穿梭,施工人员正抢抓时间进行平整

2023-04-12 15:27:23

美国银行业的危机又把巴菲特推向了台前,经过了这几年的市场轮动之后,“巴菲特老矣”的论调就再也没有出现过。实际上,从2021年下半年开始,

2023-04-12 14:37:23

湖北日报客户端讯(通讯员刘晓雪)4月12日上午,胜利街社区联合艾格眼科、号尔口腔连锁机构、东大肛肠专科医院、淑和堂中医馆门诊部在辖区开展

2023-04-12 13:23:09

东光县气象台发布大风蓝色预警【Ⅳ级 一般】

2023-04-12 12:26:46

4月11日,美好医疗(301363)融资买入116 52万元,融资偿还666 99万元,融资净卖出550 47万元,融资余额1152 74万元,近20个交易日中有11个交

2023-04-12 11:29:58

本期债券注册额度为人民币60亿元,发行总额不超过人民币60亿元(含60亿元),期限不超过3年(含3年),无担保。

2023-04-12 10:39:05

1、a,b是两个向量:a=(a1,a2)b=(b1,b2);a平行b:a1/b1=a2/b2或a1b1=a2b2或a=λ

2023-04-12 10:11:13

1、中考300分小同学别灰心。300分,这只是个基础。这说明你还有可以继续努力,有一定的上升空间。但是你也不能忽略。要正视自己在学习方面存在

2023-04-12 08:22:30

4月11日,在湖南省长沙市望城区乌山贡茶基地,工作人员通过直播推销茶叶。眼下正是春茶采摘、制作的忙碌时节,位于望城区乌山街道维梓村的乌山

2023-04-12 07:03:43

小的小礼物还是非常好选择,最近听说给一个女生买礼物的时候,她们会非常喜欢小动物的,有的女孩儿非常喜欢动物,有的喜欢动漫周

2023-04-12 06:23:54

4月11日航母板块较上一交易日下跌1 06%,国瑞科技领跌。当日上证指数报收于3313 57,下跌0 05%。深证成指报收于11877 15,上涨0 04%。航母板块

2023-04-12 05:10:36