「指定したリポジトリの情報をChatGPTに読み込ませたい」
「ChatGPTにコードの解析を行わせたい」
このような場合には、AskTheCodeがオススメです。
この記事では、ChatGPTプラグインであるAskTheCodeについて解説しています。
本記事の内容
- AskTheCodeとは?
- AskTheCodeのインストール
- AskTheCodeの動作確認
- AskTheCodeの利用制限
それでは、上記に沿って解説していきます。
AskTheCodeとは?
AskTheCodeとは、GitHubのリポジトリやイシューに関連する情報を取得・分析するためのプラグインです。
以下は、AskTheCodeの主な機能となります。
- リポジトリの構造の取得 (GetRepositoryStructure)
- リポジトリの内容の取得 (GetRepositoryContent)
- イシューとそのコメントの取得 (GetRepositoryIssue)
- イシューへのコメントの投稿 (PostRepositoryIssueComment)
コードの解析に加えて、イシューの分析まで行ってくれます。
ただし、AskTheCodeはコードの解析自体は行いません。
コードの解析を行うのは、ChatGPTになります。
AskTheCodeが行うのは、情報の取得です。
AskTheCodeが取得した情報をChatGPTが解析します。
簡単に言うと、AskTheCodeはGitHub情報を取得するAPIのようなモノです。
イシューの分析に関しても同様となります。
イシューの分析自体は、ChatGPTが行います。
ChatGPTのプラグインでコード解析と言えば、AskYourCodeがあります。
AskYourCodeは、コード解析自体をAskYourCodeのサーバー側で実行しています。
AskTheCodeとAskYourCodeでは、コード解析が実行される場所(AI)が異なるのです。
何気に大きな違いがあります。
とにかく、ここでは違いがあるということを意識しましょう。
以上、AskTheCodeについて説明しました。
次は、AskTheCodeのインストールを説明します。
AskTheCodeのインストール
プラグイン利用のための設定は、次の記事を参考にしてください。
プラグインが利用可能であれば、プラグイン検索が可能になっています。
「AskTheCode」と入力すれば、次のように候補が出てきます。

「Install」ボタンをクリック。
そうすると、次のような画面が表示されます。

おそらく、イシューへの投稿まで行うにはGitHunのアカウントの方が良いのでしょう。
投稿は不要であるため、メールアドレスで登録します。

「Sign in to AskTheCode」というタイトルでメールが届きます。
そのメールに記載されているコードを入力して、「Verify code」ボタンをクリック。

「Authorize」ボタンをクリックして、認証しましょう。
チャット起動時、次のようにAskTheCodeを選択できればインストール成功です。

以上、AskTheCodeのインストールを説明しました。
次は、AskTheCodeの動作確認を説明します。
AskTheCodeの動作確認
AskTheCodeを有効にした状態でチャットを開きます。

まずは、リポジトリの構造を取得してもらいましょう。
次の記事で説明した「Rerender A Video」のリポジトリを対象にします。
ChatGPTには、リポジトリのURLを渡すだけでOK。

https://github.com/williamyang1991/Rerender_A_Video.git
しばらくすると、次のように表示されます。

上記のメッセージは、ChatGPTが作成しています。
ChatGPTとAskTheCodeのやり取りは、「Used AskTheCode」から確認できます。

これを見ると、AskTheCodeがリポジトリの情報しか返答していないのがわかります。
では、個々のファイルを解析してみましょう。
ChatGPTに次のように入力します。

install.pyを解析してください。
返答は、以下。

これらの解析結果もChatGPTが行った結果が、表示されています。
AskTheCodeの返答は、指定されたファイルのコードだけです。

どこにも解析内容はありません。
また、イシューに関しても同じようになります。
対象となるイシューのページの情報をコメントを取得して、ChatGPTに渡すだけです。
以上、AskTheCodeの動作確認を説明しました。
最後に、AskTheCodeの利用制限を説明します。
AskTheCodeの利用制限
AskTheCodeは、本来は有償プラグインです。

ただし、無料でも1週間に20回までは利用することが可能です。
個人的には、現状の使い方であれば無料枠で十分かもしれません。
無料枠がなくなったら、Link Readerなどで各ファイルを読み込みことが可能です。
その場合には、プラグインを指定してプロンプトを入力します。

Link Readerで以下をURLを読み込んでください。
コードは表示しなくてOK。
https://raw.githubusercontent.com/williamyang1991/Rerender_A_Video/main/webUI.py
このようなが対応できることを考えると、AskTheCodeの最大の特徴は以下となります。
リポジトリの構造の取得 (GetRepositoryStructure)
結局、AskTheCodeはコードをすべて読み込むことはしません。
あくまで、こちらが指定したファイルを読み込むだけです。
リポジトリ全体を横断的に解析するなら、AskYourCodeを利用することになります。
以上、AskTheCodeの利用制限を説明しました。