GitHub Issues を ChatGPT のようにするツールを作った話
みなさん ChatGPT は利用されていますでしょうか? 便利ですよね。
ChatGPT の機能を API 経由で利用できる OpenAI API も公開されたので、それを使って何か作りたいなあと思っていたのですが、Ubie さんの下記の記事に触発され、
こういった感じのツールを GitHub Actions で実現したら面白いかも!と思いつき、勢いで作ったので GitHub のマーケットプレイスで公開しました。Ubie さんのものに比べたら随分、簡易的なものではありますが..。
利用イメージはこんな感じです。
GitHub Actions を利用できる環境であれば、どなたでもご自身のリポジトリにセットアップして利用することができます(OpenAI API のキーは自分で用意する必要があります)。
GitHub Issues を利用することの利点
作った後に思ったことなので後付なのですがw、GitHub の Issue の仕組みに乗っかることで色々な利点があるかなと。
1. セットアップが簡単
GitHub Actions を利用できる環境であれば、リポジトリにワークフローの yaml ファイルをコミットするだけで簡単にセットアップできます。
基本的には既存のリポジトリに導入するのではなく、この Action を利用する為の private / internal リポジトリを新しく作るのがよいと思います(public リポジトリにしてしまうと不特定多数の方に利用されてしまうので注意!)。チームで共有で利用するリポジトリを作成してもよいですし、個人用のリポジトリを作成してもよいと思います。OpenAI API のキーは、リポジトリの secrets に登録するとよいでしょう。
利用者に対するリポジトリのアクセス制限を適切に設定することで、自前でアクセス制御の仕組みを開発・用意する必要がありません。
2. API キーひとつで複数人が利用できる
WEB サービスとして提供されている ChatGPT は、利用者 各人がアカウント登録し、各人のアカウントで利用する必要がありますが、このツール(GitHub Actions)は API キーがひとつあれば、複数人で利用することが出来ます。API の料金の請求も一つのアカウントに纏められるので、支払いの管理も楽ですね。
また、このツールは OpenAI API を利用する形式なので、WEB サービスとして提供されている ChatGPT と違い、入力した内容は AI の学習等には利用されません(本稿を書いている2023年4月14日時点。参考: Terms of use)。そもそも機密情報や個人情報等の入力は控えるべきですが、この点は ChatGPT に比べ少しは安心して利用できるかなと思います。
3. 同じ話題について複数人で AI と会話ができる
ただの GitHub の Issue に変わりはないので、誰かが作った Issue にコメントすることで複数人で AI と会話が出来ます。皆でプロンプトを試行錯誤するような時に便利!?
4. AI との会話を URL で共有できる
有用な AI との会話は GitHub の Issue として残せますし、それを共有するには普通に Issue の URL を共有すればよいです。
5. よく利用するプロンプトをテンプレート化できる
GitHub 標準の機能で Issue のテンプレートを用意できる(参考: Configuring issue templates for your repository)ので、よく利用するプロンプトを Issue のテンプレートとして用意しておくことが出来ます。
補足
- このツールはあくまで GitHub Issues を AI との会話のインタフェースとして利用しているだけであって、そのリポジトリのコードの内容の読み取り・把握した上での回答をする訳ではありません。いずれはそのようなものが作れると便利だとは思いますが。
- 所属組織として動作を保証するものではありません。
今後の展望
この Action に実装するか別の Action として実装するか決めてませんが、OpenAI API を利用した、任意の画像を生成する機能が作れたらよいなあと思っています。現時点ではまだ精度のよい画像は作れないようですが。
この Action の現在の機能についても、もしご意見、ご要望あれば @hkusu_ に頂けると幸いです。
Discussion