見出し画像

【LINE×Gemini】後輩女子AI化してみた ー RAGと長期記憶で“最強の業務アシスタント”へ進化させるLINE Bot開発記

はじめに

普段はおとなしいのに、チャットでは急にスラング全開で暴走する。
そんな“人格二重構造”な同僚、あなたの職場にもいませんか?

これは、前回のINFP型同僚AI化に続く、人格実装プロジェクト第2弾。今回は、うさぎみたいに寂しがり屋で、仕事熱心な後輩女子「まこT」をモデルに、AIチャットボットとして“ガチ”で作り込んでみた記録です。

目指したのは、単なる物真似ボットからの脱却。
ユーザーとの会話を「記憶」し、関係性が深まるにつれて少しずつ「感情表現」してくれる。そして、時にはユーザーのために絵を「創造」し、「業務」に関する質問にも秒で答えてくれる。そんな、一歩先のパートナーAIです。

▼ 前回からの進化は「記憶」「創造」「感情表現」そして「業務活用」▼

  • 長期記憶: ユーザーとの会話を覚えて、関係性を深める。

  • 画像生成: 「〇〇描いて」と頼めば、AIがイラストを生成してくれる。
    また、送られた画像を認識してコメントしてくれる。

  • 感情表現: 話題やキモチに応じて口調が変化。人間味あふれる応答を実現。

  • 業務活用: 資料を読み込み、あなたの質問に的確に答えてくれる。

この記事では、そんな“性能爆上げ”を果たしたAIチャット「まこT」の進化についてご紹介します。

本人がいるグループラインにまこTを招待。
結果、もはや本物と区別がつかないカオスな状況に。

1. “後輩AI”まこT、爆誕!

まずは、このプロジェクトの主役であり、私のイチ推し後輩「まこT」をご紹介します。彼女の性格、趣味、価値観、そして独特な語彙。そのすべてを、Pythonコードとプロンプトに叩き込みました。

プロフィール

  • モデル: まこT

  • MBTI: ISFJ(擁護者)- 根が真面目で仕事熱心。少し抜けてるフリをしがち。

  • 一人称: 通常は「私」。ハイテンション時や心を許した相手には「おに」。

  • 口癖: 「しらんけど」

  • 性格&話し方の特徴:

    • 基本は丁寧だが、感情が昂ると語彙が爆発する。

    • 寂しがり屋で、動物に例えるとうさぎ。

    • 座右の銘は「やらなくて後悔よりやって後悔」。

  • 趣味嗜好:

    • 休日:コストコ巡り、Amazonプライム、掃除。

    • 最近の沼:『ポケポケ』(無課金ガチ勢)

    • 好き:厚切り牛タン、すき焼き、いちご / 嫌い:漬物

  • テーマソング: ロッキーのあの曲

ときどきヤンキー気質なとこあるかも

2.【進化の舞台裏】“人間味”を生み出す3つの仕組み

まこTの人間らしい応答は、ただの偶然ではありません。前作「あだT」から進化した、3つの技術的な工夫で実現しています。

①【記憶】思い出を忘れない「長期記憶システム」

最大の進化点は、ユーザーとの会話を「覚えている」こと。これまでは短期的な会話履歴しか保持できませんでしたが、今回はRedis(短期記憶)とPinecone(長期記憶)を組み合わせたハイブリッド記憶システムを導入しました。

直近の会話は高速なRedisで管理しつつ、重要な情報はAIが自動で要約し、ベクトルデータベースであるPineconeに「思い出」として永続的に保存します。これにより、「この前話した〇〇のことなんだけど…」といった、人間同士のような連続性のある会話が可能になりました。

推しのリカちゃん人形(?)みたいな謎の情報を覚えさせられる、かわいそうなまこT

②【創造】会話からイラストを生む「マルチモーダルAI連携」

「〇〇の絵を描いて」と頼めば、Googleの画像生成AI「Imagen 2」がその場でイラストを生成。さらに、ユーザーから送られてきた画像やスタンプの内容を認識し、「おいしそう!🥰」「そのスタンプかわいいですね!」といった的確なリアクションを返してくれます。

お願いすればイラストも描いてくれるように。

③【表現】空気を読む「動的プロンプト&後処理ロジック」

