AI Commits: 使用AI编写git提交消息的CLI

释放双眼,带上耳机,听听看~!
本文介绍了Nultope/aicommits,一个使用AI编写git提交消息的CLI工具,以及其实现原理。

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

AI Commits: 使用AI编写git提交消息的CLI Nutlope  aicommits

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

什么是 Nultope/aicommits?

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

AI Commits: 使用AI编写git提交消息的CLI

它是如何工作的?

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

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

// src/cli.ts

const 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.ts

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

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

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

// src/utils/openai.ts

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

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

AI Commits: 使用AI编写git提交消息的CLI

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

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

图像风格迁移技术实现及过拟合问题解决

2023-12-13 11:55:14

AI教程

使用YOLOv5实现工业缺陷检测项目详解

2023-12-13 12:10:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索