如何让AI 帮你生成 git 提交信息

在协同开发的项目中,我们肯定避免不了使用git提交代码,所以经常会看到了一些描述不清的提交信息。当遇到种情况时,我们也不必为此责怪开发人员,因为我们确实很难记住你在 git 提交时刚刚做了什么。

GitHub Nutlope / aicommits

一个使用 AI 帮您编写 git 提交消息的 CLI

什么是 Nultope/aicommits?

Aicommits 是一个 CLI(脚手架),它可以使用 AI 为你编写 git 提交消息。

未知的推文媒体内容

它是如何工作的?

本篇文章本意是着重介绍代码的 AI 部分,但一打开 GitHub,我惊奇地看到了 TABS、jk的使用。这就很有意思,因为 CLI 工具cleye这个工具也是用到了TABS、jk,它给我留下了深刻的印象。我以前也搭建过一些 CLI,而这个 cleye 是在命令行上构建 aicommits 交互的首选工具。这是它很优秀的地方。

如果您想查看 CLI 实现,可以快速阅读src/cli.ts。

// src/cli.tsconst request = https.request({port: 443,hostname: 'api.openai.com',path: '/v1/completions',method: 'POST',headers: {'Content-Type': 'application/json','Content-Length': postContent.length,Authorization: `Bearer ${apiKey}`,},...

到目前为止,我还没有用 OpenAI 构建任何东西,但上面的示例很好的说明了人们应该去如何配置它。

现在查看代码src/utils/openai.ts,我们可以看到正在调用 OpenAI 并使用/v1/completions路径。根据 README的说明,这不是 ChatGPT 补全,而是常规 GTP-3 文本补全。

在 REST 调用之后,我们会先执行响应清理和错误检查器。这是不能绕过的步骤的,因为 OpenAI 经常会遇见停机和服务器负载。

// src/utils/openai.tsif (response.statusCode === 500) {errorMessage += '; 查看 API 状态: https://status.openai.com';
}

最后,看一下createCompletion函数,这才是真正实现功能的地方。

我在下面留下了关于每一行在做什么的解释

// src/utils/openai.tsconst completion = await createCompletion(apiKey, {model, // text-davinci-003 - 用于更长的输出和一致的指令prompt, // nutlope提供的promptTemplatetemperature: 0.7, // 数字越大,输出越随机top_p: 1, // 类似温度但结果不同frequency_penalty: 0, // 降低模型重复同一行的可能性presence_penalty: 0, // 增加模型谈论新话题的可能性max_tokens: 200, // 这将要花你多少钱?stream: false, // 部分消息发送关闭n: completions, // 为每个输入消息生成多少个聊天完成选项
});

还有很多我想深入挖掘,但我把剩下的留给你们看。我建议在本地安装 aicommits 进行试用。前提是你已经注册了 OpenAI 已经添加了你的令牌。

aicommits 在命令行上的演示

本文正在参加「金石计划」

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

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

相关文章

编译原理:代替LR的MP:2.遇到的问题

用指针加速 MP是multi-pass,多遍分析法,它是从“先乘除后加减”中得来的灵感。在实践中,发现C语言优先级有15级,如果将源代码处理15遍,每一遍都从头开始找,势必很慢。所以,有了用指针加速的想法…

Attention机制到底是什么?

