在协同开发的项目中,咱们必定避免不了运用git提交代码,所以经常会看到了一些描述不清的提交信息。当遇到种状况时,咱们也不必为此责怪开发人员,由于咱们的确很难记住你在 git 提交时刚刚做了什么。
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.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 现已添加了你的令牌。
本文正在参加「金石方案」