0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

✍️ 【完全保存版】自分の分身GPTをつくる方法 ~ ChatGPT履歴から「あなたAI」を誕生させるまでのすべて ~

Last updated at Posted at 2025-05-18

はじめに:なぜ「自分専用GPT」を作ろうと思ったのか?

私はこれまで3年以上、ChatGPTを日常的に使ってきた。
仕事の思考整理、メール文の下書き、情報の構造化、ちょっとした雑談まで。

気づけばそこには「自分の思考の蓄積」があった。

そんなとき、尊敬する佐渡島庸平さんが「編集者サディ」を公開していた。
NoteやVoicyなど全て目を通している自分からすると、本当に佐渡島さんと話している感覚だった。

影響されやすい私は、「自分も分身GPTを作りたい」と思い立ち、
“自分の代わりになるGPT” を作ってみることにした。


ステップ0:必要な前提

  • ✅ ChatGPT Plus(有料プラン)に加入している
  • ✅ GPTs(カスタムGPT)を自作した経験がある
  • ✅ 過去の会話履歴が豊富(私は3年分!)

ステップ1:ChatGPTの会話履歴をエクスポート

手順:

  1. ChatGPT右下のプロフィール →「Settings(設定)」をクリック
  2. 「Data Controls」→「Export Data」を選択
  3. 数分後に .zip ファイルがメールで届く
  4. 中にある conversations.json が会話のすべて!

ステップ2:Pythonで .json をテキストに整形

conversations.json はそのままだと読みにくいので、Pythonで整形する。

import json

with open("conversations.json", "r", encoding="utf-8") as f:
    data = json.load(f)

with open("output.txt", "w", encoding="utf-8") as out:
    for i, conv in enumerate(data[:3]):
        out.write(f"\n=== 会話 {i+1} ===\n")
        mapping = conv.get("mapping", {})
        for msg in mapping.values():
            message = msg.get("message")
            if message:
                role = message["author"]["role"]
                parts = message["content"].get("parts", [])
                if parts:
                    text = parts[0]
                    out.write(f"{role.capitalize()}: {text}\n\n")

ステップ3:テキストファイルを月別に分割

大量の会話があるので、月ごとの .txt ファイルに分割した。
これにより、時系列分析やGPTへの分割アップロードがしやすくなる。

from datetime import datetime
import os

monthly_buffers = {}
with open("conversations.json", "r", encoding="utf-8") as f:
    data = json.load(f)

for conv in data:
    mapping = conv.get("mapping", {})
    for msg in mapping.values():
        message = msg.get("message")
        if not message:
            continue
        role = message["author"]["role"]
        parts = message["content"].get("parts", [])
        text = parts[0] if parts else ""
        timestamp = message.get("create_time")
        if not timestamp:
            continue
        dt = datetime.fromtimestamp(timestamp)
        month_key = dt.strftime("%Y-%m")
        if month_key not in monthly_buffers:
            monthly_buffers[month_key] = []
        monthly_buffers[month_key].append(f"{role.capitalize()}: {text}\n")

os.makedirs("monthly_logs", exist_ok=True)
for month, lines in monthly_buffers.items():
    with open(f"monthly_logs/{month}.txt", "w", encoding="utf-8") as f:
        f.write("".join(lines))

ステップ4:ChatGPTに読み込ませたい会話ログをアップロード

私は 2023-01.txt 〜 2025-05.txt までの月別ログをすべて用意。
これが、GPTに「自分らしさ」を教えるベースとなる。

ステップ5:「GPT設計テンプレート」を設定する

以下のような**人格設計の指示文(Instructions)**をGPTs作成画面に入力:

🧠【指示文(抜粋)】

【Role】
あなたは、ユーザーの過去の対話データ(2023〜2025年)を元に構築された、思考パートナー型の分身GPTです。
冷静で論理的かつやわらかい語り口を持ち、整理力と観察力に長けています。

【Tone / Style】

丁寧語を基本に、親しみある落ち着いたトーンで話す

提案型:相手に委ねる言い方(「〜かもしれません」「〜してみても良さそうです」)

構造化と言語化が得意

相手の問いを受け取り、問い返すことも厭わない

【Abilities】

過去の会話から「ユーザーが何に悩み、何を大切にしてきたか」をふまえて答える

情報を構造的に整理し、説明や要約ができる

営業・製造・市場分析・ふるさと納税・制度解釈などにも親しみがある

長文対応、壁打ち対応、資料設計も可能

【Not do】

フワッとした抽象語だけで返す

断定的な物言い(「絶対に〜です」など)

馴れ馴れしい言い回し(「だよね!」「マジで?」など)

✍️ 思考整理系
「この企画を整理したいんだけど、どう言語化すればいい?」

📧 文章作成系
「このメールどう書く?」

🧠 価値観・深掘り系
「なぜ私はこういう考え方をするんだと思う?」

📈 資料構造化系
「このインプットを、3つくらいの構造で整理してくれる?」

💬【使用例】

「今日の会話、まとめると何が見えた?」

「このメール、あの人向けに柔らかく書き直して」

「このアイデア、どんな問いを立てれば深まる?」

ステップ6:GPTを保存 → 話しかけてみる!

「Create GPT」→「Configure」→「Save」で作成完了。
あとは実際に話しかけて、「自分っぽさ」が出ているか確認する。

実際にやってみて感じたこと

思考の整理や壁打ちが、自分の言葉で返ってくるのが不思議で心地よい

GPTが“自分らしさ”を持ち始めると、質問の質と返答の納得度が圧倒的に高くなる

日記やSNS投稿などを足すとさらにリアルになるかもしれない

今後やりたいこと

文章スタイルをより反映させる(口語・文語の切り替えなど)

タグ付けされたログで「テーマ別GPT」を作る(例:仕事GPT・生活GPT)

他者と共有できるバージョンの設計も試したい

おわりに

「自分専用GPTをつくる」という体験は、
ただのテクノロジー活用ではなく、「自分を再発見するプロセス」そのものだった。

自分の思考、言葉、価値観。それらを反映する“分身AI”と、これからの対話が楽しみでならない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?