OpenAIのAPIを使えば、Pythonで簡単にチャットボットを作成できます。本記事では、ChatGPTのような自然な会話が可能なボットを、自作スクリプトで構築する方法を紹介します。
OpenAI APIの準備
まず、OpenAI APIを利用するにはAPIキーが必要です。公式サイト(https://platform.openai.com/)にてアカウントを作成し、APIキーを取得してください。
Pythonライブラリのインストール
OpenAIのPythonクライアントをインストールするには以下のコマンドを実行します。
pip install openai
基本的なチャットボットの実装
以下はOpenAI APIを使って簡単なチャットボットを実装するPythonスクリプトです。
import openai
# 取得したAPIキーを設定
openai.api_key = 'YOUR_API_KEY'
def chat_with_bot(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # または "gpt-4"
messages=[
{"role": "system", "content": "あなたは親切なアシスタントです。"},
{"role": "user", "content": prompt}
]
)
return response.choices[0].message['content']
# ユーザーからの入力で対話
while True:
user_input = input("あなた:")
if user_input.lower() in ["exit", "quit"]:
break
reply = chat_with_bot(user_input)
print("AI:" + reply)
対話の例
上記スクリプトを実行すると、以下のような対話が可能になります。
あなた:こんにちは
AI:こんにちは!今日はどんなご用件でしょうか?
あなた:Pythonのリストの使い方を教えて
AI:Pythonのリストは複数の値を順番に格納できるデータ構造です。たとえば、list = [1, 2, 3] のように定義します。
会話履歴の保持と連続対話
複数回のやり取りを記憶させたい場合、messagesに過去の履歴を保持し続ける形で送信します。
messages = [{"role": "system", "content": "あなたは親切なアシスタントです。"}]
while True:
user_input = input("あなた:")
if user_input.lower() in ["exit", "quit"]:
break
messages.append({"role": "user", "content": user_input})
response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
reply = response.choices[0].message['content']
messages.append({"role": "assistant", "content": reply})
print("AI:" + reply)
応用:WebアプリやLINE連携へ
このチャットボットは、Flaskを使ってWebアプリにしたり、LINE Messaging APIと連携させてLINE上で動かすことも可能です。SlackやDiscordとの統合も実現でき、活用の幅が広がります。
まとめ
OpenAI APIを使えば、Pythonで手軽に高性能なチャットボットを構築できます。プロンプトの工夫やメッセージ履歴の管理によって、より自然な対話体験を実現できます。まずは基本的なスクリプトから始めて、自分だけの対話AIを育ててみましょう。