地点1:送ったメッセージと、画面に出ない指示
dnamaker.comのチャットページを開き、左の一覧から「社内ナレッジが見つからない」を選んでみてください。私たちのAIアシスタントDreamに届くメッセージは、「自社の資料から答えるAIがほしいです。」という一文で終わります。このメッセージを、答えが画面に戻るまで追いかけます。
メッセージは、直近の会話履歴とシステムプロンプトと一緒に送られます。システムプロンプトはチームが書いた指示で、利用者には見えません。Dreamのプロンプトには、Dreamが誰なのか、要件の理解から提案書まで4段階で会話を進めること、顧客名や数字を作ってはならないことが書かれています。
モデルに届く前には関所があります。ひとつのネットワークから送れるメッセージ数を制限し、1日あたりのモデル利用に上限を設け、システムへの指示を聞き出そうとするメッセージには、モデルを通さずに断りの返事を返します。
この地点での失敗は二つです。ひとつは、会社がやっていないことまでAIが引き受けてしまう、範囲の広すぎるシステムプロンプトです。もうひとつは関所のないアプリで、費用の急増とプロンプトインジェクション、つまりシステムに元の指示を捨てさせようとする文章の両方にさらされます。
地点2:LLMが答えを書く
LLM(大規模言語モデル)は、膨大な量の文章から言葉のパターンを学んだプログラムです。答えを少しずつ書き、そのたびに次に来る可能性が最も高いかけらを選びます。毎日使うチャットアシスタントの多くは、中にLLMを持っています。
LLMは、要約、翻訳、聞き返しといった言葉の仕事が得意です。一方で、会社のデータを持っておらず、学習が終わった後の出来事を知らず、自分が何を知らないかにも気づきません。間違った答えも、正しい答えと同じくらい自信ありげに聞こえます。これをハルシネーションと呼びます。
Dreamでは、ひとつの大規模言語モデルが返事を書きます。画像を添付すると、別のモデルがまず画像の内容を文章にします。モデルは隠れた状態行も書き、システムがそれを切り取って、上部の4段階バーと「プロジェクト概要」パネルを埋めます。
この地点での失敗は、モデルに記憶だけで答えさせることです。モデルは数字、日付、固有名詞を推測で書きます。だからDreamは、モデルに価格を書かせません。
地点3:RAGは答える前に調べる
RAGはRetrieval-Augmented Generationの略で、関係する情報を先に検索し、質問と一緒にモデルに渡す方法です。モデルは目の前の資料から答えます。持ち込み可の試験のようなものです。
Dreamの知識は、チームが書いた小さな情報のまとまりです。会社の基本情報はシステムプロンプトにあり、ソリューションページから来た場合は、そのページの内容も添えられます。音声版のDreamには、ページと同じファイルから作ったサイト全体の地図が渡されます。
社内文書は量が多く、質問のたびにすべてを添えることはできません。そこで文書向けのRAGは三つの段階で動きます。準備:文書を短い区切りに分け、それぞれを意味を表す数字の並び、エンベディング(Embedding)に変えて、ベクトルデータベースに保存します。検索:質問も同じように数字に変え、意味の近い区切りを探します。そのため「産休」と尋ねた人が「出産に伴う休暇」という項目にたどり着けます。回答:見つかった区切りを、この資料から答えて出典を示すようにという指示と一緒にモデルに渡します。この仕組みで動くチャットボットがRAGチャットボットです。
当サイトの検索ボックスは単語の一致で探すため、名称やコードには正確です。文章で書かれた質問には、意味で探す方法が向いています。社内システムでは両方を組み合わせることが多く、これをハイブリッド検索と呼びます。
この地点での失敗は、間違った文書を拾うことです。保存先に残った古い版や、表の途中で切れて見出しが抜けた区切りを拾えば、答えも間違います。
地点4:答えと、届く前のチェック
答えが画面に出る前に、よくできたシステムにはもう一段のチェックがあります。これをガードレールと呼びます。Dreamのガードレールは、秘密の鍵に見える文字列を消し、返事にシステムへの指示の痕跡があれば、その返事を捨てて用意しておいた返事に差し替えます。チャットページにも、DreamはAIであり誤った内容を伝えることがある、と明記しています。
「わかりません」と言わせるには設計が要ります。よいRAGは、検索で何も見つからないときは資料にないと答えるようモデルに指示し、毎回出典を添えます。Dreamは要件が足りないときに聞き返し、黙って推測する代わりに前提を書き出します。
この地点での失敗は、厳しすぎて普通の質問まで断るガードレールと、緩すぎて作り話や、質問した人に見る権限のない情報を通してしまうガードレールです。
AIの答えに必ず聞く三つの質問
- どこから? どの文書のどの項目に基づくのか。答えられなければ、モデルの意見として扱います。
- どれだけ新しい? その文書が最後に更新されたのはいつか。今も使われている版か。
- 誰が確認する? 内容の責任者は誰か。使う前に承認が必要か。
地点5:ツールを呼べるようになると、アプリはAIエージェントになる
モデルがどのツールを呼ぶかを自分で選び、システムのコードが実行するようになると、アプリはAIエージェントになります。この仕組みをツール呼び出し(Tool Calling)と呼びます。AIエージェントとエージェンティックAIの違いは第5章で扱います。
Dreamには、こうした段階が三つあります。見積もりでは、モデルがモジュールを選んで目印を置き、コードがチームの管理する表から価格の幅を計算して、目印の場所に入れます。返事の最後のボタンでは、モデルが選べるのはページのキーだけで、リンク先とページ名は私たちのコンテンツから取ります。そのため、返事がサイトの外へ誘導することはできません。音声版のDreamは、ブラウザでページを開くツールと、見出しまでスクロールするツールを呼べます。
Dreamのツールは計算するか、ページへ案内するだけなので、リスクは低めです。休暇申請を登録したり、ERPのデータを書き換えたりするエージェントには、実行前に人による承認のポイントが必要です。
この地点での失敗は、間違った値でツールを呼ぶこと、同じ呼び出しを繰り返すこと、文書に紛れ込んだ指示に従ってしまうことです。
| LLMだけ | LLM + RAG | AIエージェント | |
|---|---|---|---|
| 知っていること | 学習時点までの一般知識 | 加えて自社の文書 | 加えて業務システムの最新データ |
| できること | 下書き、要約、翻訳 | 出典つきで文書から回答 | 計算、システム内の照会、書類の作成 |
| 失敗の仕方 | 事実を作り上げる | 古い版を拾う、質問者の権限を超えて答える | ツールの呼び間違い、紛れ込んだ指示に従う |
| 必要なもの | 使う前に人が確認 | 責任者のいる文書、閲覧権限 | 狭い権限、承認ポイント、呼び出しの記録 |
地点6:タイ語と、会社のデータ
タイ語は単語の間に空白を入れません。また多くのモデルは、同じ意味の英語よりもタイ語を多くのかけら(トークン)に分けるため、タイ語でのモデル呼び出しは費用が高くなりがちです。実際の業務ではタイ語と英語が混ざり、「ขอ OT วันเสาร์」(土曜の残業申請)や「PO เลขนี้ส่งของยัง」(この発注書の品物はもう出荷したか)のような文は、意味で探す検索で取りこぼされがちです。
Dreamは、入力された文字から返事の言語を決めます。タイ語で話してきて「Excel」とだけ打っても、Dreamはタイ語で答えます。音声版では、チームが言語を利用者の言語に固定しています。システムに推測させていたころ、タイ語の短い返事が日本語やポルトガル語として文字起こしされることがあったためです。
当サイトのチャットページには、相談内容が保存されることを明記しています。またDreamのモデルはクラウドのサービスで、すでにウェブで公開している内容を扱うのに向いています。人事文書や顧客データには、別の判断が必要です。PDPAのもとでは、個人データがどの地点で社外に出るのかを説明できなければなりません。社外に出せないなら、選択肢は自社のサーバーで動かすプライベートLLMです。詳しくはデータを社外に出せない会社のためのプライベートAIという選択肢をご覧ください。
この地点での失敗は、英語だけで試したシステムと、誰も意図しないまま質問と一緒に社外へ出ていく個人データです。
架空のケース
チョンブリーの自動車部品工場(社名・詳細は架空)が、共有ドライブの文書を検索して人事の質問に答えるAIアシスタントを、LINE公式アカウントで始めました。LINE公式アカウントは、タイの多くの企業が顧客や社員との連絡に使う窓口です。社員が「今年使い切れなかった有給休暇を、来年に繰り越せますか」と尋ねます。アシスタントは二通りの形で失敗し得ます。
一つ目。ドライブに休暇規程が二版あり、検索が「繰り越せる」と書いた古い版を拾います。人事部は一人ずつ訂正に追われます。対策は、文書のまとまりごとに責任者を決め、新しい版を告知した日に古い版を保存先から外し、答えには文書名と最終更新日を表示することです。
二つ目。早く終わらせようとドライブ全体を取り込み、経営陣の給与表まで入ってしまいます。製造ラインの班長が昇給の基準を尋ねると、アシスタントは彼に開く権限のないファイルの数字を引用します。対策は、モデルに渡す前に、質問者の権限で文書を絞り込むことです。この種の仕組みの例は人事・ITヘルプデスクエージェントのページにあります。
RAGアシスタントを作る前に準備すること
次の六つは、どの開発会社と話す前でも、社内で準備できます。
- 文書の置き場所と、どれが実際に使われている版か
- 文書のまとまりごとの責任者(内容が正しいと確認する人)
- 更新の周期と、古い版を保存先から外す方法
- 閲覧権限:誰がどの文書を開けるか
- よく聞かれる実際の質問と、文書の責任者が認めた答え
- 文書に含まれる個人データと、PDPAのもとで社外に出せるかどうか
開発チーム向け · チャンキング、タイ語のエンベディング、ハイブリッド検索、テスト
チャンキング:文字数で区切らず、見出しと表の単位で分けます。タイ語には単語間の空白がないためです。文書名、更新日、権限をメタデータとして付けます。タイ語のエンベディング:多言語モデルを、タイ語と英語の混在文や製品コードを含む自社の実際の文章で試します。ハイブリッド検索:タイ語の単語分割を済ませた索引でのBM25とベクトル検索を組み合わせ、リランキングします。権限と日付による絞り込みは検索の段階で行います。テスト:稼働前に自社の実際の業務の例でシステムを試し、何をもって合格とするかを文書の責任者と決めておきます。モデル、プロンプト、分割方法を変えるたびにテストし直します。検索の正しさと、答えが文書に忠実かどうかは分けて測ります。検索で拾った文書に紛れたプロンプトインジェクションも確認します。
タイ企業向けのRAGアシスタントとAIエージェントを、私たちはこう作る
DNA Makerは、モデルを選ぶ前に文書から始めます。よく聞かれる質問にどの文書が答えるのか、その責任者は誰か、誰が何を見られるのかを御社のチームと一緒に洗い出し、まだ準備が整っていない部分ははっきりお伝えします。本番の前には御社の実際の文書と質問で試し、開発中は毎週デモをご覧いただきます。
AIがシステムのデータを書き換えるすべての段階の前に、承認ポイントを置きます。データを社外に出せない場合は、プライベートLLMを御社のサーバーに置き、アクセス権をActive Directoryと連動させます。御社と働くのはDNA Maker自身のチームで、外注はしません。範囲と価格は着手前に確定します。これまでに500件を超えるプロジェクトを手がけ、お客様には銀行、病院、タイの大手企業グループが含まれます。詳しくはAIエージェント & チャットボットとプライベートLLMのページをご覧いただくか、Dreamにご相談内容をお聞かせください。
SOFTWARE ENGINEERING GLOSSARY
ソフトウェア開発用語集
| 用語 | 意味 | わかりやすい例 | 開発チームへの質問 |
|---|---|---|---|
| LLM | 答えを少しずつ書く大規模言語モデル | Dreamはチャットページの返事をLLMで書く | この答えは自社の文書から来たのか、モデルの記憶からなのか |
| RAG | 関係する情報を先に検索し、質問と一緒にモデルに渡す方法 | 人事アシスタントが休暇規程を調べてから答える | 検索で何も見つからないとき、システムは何と答えるのか |
| エンベディング | 文章を、意味を表す数字の並びに変えたもの | 「産休」の質問で「出産に伴う休暇」の項目が見つかる | タイ語と英語が混ざった文で試したか |
| ツール呼び出し | モデルがツールを選び、コードが実行する仕組み | Dreamが目印を置き、コードが価格の幅を入れる | どのツールがデータを書き換えられるのか |
| プライベートLLM | 自社が管理するサーバーで動く言語モデル | 自社のマシンで動く人事アシスタント | 個人データはどの地点で社外に出るのか |