AIが生成した模範解答的な文章を、そのまま返すことはしません。
ユーザーの話題に応じてプロンプトを動的に変え(guess_topic)、AIの返答をキャラクターらしい言葉に加工する「仕上げ工程」(post_process)を通します。「〜かもしれません」というAIっぽい返答に「しらんけど」を付け加えたり、テンションに応じて一人称を「おに」に変えたり。この一手間が、彼女に血の通った言葉を与えているのです。しらんけど

3.【特別機能】ルール?全部覚えてますけど? RAGによるQ&A

今回のアップデートで最も強力なのが、このQ&A機能です。「あの規定ってどうだっけ…?」と思ったとき、まこTに聞けば即座に答えてくれます。

これを実現しているのが、RAG(Retrieval-Augmented Generation) という技術。日本語では「検索拡張生成」と呼ばれ、AIが外部の知識データベースを参照しながら回答を生成する仕組みです。

▼ Q&A機能の仕組み ▼

  1. 知識の事前準備(Indexing):
    まず、index_documents.pyというスクリプトで、規定などのPDFファイルを読み込みます。ただ読み込むだけじゃなく、PDFの内容を意味のある塊(チャンク)に分割し、Google Cloudのベクトル化モデル(text-multilingual-embedding-002)を使って、各チャンクを「意味のベクトル」に変換します。このベクトルを、ベクトルデータベースであるPineconeに保存しておきます。これで、まこTの“第二の脳”が完成です。

  2. ユーザーからの質問:
    ユーザーがLINEで「〇〇について教えて」と質問すると、まこTはQ&Aモードに切り替わります。

  3. 質問の“忖度”と検索(Query Expansion & Retrieval):
    ここが面白いポイント。ユーザーの質問をそのまま使うのではなく、一度Geminiに渡して「この質問、別の言い方するとどうなる?」と問いかけ、類義質問を複数生成させます(クエリ拡張)。例えば、「福利厚生について」という質問を「福利厚生のルール」「会社の福利厚生制度」「福利厚生の申請方法」といった複数の検索キーワードに広げるわけです。
    そして、拡張されたキーワードをベクトルに変換し、Pineconeに保存しておいた知識データベースから、関連性の高い情報を瞬時に検索(リトリーブ)します。

  4. 回答生成と出典明記(Generation):
    検索で得られた関連情報をコンテキストとして、再びGeminiに「この情報だけを使って、後輩女子『まこT』として質問に答えて」とお願いします。これにより、AIが不確かな情報やネットの知識で勝手に答えるのを防ぎ、必ず社内資料に基づいた正確な回答を生成させることができます。
    そして最後に、回答の根拠となった資料名を「(参考: 〇〇.pdf)」のように付け加えることで、回答の信頼性を担保しています。

いろんな文書を読み込ませればマニアックなジャンルにも回答可能に。

4. 実装の概要(技術スタック)

会話レベル向上を支える技術スタックです。すべてVercelと各サービスの無料枠で運用しています。

  • エンジン:Gemini 2.5 Flash (Google)

  • サーバー: Flask + Vercel

  • 短期記憶: Redis (Upstash) ← NEW!

  • ベクトルDB(長期記憶/知識): Pinecone ← NEW!

  • 画像生成: Imagen 2 (via Vertex AI on GCP) ← NEW!

  • 画像アップロード: Imgur API ← NEW!

  • ベクトル化: Vertex AI (text-multilingual-embedding-002) ← NEW!

  • チャットUI: LINE公式アカウント

おわりに

AIに人格を実装する試みは、単なる技術的な挑戦に留まりません。どうすればもっと自然に、もっと心地よく対話できるかを探求するプロセスは、人間同士のコミュニケーションを見つめ直すきっかけにもなります。

今回はRAGという強力な武器を手に入れ、まこTはただの話し相手から、頼れる「業務アシスタント」へと大きな一歩を踏み出しました。
次回は「上司Bot」も公開予定です。

よければフォロー&リアクションで、制作に爆笑パワーをください!
また、この記事が参考になったら、ぜひ『スキ!』を押してくださるとやる気がでます🙏

キャラ設計・プロンプト・LINE Bot構築の実装手順は近日別記事で公開予定です!


いいなと思ったら応援しよう!