👏

ChatGPTのAPIを使った対話プログラム

2025/02/01に公開

以下に、Pythonを使用してOpenAIのAPIと対話するプログラムのサンプルコードと、その解説を提供します。このプログラムは、ユーザーが「exit」と入力するまでChatGPTと対話を続けます。

前提条件:

  1. OpenAI APIキーの取得: OpenAIのアカウントを作成し、APIキーを取得してください。

  2. Python環境のセットアップ: Pythonがインストールされていることを確認してください。

  3. 必要なライブラリのインストール: openaiライブラリをインストールします。

    pip install openai
    

サンプルコード:

import openai
import os

# OpenAI APIキーを環境変数から取得
api_key = os.getenv("OPENAI_API_KEY")
if api_key is None:
    raise ValueError("環境変数 'OPENAI_API_KEY' が設定されていません。")

client = openai.OpenAI(api_key=api_key)

def chat_with_gpt():
    print("ChatGPTと対話を開始します。終了するには 'exit' と入力してください。")
    conversation_history = []

    while True:
        user_input = input("あなた: ")
        if user_input.lower() == "exit":
            print("対話を終了します。")
            break

        conversation_history.append({"role": "user", "content": user_input})

        try:
            response = client.chat.completions.create(
                model="gpt-3.5-turbo",
                messages=conversation_history
            )
            assistant_reply = response.choices[0].message.content.strip()
            print(f"ChatGPT: {assistant_reply}")

            conversation_history.append({"role": "assistant", "content": assistant_reply})

        except Exception as e:
            print(f"エラーが発生しました: {e}")

if __name__ == "__main__":
    chat_with_gpt()

実行例:

(venv) PS C:\Users\subma\project\openai-sample> python chat_with_gpt.py
ChatGPTと対話を開始します。終了するには 'exit' と入力してください。
あなた: こんにちは
ChatGPT: こんにちは!お元気ですか?お手伝いできることがあればお知らせくださいね。
あなた: やった!apiを使ったプログラムでchatGPTにアクセスできた!
ChatGPT: 素晴らしいですね! ChatGPTを利用することで、さまざまな面白い会話や情報を得ることができますね。何か具体的なアイデアや質問があれば、お気軽にどうぞ。お手伝いできることがあればお知らせください!
あなた: うん。今日は寝ます。今後ともよろしく!
ChatGPT: 了解しました!良い夢を見てくださいね。また次回お会いできることを楽しみにしています。おやすみなさい!またね。
あなた: exit
対話を終了します。
(venv) PS C:\Users\subma\project\openai-sample> 

コードの解説:

  1. ライブラリのインポート:

    • openai: OpenAIのAPIとやり取りするためのライブラリです。
    • os: 環境変数からAPIキーを取得するために使用します。
  2. APIキーの設定:

    • os.getenv("OPENAI_API_KEY")で環境変数OPENAI_API_KEYからAPIキーを取得します。
    • APIキーが設定されていない場合、ValueErrorを発生させます。
  3. chat_with_gpt関数:

    • ユーザーとの対話を管理する関数です。
    • conversation_historyリストでユーザーとChatGPTのやり取りを保存します。
    • 無限ループ内でユーザー入力を受け取り、exitと入力された場合は対話を終了します。
    • ユーザーの入力をconversation_historyに追加し、openai.ChatCompletion.createを使用してChatGPTからの応答を取得します。
    • ChatGPTの応答を表示し、conversation_historyに追加します。
    • エラーが発生した場合は、エラーメッセージを表示します。

環境変数の設定方法:

APIキーをコード内に直接記述するのはセキュリティ上好ましくないため、環境変数として設定します。以下の方法で環境変数を設定してください。

  • Windows:

    • コマンドプロンプトで以下のコマンドを実行します。
      setx OPENAI_API_KEY "your_api_key_here"
      
    • 新しいコマンドプロンプトを開き、設定が反映されていることを確認します。
  • macOS/Linux:

    • ターミナルで以下のコマンドを実行します。
      export OPENAI_API_KEY="your_api_key_here"
      
    • この設定は現在のターミナルセッションでのみ有効です。永続的に設定するには、~/.bashrc~/.zshrcなどのシェル設定ファイルに上記のコマンドを追加してください。

Visual Studio Code (VS Code) での実行方法:

  1. VS Code のインストール:

    • 公式サイトからVS Codeをダウンロードし、インストールしてください。
  2. Python 拡張機能のインストール:

    • VS Codeを起動し、拡張機能タブから「Python」拡張機能を検索してインストールします。
  3. プロジェクトフォルダの作成とコードの配置:

    • 新しいフォルダを作成し、上記のコードをchatgpt_chat.pyなどの名前で保存します。
  4. 仮想環境の作成 (任意):

    • ターミナルを開き、以下のコマンドで仮想環境を作成します。
      python -m venv venv
      
    • 仮想環境をアクティブにします。
      • Windows:
        venv\Scripts\activate
        
      • macOS/Linux:
        source venv/bin/activate
        
  5. 必要なライブラリのインストール:

    • ターミナルで以下のコマンドを実行してopenaiライブラリをインストールします

Discussion