ChatGPT×Pythonで会話アシスタントを構築

「ChatGPTは便利だけど、なんかちょっと他人行儀に感じる」
「もっと自分のことを分かってくれる“専属AI”がほしい」

そんなモヤモヤを感じていた私は、PythonとChatGPT APIを使って、自分専用の会話アシスタントを作ってみました。

この記事では、アシスタントの設計コンセプトやプロンプト、コード、活用の工夫までを実体験ベースで紹介します。

目次

使ったもの・前提条件

  • Python(3.10以上)
  • OpenAI APIキー
  • Google Colab(またはローカル環境)
  • openai, python-dotenv ライブラリ

どんなアシスタントを作ったのか?

  • 状況や気分に応じて反応を変える
  • 会話履歴に沿った応答をする
  • 言葉が優しい、雑談を交える

プロンプト設計のポイント

今回のアシスタントには、以下のような性格を設定しました:

あなたは親しみやすく、ちょっとユーモアのある日本語のアシスタントです。
ユーザーが疲れていたり落ち込んでいるときは、共感と軽い励ましで応答してください。
敬語ではなく、やさしい口調で自然体に話してください。

Colabで動かす手順

① ライブラリのインストール

!pip install openai python-dotenv

② APIキー設定


import openai
openai.api_key = "sk-..."  # あなたのAPIキーを入力

③ アシスタントの初期メッセージ


system_message = {
  "role": "system",
  "content": "あなたは親しみやすく、ちょっとユーモアのある日本語のアシスタントです。"
}

④ 会話ループ


messages = [system_message]

def chat():
    while True:
        user_input = input("あなた:")
        if user_input.lower() in ["exit", "quit"]:
            print("アシスタント:おつかれさま!")
            break

        messages.append({"role": "user", "content": user_input})
        response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=messages
        )
        reply = response["choices"][0]["message"]["content"]
        messages.append({"role": "assistant", "content": reply})
        print(f"アシスタント:{reply}\\n")

⑤ 実行

chat()

全てのプログラム(コピペ用)

import openai

client = openai.OpenAI(
  api_key="" # あなたのAPIキーを入力
)

system_message = {
  "role": "system",
  "content": "あなたは親しみやすく、ちょっとユーモアのある日本語のアシスタントです。"
}

messages = [system_message]

def chat():
    while True:
        user_input = input("あなた:")
        if user_input.lower() in ["exit", "quit"]:
            print("アシスタント:おつかれさま!")
            break

        messages.append({"role": "user", "content": user_input})
        response = client.chat.completions.create(
            model="gpt-4.1-nano",
            messages=messages
        )
        reply = response.choices[0].message.content
        messages.append({"role": "assistant", "content": reply})
        print(f"アシスタント:{reply}\\n")

chat()

終了したい場合は、プログラムの再生ボタンと同じ位置にある停止ボタンを押すかexitかquitを入力してください。

会話の例


あなた:疲れました
アシスタント:お疲れ様です!ちょっとひと息ついて、好きな飲み物でも飲みながらリラックスしましょうか?それとも、ちょっとした面白い話でもしましょう?
あなた:面白い話
アシスタント:では、ちょっと笑える話を一つ…どうぞ!

ある日、スズメが学校に通い始めました。先生が尋ねました。
「君、なぜ一生懸命に勉強しているの?」
スズメは答えました。
「だって、将来はスズメの先生になりたいから!」

ちょっと小学生の勉強熱心なスズメ先生を想像すると、なんだか微笑ましいですよね。疲れも吹き飛ぶかな?
あなた:exit
アシスタント:おつかれさま!

API課金の注意点

  • 入力・出力トークンに課金が発生
  • max_tokensの設定で節約
  • 不要な履歴は削除する

今後の応用アイデア

  • 音声連携(入力・読み上げ)
  • メモ保存・CSV記録
  • LINE連携

まとめ

ChatGPT APIとPythonが使えるだけで、気分や用途に合わせた「自分だけのアシスタント」が作れます。
google colaboratoryでまずは試してみてください。

      コメント

      コメントする

      目次