AI算法之一 的Attention机制到底是什么,你知道吗? 这里写目录标题 1. Attention 的本质2. Attention的3大优点3. Attention的原理3.Attention的类型3.1计算区域3.2 所用信息3.3 结构层次 4. 模型方面5. 相似度计算 1. Attention 的本质 Attention(注意…

构建数字化校园,开启创新教育模式

在当今信息化时代,教育的转型升级已成为推动社会进步与发展的关键力量。构建数字化校园,不仅是对传统教育模式的革新,更是开启一场以技术赋能教育、创新驱动成长的教育革命。这一进程旨在通过深度融合信息技术与教育教学实践,重塑…

hive on spark 记录

环境&#xff1a; hadoop 2.7.2 spark-without-hadoop 2.4.6 hive 2.3.4 hive-site.xml <property><name>hive.execution.engine</name><value>spark</value> </property> <property><name>spark.yarn.jars</name>&l…

【代码随想录——动态规划——第三周】

1.目标和 这里设置背包的最大长度为2100即可&#xff0c;因为题目中有说数组之和小于1000.但考虑到我们需要实行jnums[i]所以保守起见我们设置的数应该稍大于2000即可&#xff0c;这里我们设置为2100。 1.1 我的解法&#xff08;粗糙了&#xff09; func findTargetSumWays(n…

BetterZip 5软件安装包下载

BetterZip是一款功能强大的Mac解/压缩软件&#xff0c;可以满足用户对文件压缩、解压、加密和保护等方面的需求。以下是关于BetterZip软件的主要功能、特点和使用方法的详细介绍&#xff0c;以及对其用户友好度、稳定性和安全性的评价。 安 装 包 获 取 地 址: BetterZip 5-安…

R语言 | 绘制带P值的差异柱状图

原文链接&#xff1a;R语言 | 绘制带P值的差异柱状图 本期教程 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡是在社群同学&#xff0c;可免费获得自2021年11月份至今全部教程&…

Vue55-TodoList案例-本地存储

一、TodoList案例-本地存储 此时&#xff0c;修改对象里面的属性&#xff0c;watch监视不到&#xff01; 需要深度监视&#xff0c;就不能用简写形式&#xff01; 二、jeecg-boot中的本地存储 jeecg-boot中&#xff0c;浏览器的本地存储&#xff0c;存储的是token&#xff01;…

Parallels Desktop 19 for mac破解版安装激活使用指南

Parallels Desktop 19 for Mac 乃是一款适配于 Mac 的虚拟化软件。它能让您在 Mac 计算机上同时运行多个操作系统。您可借此创建虚拟机&#xff0c;并于其中装设不同的操作系统&#xff0c;如 Windows、Linux 或 macOS。使用 Parallels Desktop 19 mac 版时&#xff0c;您可在 …

git 如何撤销已经 push 的 merge

今天在合并代码时, 发现自己失误把另外一个分支 B 的代码合并到了自己分支 C, 于是想到要撤销这次 merge 一般地, 如果我们想要撤销某次 commit 可以 git revert <commit-id>. 然而, 对于 merge 类型的 commit 不能直接 git revert <commit-id> 这里举个例子: 我…

最新编程语言排行榜,C++ 和 Go 成为新王?!

大家好&#xff0c; 我是不爱敲代码吖,2024 年 6 月最新的 TIOBE 编程语言排行榜已经发布&#xff0c;如图&#xff1a; 注意&#xff0c;TIOBE 编程语言排行榜是基于 全球 工程师的数量、课程、热门网站、第三方供应商综合计算出来的&#xff0c;只是一个编程语言流行度和趋势…

MBTI:探索你的性格类型

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

网络知识:这些特殊的IP地址,具体的用途你都知道吗

目录 一、0.0.0.0 二、255.255.255.255 限制广播地址 三、127.0.0.1 本机地址 四、224.0.0.1 组播地址 五、169.254.x.x 六、10.x.x.x、172.16。x。x&#xff5e;172.31。x。x、192.168。x。x 私有地址 对于计算机网络来说&#xff0c;IP地址是非常重要的概念&#xff0c…

胡说八道(24.6.10)——数电与STM32

至此&#xff0c;信号与系统的简单笔记已经全部都写完了。其实&#xff0c;信号与系统的知识远远不只这些&#xff0c;总之&#xff0c;我的老师没讲完。其真实的原因是不在考试大纲里面。今天&#xff0c;看到一个短视频——学习的意义。其中有句话说&#xff0c;“因为考试不…

IEEE802.11a中的同步

目录 1.前言2.IEEE802.11a中的同步3.分组检测4.分组检测常用算法 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 最近有其他很多事情要做&#xff0c;接收机这部分本身内容也更难&#xff0c;涉及很多理论知识&#xff0c;本来之前对于随机信号和假设检验就没怎么学习透…

请详细列出获取商品详情接口的实现过程,包括从请求处理、数据接收、结果返回等各个环节的详细步骤。

当实现一个获取商品详情接口时&#xff0c;通常可以遵循以下详细步骤来确保接口的稳定性、可维护性和性能。 1. 需求分析 明确接口功能&#xff1a;确定API接口需要返回哪些商品详情信息&#xff0c;如商品名称、价格、库存、描述、图片链接等。接口调用者&#xff1a;确定哪些…

100V宽电压H62410A恒压芯片 24V降压5V 24V降压12V电源IC

H62410A是一款宽电压100V 内置MOS管的降压恒压芯片&#xff0c;适用于24V降压至5V或12V的应用场景。其内置100V耐压MOS和宽压8V-90V的输入范围&#xff0c;使得它能够在多种电压条件下稳定工作。同时&#xff0c;支持输出电压可调至3.3V&#xff0c;为不同设备提供了灵活的电源…

centos7.9部署k8s的几种方式

文章目录 一、常见的k8s部署方式1、使用kubeadm工具部署2、基于二进制文件的部署方式3、云服务提供商的托管 Kubernetes 服务4、使用容器镜像部署或自动化部署工具 二、使用kubeadm工具部署1、硬件准备&#xff08;虚拟主机&#xff09;2、环境准备2.1、所有机器关闭防火墙2.2、…

Vue49-props属性

一、当同一个组件标签被使用多次 因为data属性写的是函数形式&#xff01; 二、需求&#xff1a;老王也想用<Student>组件&#xff0c;但是需要动态把老王想要的值传进来。 2-1、使用props属性接收参数 使用props属性&#xff0c;接收的这三个参数&#xff0c;是被保存在…

软件概要设计书(Word原件项目直接套用)

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…