ChatGPTとPythonを使ってVS Codeでコーディングアシストを自動化する

ChatGPTとPythonの力を活用して、VS Code用のカスタマイズされたコーディングアシスタントを構築しましょう。ソリューションを自動化し、質問に答え、IDE内で生産性を高めましょう。

2025年2月22日

party-gif

ChatGPTとPythonの力を解き放ち、独自のコーディングアシスタントを構築しましょう。このブログ記事では、質問に答え、開発環境内で洞察を提供する多目的なツールを作成する方法をご紹介します。生産性と問題解決能力を向上させることができます。

ChatGPTとPythonでコーディングアシスタントを自作する方法

ChatGPT APIとPythonを使ってあなた自身のコーディングアシスタントを構築するには、以下の手順に従ってください:

  1. APIキーを環境変数として設定します。
  2. OpenAIライブラリをインストールし、コードの先頭でインポートします。
  3. メッセージの履歴を表すブランクのリストを作成します。各メッセージは、「role」と「content」の2つの属性を持つ辞書です。
  4. チャット履歴にシステムメッセージを追加し、アシスタントに静かな指示を与えます。
  5. ユーザーからの新しいメッセージをinput()で収集するループを設定します。
  6. ユーザーの入力を含む新しいメッセージ辞書を作成し、チャット履歴に追加します。
  7. モデル(「GPT-3.5-turbo」)とチャット履歴を渡して、OpenAI APIのチャット完了エンドポイントに呼び出しを行います。
  8. API応答からアシスタントの返信の内容を抽出し、変数に格納します。
  9. アシスタントの返信を表示し、先頭と末尾に数行の空行を追加します。
  10. アシスタントの返信を含む新しいメッセージ辞書を作成し、チャット履歴に追加します。
  11. プロセスを繰り返し、ユーザーがコーディングアシスタントと対話し続けられるようにします。

このセットアップにより、VS Codeの中で直接コードに関する回答やインサイトを得られる、シンプルながら強力なコーディングアシスタントを実行できます。

環境設定と必要なライブラリのインポート

環境を設定し、必要なライブラリをインポートするには、以下の手順に従ってください:

  1. OpenAI APIキーを環境変数として設定します。これにより、APIキーがコードに露出せずに安全に保管されます。

  2. pipを使ってopenaiライブラリをインストールします:

    pip install openai
    
  3. コードの先頭でopenaiライブラリをインポートします:

    import openai
    

これらの手順により、ChatGPT APIとの連携に必要な環境設定とライブラリのインポートが完了しました。

チャット履歴の初期化

チャット履歴を初期化するために、まず`messages`という名称のブランクのリストを作成します。このリストにユーザーとAIアシスタントの会話履歴を格納します。

チャット履歴の各メッセージは、「role」と「content」の2つのキーを持つ辞書で表されます。「role」キーはメッセージの発信元を示し、「system」または「user」のいずれかになります。「content」キーにはメッセージの本文が格納されます。

まず、`messages`リストに「system」メッセージを追加します。このメッセージは、AIアシスタントに対する静かな指示として機能します。

```python
messages = []
system_message = {
    "role": "system",
    "content": "You are a helpful coding assistant."
}
messages.append(system_message)

チャット履歴の初期化が完了したので、ユーザーがAIアシスタントと対話できるメインループに進むことができます。

ユーザー入力の収集とメッセージの構築

ユーザー入力を収集し、メッセージを構築するには、以下の手順に従います:

  1. チャット履歴を格納するブランクのリストを作成します。
  2. チャット履歴の最初のメッセージとして、「system」メッセージを構築します。このメッセージはアシスタントに対する静かな指示を提供します。
  3. 無限ループを設定します。
  4. ループ内で、input()関数を使ってユーザーから新しいメッセージを収集します。
  5. ユーザーの入力を含む新しいメッセージ辞書を構築し、「role」を「user」に設定します。
  6. 新しいユーザーメッセージをチャット履歴リストに追加します。

このプロセスにより、会話の文脈が構築されます。この文脈は、OpenAI APIに呼び出しを行う際に渡されます。

ChatGPT APIとの対話と応答の取得

ChatGPT APIと対話し、レスポンスを取得するには、以下の手順に従います:

  1. OpenAI APIキーを環境変数として設定します。
  2. OpenAIライブラリをインストールし、コードの先頭でインポートします。
  3. 「role」と「content」キーを持つ辞書としてメッセージを表すブランクのリストを作成します。
  4. チャット履歴にシステムメッセージを追加し、アシスタントに静かな指示を与えます。
  5. ユーザー入力を継続的に収集し、「user」メッセージとしてチャット履歴に追加するループを設定します。
  6. チャット履歴を入力として、ChatGPT完了エンドポイントにAPIコールを行います。
  7. API応答からアシスタントの返信の内容を抽出し、変数に格納します。
  8. アシスタントの返信を表示し、可読性を高めるために先頭と末尾に空行を追加します。
  9. 返信の内容を含む「assistant」メッセージを構築し、チャット履歴に追加します。
  10. プロセスを繰り返し、ユーザーがコーディングアシスタントと対話し続けられるようにします。

アシスタントの応答の表示とチャット履歴の更新

アシスタントの返信を表示し、チャット履歴を更新するには、以下の手順に従います:

1. APIコールから取得したアシスタントの返信の内容を取り出します:
   ```python
   reply = response.choices[0].message.content
  1. アシスタントの返信を適切な書式で表示します:

    print("\n\n" + reply + "\n\n")
    
  2. アシスタントの返信を表す新しいメッセージ辞書を構築します:

    assistant_message = {
        "role": "assistant",
        "content": reply
    }
    
  3. アシスタントのメッセージをチャット履歴に追加します:

    messages.append(assistant_message)
    

これにより、アシスタントの返信が明確で読みやすい形式で表示され、新しいメッセージがチャット履歴に更新されます。更新されたチャット履歴は、後続のAPIコールで文脈情報として使用されます。

まとめ

このチュートリアルでは、ChatGPT APIとPythonを使ってパワフルなコーディングアシスタントを構築する方法を学びました。最終的な製品は、VS Codeの中で実行できるスクリプトで、書いているコードに関する質問に答えたり、インサイトを提供したりする便利なアシスタントとなります。

このアシスタントを構築するための主な手順は以下の通りです:

  1. APIキーを環境変数として設定する。
  2. OpenAIライブラリをインストールし、Pythonスクリプトにインポートする。
  3. システムメッセージから始まるメッセージ履歴のリストを作成する。
  4. ユーザー入力を継続的に収集し、チャット履歴に追加するループを実装する。
  5. チャット履歴を入力として、ChatGPT完了エンドポイントにAPIコールを行う。
  6. APIからの返信を抽出し、アシスタントメッセージとしてチャット履歴に追加する。

このプロセスに従うことで、開発ワークフローにパワフルなAI駆動のコーディングアシスタントを簡単に統合できます。これにより、生産性と効率性が大幅に向上します。

FAQ