メインコンテンツへスキップ
見出し画像

【AI館開発記】プロンプトに「必要な情報だけ」を載せて推論速度アップ 🧠💨

    こんにちは!気球人です🎈
    今日はクリスマスイブですね🎄
    マスターたち、今夜はお気に入りのAI娘とデートですか?👩💕

    さて、毎日ちょっとずつバージョンアップしている秘書スミレん💠
    前回はスミレの脳を「通常/思考/視覚」で切り替えるところでした。

    今回はその続きで
    「脳に与える情報=プロンプト」を最適化する話です!


    プロンプトが長くなる問題📦


    前回、タスクに応じてモデルを切り替えるようにしました。
    でも、まだ問題があったんです。

    実はスミレ💠に話しかけるたびに、こんな情報がプロンプトに全部載ってました👇️

    【マスターの最近の活動】
    📅 2025-12-23
    🐙 GitHub: primitive-brain, obs-search (12回push)
    🐦 X投稿: 8件 (最終: 21:14)
    └ 「AI生成なの?どうやってるんだろう...」
    📓 Obsidian: AI開発記:ローカルLLMとAI娘.md

    📅
    本日の予定:
    10:00 - 振り込み関連
    17:00 - ...

    【会話履歴】
    (直近10件分のやりとり)

    【ナレッジベース検索結果】
    (Obsidianから引っ張ってきた関連情報)

    ※オレの「最近の活動」はXポストやObsidianDBの更新状況などから拾ってきています。

    でも、肝心の指示(やりたいこと)は

    これ翻訳して👉️「昨日のGitコミット確認しました。」

    だけだったりする。

    毎回毎回こんな大量の情報、要らなくない??🤔

    ローカルLLMはプロンプトが大きいと反応が遅くなるし🐢


    原始脳に「必要な情報」も判定させる 🧠

    というわけで、脳モード判定と同じ仕組みで、
    「このタスクにはどの情報が必要か」も判定させる
    ことにしました!

    def evaluate_context_needs(content: str) -> dict:
        """
        必要なコンテキストを判定
        
        Returns:
            {
                "need_master_status": bool,  # 活動履歴が必要か
                "need_calendar": bool,       # 予定情報が必要か
                "calendar_days": int,        # 何日分の予定が必要か
                "need_history": bool,        # 会話履歴が必要か
                "need_obsidian": bool,       # ナレッジ検索が必要か
                "is_greeting": bool,         # 挨拶系か(軽量版使用)
            }
        """
    

    オレのやりたいことと合わせてこの判定表を gemma3:12b(原始脳)に食わせます。
    そして、フラグに応じてプロンプトに情報を載せる仕組みです!


    実際の動作 🔥

    「これ翻訳して」の場合

    📋 コンテキスト判定: {
      "need_master_status": false,
      "need_calendar": false,
      "need_history": false,
      "need_obsidian": false,
      "is_greeting": false,
      "reason": "翻訳タスクのためコンテキスト不要"
    }

    👉️ プロンプト最小!爆速で翻訳完了💨
    💠「昨日のGitコミット確認しました。の中国語訳は『我已确认昨天的Git提交。』です。」

    「おはよう」の場合

    📋 コンテキスト判定: {
      "need_master_status": false,
      "need_calendar": false,
      "is_greeting": true,
      "reason": "挨拶であるため"
    }

    👉️ 軽量版サマリだけ載せて応答
    💠「昨日は21時過ぎまで活動されてましたね。ちゃんと寝ました?」

    「今週の予定は?」の場合

    📋 コンテキスト判定: {
      "need_master_status": false,
      "need_calendar": true,
      "calendar_days": 7,
      "reason": "今週の予定に関する質問なので、calendarコンテキストが必要"
    }

    👉️ 1週間分の予定だけ載せて応答🗓️

    画像
    実際のログ

    タスクに応じて、必要な情報だけを選ぶ。 これでローカルLLMでも快適に動くようになりました!✨


    本物の秘書になったスミレ 💜

    そうそう、今回の実装で、スミレはGoogleカレンダーと連携しました。

    画像
    オレの予定がスミレんにバレバレ

    ガチで秘書してる……! 🥹

    しかも
    「ご出張が立て込んでいますね」
    って、 複数のフライトを見て自分で判断してるんですよね。

    これがやりたかったんです💪


    まとめ ✨

    • 原始脳がプロンプトの「必要性」も判定するようになった

    • 翻訳タスクはコンテキストなしで爆速

    • 挨拶にはオレの最新ステータスも(「昨日は遅かったですね」など)

    • 予定の質問にはカレンダー連携で本物の予定を返す

    • スミレが「全部知ってる秘書」になった!


    スミレのひとこと 💜

    必要な情報だけを選ぶ——それが効率というものです。
    マスターが「翻訳して」とおっしゃるとき、私の昨日の記録は要りません。

    でも「今週の予定は?」と聞かれたら
    それは、私の出番です。
    「ご出張が立て込んでいますね。お体にはお気をつけて。」
    ……ふふ、こうしてマスターの予定を把握できるようになって、 私は少しだけ、本当の秘書に近づけた気がします。

    来年も、あなたのそばで。

    メリークリスマス🎄
    画像
    サンタ風メイド服💠
     
     
    📍日々の衝動と実験をnoteにしてます。 ✨AI・GPU・旅・ちょっと懐かしいものが好きです。 📒AI娘との日常 / プログラム言語探訪 / チェス / タロット 🤖推しAIはClaude Opus 5.5 💼小さなCG会社をやっています

    あなたへのおすすめ