Pythonで自作チャットボットの作り方【ChatGPT API】

IT技術

近年、AIの進化により、チャットボットは企業のカスタマーサポートや日常生活でますます活躍しています。特にOpenAIのChatGPTは、その自然な会話能力と手軽に使えるAPIにより、多くの開発者に注目されています。本記事では、Pythonを使ってChatGPT APIを活用し、自作チャットボットを構築する方法をわかりやすく解説します。


スポンサーリンク

ChatGPT APIとは?

ChatGPT APIは、OpenAIが提供するAIチャットボットのためのAPIで、以下のような機能を提供しています。

  • 自然言語処理(NLP): ユーザーのテキスト入力に対して自然な応答を生成
  • 柔軟なカスタマイズ: プロンプト設計による応答の制御
  • 多用途な応用: FAQ対応、商品レコメンド、タスク自動化など

ChatGPT APIを利用すれば、開発者は簡単に高度なチャットボットを実装できます。


ChatGPT APIの準備

 



PythonでChatGPT APIを利用するために、以下の準備が必要です。

1. 必要なライブラリのインストール

まず、Python環境が整っていることを確認し、必要なライブラリをインストールします。

pip install openai python-dotenv

openai はAPIとのやり取りに、python-dotenv は環境変数の管理に使用します。

2. APIキーの設定

OpenAIのAPIキーを環境変数に保存し、Pythonコードから安全に呼び出せるようにします。

.env ファイルを作成し、以下のようにAPIキーを記述します。

OPENAI_API_KEY=your_api_key_here

Pythonコード内で以下のように環境変数を読み込みます。

import openai
import os
from dotenv import load_dotenv

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

PythonでChatGPT APIを使ってみよう

 



基本的なAPIの呼び出し方法を紹介します。

import openai

def chat_with_gpt(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=100
    )
    return response['choices'][0]['message']['content']

user_input = "こんにちは!あなたは何ができますか?"
print(chat_with_gpt(user_input))

解説

  • model="gpt-4":使用するモデルを指定
  • messages:ユーザー入力の設定
  • max_tokens:応答の最大長

チャットボットの機能拡張

 



シンプルなチャットボットをさらに便利にするために、以下の機能拡張を行います。

1. ユーザー履歴の管理

チャットのコンテキストを保持することで、より自然な会話が可能になります。

conversation_history = []

def chat_with_context(user_message):
    conversation_history.append({"role": "user", "content": user_message})
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=conversation_history,
        max_tokens=150
    )
    reply = response['choices'][0]['message']['content']
    conversation_history.append({"role": "assistant", "content": reply})
    return reply

2. GUI(Flaskを使用したWebチャットボット)

Flaskを使って、Webインターフェースのチャットボットを作成できます。

from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/chat', methods=['POST'])
def chat():
    data = request.json
    user_message = data.get('message')
    bot_reply = chat_with_gpt(user_message)
    return jsonify({"reply": bot_reply})

if __name__ == '__main__':
    app.run(debug=True)

チャットボットのデプロイ

 



作成したチャットボットをクラウド環境にデプロイする方法を紹介します。

1. Herokuへのデプロイ

Herokuを使用して、Flaskアプリをクラウド上に展開できます。

  1. Herokuアカウントの作成
  2. プロジェクトの準備(requirements.txtの作成)
  3. Heroku CLIを使用したデプロイ
git init
git add .
git commit -m "Initial commit"
heroku create
heroku git:remote -a your-app-name
git push heroku master

2. 運用時の注意点

  • API使用量の管理(リクエスト回数制限)
  • ユーザーのデータ保護
  • 定期的なログの確認

まとめ

 



この記事では、Pythonを使用してChatGPT APIを活用し、チャットボットを作成する方法を紹介しました。以下のステップを実施しました:

  1. ChatGPT APIの概要と準備
  2. Pythonを使った基本的な利用方法
  3. チャットボットの機能拡張
  4. Webインターフェースの作成とデプロイ方法

これらを活用して、自分だけのカスタムチャットボットを作成し、業務の自動化やエンタメ用途に役立ててください!


次のステップ: 音声認識と組み合わせたボイスチャットボットの作成にチャレンジしてみましょう!

コメント

タイトルとURLをコピーしました