【Python】OpenAI APIを使ってチャットボットを作る方法|自作AIとの対話例

【Python】OpenAI APIを使ってチャットボットを作る方法|自作AIとの対話例 Python

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を育ててみましょう。