OpenAIのAPIでコミットログから日報を自動生成する

category
date
Jan 29, 2023
slug
generate-daily-report-from-commit-log
status
Published
summary
その日ののコミットメッセージ(英語)から日報の文章をOpenAIさんに自動生成してもらうことにした。
type
Post
日報を書く必要がある会社があり、英語のコミットメッセージから日報の文章をOpenAIさんに自動生成してもらうことにした。
コミットメッセージを綺麗に書くようになりそう。

コミットメッセージ

feat: Create a sidebar
fix: Transpile fullcalendar to fix CSS issues
feat: Create mock-up of TODO function
feat: Create a mockup of the memo function
docs: Update README.md

出来上がった文章

今日はサイドバーを作成し、TODO機能とメモ機能のモックアップを作成しました。
また、CSSの問題を修正するためにFullcalendarをトランスパイルしました。
最後に、Readme.mdを追加しました。

ソースコード

const octokit = new Octokit({
  auth: 'private token'
});

octokit
  .request('GET /repos/wktq/4mate/commits', {
    owner: 'github',
    repo: 'docs',
    per_page: 10,
		since: '業務開始時間',
		until: '業務終了時間',
  })
  .then(({ data }) => {
    const messages = data.map((commit) => commit.commit.message);

    const requestBody = {
      model: 'text-davinci-003',
      prompt: `以下のGitのコミットメッセージから、できる限り繰り返しなく日報の文章を作成してください。${messages.join(
        '\n'
      )}`,
      temperature: 0,
      max_tokens: 500
    };

    const requestOptions = {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        Authorization: `Bearer ${YOUR_SECRET}`
      },
      body: JSON.stringify(requestBody)
    };

    const url = 'https://api.openai.com/v1/completions';

    fetch(url, requestOptions)
      .then((response) => response.json())
      .then((result) => {
        const editor = editorRef.current;
        if (editor) {
          insertToEditor(result.choices[0].text, messages);
        }
      })
      .catch((error) => console.log('error', data));
  });
 

おまけ

こんなんもあるらしい。

© Titch 2022 - 2024