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アプリには以下の機能が含まれます:
- テキスト入力フィールド:ユーザーがChatGPTに送信するメッセージを入力するための場所です。
- 送信ボタン:このボタンをクリックすると、入力フィールドのテキストがChatGPTに送信されます。
- テキスト表示エリア:ChatGPTからの応答が表示される場所です。
ステップ2:作り方の概略
- GUIを構築するために、Pythonの組み込みライブラリであるtkinterを使用します。
- テキストフィールド、送信ボタン、テキスト表示エリアを含むウィンドウを作成します。
- 送信ボタンがクリックされたときに実行される関数を作成します。この関数では、テキストフィールドの内容を取得し、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デモビデオを見てください。