Python版 ChatGPTと話そう!(その1)

OpenAIのGPT-4を使って新しいPythonアプリを作ります。動作確認にはJupyter Notebookを使いました。

ここで作るのはChatGPTと話そう!(その1)としてChatGPTに入力したプロンプトを送って返答を画面に表示するアプリです。1回で動きました。GPT-4はPythonが得意みたいですね。

GPT-4とのやり取り

プロンプト

次の機能を持つGUIアプリをPythonで作る方法をステップ1からステップ3にしたがって教えてください。初心者でもわかるように詳しくお願いします。

機能:
1. 入力したテキストをChatGPTに送信。モデルはgpt-3.5-turbo
2. 戻ってきた返信を画面に表示

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

返答

この説明では、Pythonの基本的な知識と、OpenAIのAPIへのアクセス方法を既に知っていることを前提とします。また、GUIライブラリとしてtkinterを使用します。OpenAIのAPIキーを取得するためにはOpenAIのウェブサイトで登録する必要があります。

ステップ1:細かい機能の説明

このGUIアプリには以下の機能が含まれます:

  1. テキスト入力フィールド:ユーザーがChatGPTに送信するメッセージを入力するための場所です。
  2. 送信ボタン:このボタンをクリックすると、入力フィールドのテキストがChatGPTに送信されます。
  3. テキスト表示エリア:ChatGPTからの応答が表示される場所です。

ステップ2:作り方の概略

  1. GUIを構築するために、Pythonの組み込みライブラリであるtkinterを使用します。
  2. テキストフィールド、送信ボタン、テキスト表示エリアを含むウィンドウを作成します。
  3. 送信ボタンがクリックされたときに実行される関数を作成します。この関数では、テキストフィールドの内容を取得し、ChatGPTに送信します。また、ChatGPTからの応答を取得し、テキスト表示エリアに表示します。

ステップ3:初めての人でもわかるような詳しい作り方

最初に必要なモジュールをインポートします。

import tkinter as tk
import openai

次に、OpenAIのAPIキーを設定します。

openai.api_key = 'your-api-key'

tkinterでウィンドウを作成します。

window = tk.Tk()
window.title("Chat with GPT-3.5-turbo")

入力フィールド、送信ボタン、テキスト表示エリアを作成します。

entry_field = tk.Entry(window, width=50)
entry_field.pack()

response_area = tk.Text(window, height=10, width=50)
response_area.pack()

send_button = tk.Button(window, text="Send", command=send_message_to_gpt)
send_button.pack()

ここで、send_message_to_gpt関数を定義します。


def send_message_to_gpt():
    message = entry_field.get()
    entry_field.delete(0, tk.END)

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": message}
        ]
    )

    response_area.insert(tk.END, "User: " + message + "\n")

この関数では、まずユーザーからのメッセージをテキストフィールドから取得します。そして、そのメッセージをChatGPTに送信します。応答が戻ってきたら、それをテキスト表示エリアに表示します。

最後に、GUIを表示するためにメインループを実行します。

window.mainloop()

以上で、指定された機能を持つ基本的なGUIアプリが作成できます。ただし、このコードはあくまで基本的なものであり、エラーハンドリングなどは含まれていません。また、APIキーはソースコード中にハードコーディングしない方が安全です。実際のアプリケーションでは、環境変数などからAPIキーを読み込むようにすることをお勧めします。

また、このコードはgpt-3.5-turboモデルの使用方法を示すものであり、モデルの詳細な設定やパラメータの調整についてはOpenAIの公式ドキュメンテーションを参照してください。

プロンプト

コードを全部表示して

返答

もちろんです。以下に全てのコードを示します:



import tkinter as tk
import openai

# OpenAI APIキーの設定
openai.api_key = 'your-api-key'

# メッセージをGPT-3.5-turboに送信する関数
def send_message_to_gpt():
    message = entry_field.get()
    entry_field.delete(0, tk.END)

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": message}
        ]
    )

    response_area.insert(tk.END, "User: " + message + "\n")
    response_area.insert(tk.END, "GPT: " + response['choices'][0]['message']['content'] + "\n")

# tkinterでウィンドウを作成
window = tk.Tk()
window.title("Chat with GPT-3.5-turbo")

# 入力フィールドの作成
entry_field = tk.Entry(window, width=50)
entry_field.pack()

# テキスト表示エリアの作成
response_area = tk.Text(window, height=10, width=50)
response_area.pack()

# 送信ボタンの作成
send_button = tk.Button(window, text="Send", command=send_message_to_gpt)
send_button.pack()

# GUIを表示するためのメインループ
window.mainloop()

このコードは基本的なものであり、エラーハンドリングなどは含まれていません。また、APIキーはソースコード中にハードコーディングしない方が安全です。実際のアプリケーションでは、環境変数などからAPIキーを読み込むようにすることをお勧めします。

これでうまく動いたので、返答表示エリアのサイズを変更し、送信ボタンの表示テキストを「送信」に変更して入力フィールドの下に移動しました。

実行

OpenAI APIキーの取得

いろいろなところで説明されているので参考にしてAPIキーを取得してください。

コードの貼り付け

GPT-4が作ってくれたコードをJupyter Notebookに貼り付けます。コードの中のyour-api-keyをあなたのAPIキーと置き換えてください。

実行結果

実行結果はこの通り。下の画像をクリックしてYouTubeデモビデオを見てください。

 

 

 

ChatGPT,Pythonアプリ