CHATGPT代码评论集成
#javascript #react #codereview #chatgpt

在我们深入研究应用程序开发之前,让我们探讨ChatGpt代码评论的集成。您可能会发现自己在这里和那里进行小修复程序,而不是仅依靠Chatgpt编写所有代码。结果,可以在协作开发过程之外创建一些提交。

代码评论在捕获错误,提高可维护性和促进代码质量方面起着至关重要的作用。如果您去过那里,您会知道手动评论可能是耗时的,容易受到监督。因此,对于正在进行的项目,此工作流程也可能很有趣。

设置舞台:

要开始,我们需要两个关键成分:node.js脚本和一个OpenAI API键。 Node.js脚本将用作我们的代码库和chatgpt API之间的桥梁。它将处理为每次提交的chatgpt发送代码片段并检索反馈。您可以see the final result here

Write a Node.js script that connects to ChatGPT on precommit and reviews the code.

chatgpt的生成脚本构造了一个包含要查看的代码段的消息,并将其发送到chatgpt API。 ChatGpt的响应包含有关代码的反馈,提供了有价值的见解以进行改进。

该脚本处理调用chatgpt进行代码评论的逻辑。它采用分阶段代码,将其发送到chatgpt并检索生成的反馈。

const API_KEY = process.env.API_KEY;
const CHATGPT_API_URL = 'https://api.openai.com/v1/chat/completions';

async function sendMessage(message) {
  const response = await fetch(CHATGPT_API_URL, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${API_KEY}`
    },
    body: JSON.stringify({
      messages: [{ role: 'system', content: 'You: ' + message }],
      model: 'gpt-3.5-turbo'
    }),
  });

  const data = await response.json();
  console.log(data)
  if (data && data.choices && data.choices.length > 0) {
    return data.choices[0].message.content;
  }

  throw new Error('Unable to get response from ChatGPT');
}

运行脚本:

如果不存在,则在项目目录中创建一个脚本文件夹。将代码评论脚本移动到脚本文件夹中。在package.json file.add中添加“脚本”部分。例如,您可以将其命名为“代码审查”。

"scripts": {
  "code-review": "node scripts/code-review.js"
},

通过执行命令NPM运行代码审查来运行代码评论脚本,您将从CHAT GPT获得响应。

npm run code-review

整合了预加入钩子:

现在,我们的node.js脚本已经准备好并且可以使用,我们可以使用预签名挂钩将其集成到我们的git工作流程中。预加压挂钩使我们能够在提交代码之前自动执行应执行的任务。通过将我们的脚本添加为预先承诺的钩子,我们可以确保每项提交都会由Chatgpt自动审核。

您可以使用像Husky这样的工具来简化此步骤。遵循文档中的安装步骤之后,您将拥有一个位于 husky/pre-commit 的预命令bash脚本,该脚本将在任何提交之前启动脚本。

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run pre-commit

选择正确的模型:

在使用chatgpt审查代码时,您有一些选择合适的语言模型的选择。这是针对代码相关任务的两个推荐模型:

gpt-3.5-turbo:这是Openai可用的最先进和功能最强大的模型。它为各种任务(包括代码审查)提供了出色的性能。它已经接受了各种互联网文本的培训,可以有效地理解和生成代码片段。

davinci:尽管不是专门为与代码相关的任务设计的,但Davinci模型也能够在一定程度上理解和审查代码。这是一个高度通用的模型,可以在不同域上处理各种任务。这些模型都可以用于代码审核目的。

提供自己对Chatgpt的反馈:

在本系列中,我们通过Web界面与Chatgpt进行交互。一旦您对代码进行了更改,最好将有关当前状态的Changpt通知Chatgpt。否则,它可能会在以后的互动中感到困惑。

Hey! This is how the script looks after I made some modifications.

Hey! I got this code review. What do you think?

结论:

将ChatGpt通过预加入挂钩纳入您的代码评论工作流程是提高代码库质量和可维护性的强大方法。