git 커밋 메시지 생성은 개발자를 위한 고전적인 GenAI 애플리케이션으로 빠르게 자리 잡았습니다.
이를 돕기 위해 GenAIScript 스크립트를 작성하겠습니다.
스크립트는 일반 node.js 자동화 스크립트 역할을 하며 runPrompt를 사용합니다
LLM에 전화를 걸어 사용자에게 생성된 텍스트를 확인하도록 요청합니다.
스크립트는 @inquirer/prompts에서 필요한 기능을 가져오는 것으로 시작됩니다.
import { select, input, confirm } from "@inquirer/prompts"
이러한 기능은 사용자와 상호 작용하여 작업 확인이나 데이터 입력을 요청하는 데 사용됩니다.
다음으로 Git 저장소에 단계적 변경 사항이 있는지 확인합니다.
let { stdout } = await host.exec("git", ["diff", "--cached"])
변경사항이 스테이징되지 않은 경우 사용자에게 모든 변경사항을 스테이징할 것인지 묻습니다. 사용자가 확인하면 모든 변경 사항이 준비됩니다. 그렇지 않으면 구제금융을 받게 됩니다.
const stage = await confirm({ message: "No staged changes. Stage all changes?", default: true, }) if (stage) { await host.exec("git", ["add", "."]) stdout = (await host.exec("git", ["diff", "--cached"])).stdout } if (!stdout) cancel("no staged changes")
단계적 변경을 사용하여 초기 커밋 메시지를 생성합니다.
message = ( await runPrompt( (_) => { _.def("GIT_DIFF", stdout, { maxTokens: 20000 }) _.$`GIT_DIFF is a diff of all staged changes, coming from the command: \`\`\` git diff --cached \`\`\` Please generate a concise, one-line commit message for these changes. - do NOT add quotes` }, { cache: false, temperature: 0.8 } ) ).text
위의 프롬프트 구성은 메시지가 간결해야 함을 나타냅니다.
"git diff --cached" 출력과 관련되며 따옴표를 포함해서는 안 됩니다.
사용자는 생성된 메시지를 처리하는 방법을 선택합니다.
choice = await select({ message, choices: [ { name: "commit", value: "commit", description: "accept message and commit" }, ... ], })
메시지를 편집하거나 다시 생성할 수 있는 옵션이 제공됩니다. 사용자가 메시지 편집을 선택하면 새 메시지를 입력하도록 요청합니다.
if (choice === "edit") { message = await input({ message: "Edit commit message", required: true, }) choice = "commit" }
사용자가 메시지 커밋을 선택하면 변경 사항이 커밋됩니다.
if (choice === "commit" && message) { console.log((await host.exec("git", ["commit", "-m", message])).stdout) }
CLI를 사용하여 이 스크립트를 실행할 수 있습니다.
genaiscript run gcm
@inquirer/prompts 패키지를 사용하므로 먼저 이 패키지를 설치해야 합니다.
npm install --save-dev @inquirer/prompts
npx를 사용하신다면
npx -p @inquirer/prompts genaiscript -p genaiscript -- genaiscript run gcm
이 명령은 스크립트를 실행하고 AI를 사용하여 Git 메시지를 생성하고 커밋하는 과정을 안내하여 커밋을 더욱 유익하고 일관되게 만듭니다.
이 명령을 gcm.sh 파일이나 package.json의 패키지 스크립트 섹션에 래핑할 수 있습니다.
{ "devDependencies": { "@inquirer/prompts": "...", "genaiscript": "..." }, "scripts": { "gcm": "genaiscript run gcm" } }
그런 다음 다음을 사용하여 스크립트를 실행할 수 있습니다.
npm run gcm
이 스크립트는 Karpathy의 커밋 메시지 생성기에서 영감을 받았습니다.
위 내용은 GenAI Git 커밋의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!