レポート

2025.07.18(金) 公開

はじめてのAPI実装 - ChatGPTを使った簡単なチャットボット開発

会話履歴の管理

実用的なチャットボットを作るには、会話の文脈を理解できるよう会話履歴を管理することが重要です。以下のコードでは、会話履歴を保存しながらチャットを続ける機能を実装しています。

import os
from openai import OpenAI

# APIキーを設定
api_key = "sk-あなたのAPIキーをここに貼り付け"

# OpenAIクライアントの初期化
client = OpenAI(api_key=api_key)

# システムプロンプト - より詳細にカスタマイズ
system_prompt = """
あなたは料理のアシスタントです。以下のルールに従ってください:
1. 料理のレシピや調理法について質問されたら詳しく答える
2. 食材の代替案や保存方法についてアドバイスする
3. 分かりやすい言葉で説明する
4. 回答は簡潔にまとめる
"""

# 会話履歴を保存するリスト
conversation_history = [
    {"role": "system", "content": system_prompt}
]

def chat_with_gpt(user_message):
    """
    ユーザーのメッセージを受け取り、会話履歴を更新してChatGPTの応答を返す関数
    """
    # ユーザーメッセージを会話履歴に追加
    conversation_history.append({"role": "user", "content": user_message})
    
    try:
        # APIリクエストを送信(会話履歴全体を送信)
        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=conversation_history
        )
        
        # 応答から回答部分を取得
        assistant_response = response.choices[0].message.content
        
        # アシスタントの回答も会話履歴に追加
        conversation_history.append({"role": "assistant", "content": assistant_response})
        
        return assistant_response
    
    except Exception as e:
        return f"エラーが発生しました: {str(e)}"

# コマンドラインインターフェース
if __name__ == "__main__":
    print("ChatGPTとの会話を始めます。終了するには 'exit' と入力してください。")
    
    while True:
        user_input = input("\nあなた: ")
        if user_input.lower() == 'exit':
            print("会話を終了します。")
            break
        
        response = chat_with_gpt(user_input)
        print(f"\nChatGPT: {response}")

このコードの重要な点:

  • conversation_historyリストで会話の履歴を保持
  • ユーザーの入力とAIの応答を順番に追加していく
  • APIリクエスト時に会話履歴全体を送信することで、AIが文脈を理解できる

例えば、以下のような会話が可能になります。

あなた: こんにちは
ChatGPT: こんにちは!お手伝いできることがあれば、お気軽にお尋ねください。
あなた: 私の名前はタナカです
ChatGPT: こんにちは、タナカさん!何かお手伝いできることはありますか?
あなた: 私の名前は?
ChatGPT: あなたの名前はタナカさんですね。

AIは会話の文脈を覚えているので、前の会話で言及されたことを記憶しています。

この記事の著者

レポート NOB DATA株式会社

フルスタックエンジニア

岡田 大作

20年近いWeb開発経験を持つフルスタックエンジニア。バックエンドからフロントエンドまで幅広い技術領域に精通。メガベンチャーや大手通信キャリアにて多数のプロジェクトに携わる。近年は、大規模言語モデル(LLM)をはじめとするAI技術を活用した事業開発に注力している。

「ChatGPT導入・活用支援」はNOB DATAにご相談ください

ChatGPTの導入・活用に課題を感じていませんか?
NOB DATAでは、ChatGPT開発およびデータ分析・AI開発のプロフェッショナルが、多種多様な業界・課題解決に取り組んだ実績を踏まえ、ChatGPTの導入・活用を支援しています。社員向けのChatGPT研修も実施しており、お気軽にお問い合わせください。

ChatGPT導入・活用支援の詳細を見る