レポート
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は会話の文脈を覚えているので、前の会話で言及されたことを記憶しています。
この記事の著者

フルスタックエンジニア
岡田 大作
20年近いWeb開発経験を持つフルスタックエンジニア。バックエンドからフロントエンドまで幅広い技術領域に精通。メガベンチャーや大手通信キャリアにて多数のプロジェクトに携わる。近年は、大規模言語モデル(LLM)をはじめとするAI技術を活用した事業開発に注力している。
「ChatGPT導入・活用支援」はNOB DATAにご相談ください
ChatGPTの導入・活用に課題を感じていませんか?
NOB DATAでは、ChatGPT開発およびデータ分析・AI開発のプロフェッショナルが、多種多様な業界・課題解決に取り組んだ実績を踏まえ、ChatGPTの導入・活用を支援しています。社員向けのChatGPT研修も実施しており、お気軽にお問い合わせください。
はじめてのAPI実装 - ChatGPTを使った簡単なチャットボット開発