研究所の分析担当から出る「この試料はどの条件で測ったか」「この分析に使えるメソッドはあるか」の質問に、過去の分析メソッド・装置の条件表・分析報告書を根拠に答え、該当が無いものを分析の責任者へ回す
研究員や分析担当から出る「この試料はどの条件で測ったか」「この分析に使えるメソッドはあるか」という質問に、分析報告書・分析メソッド・装置の条件表を根拠にチャットで答えます。当てはまる記録が無い質問は分析の責任者へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 医療/製造
- 対象部門
- 品質管理/研究開発
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 研究員が窓口のチャットに質問を書く(「試作品Bの分子量、前回はどの条件?」)
- 手の空いた分析担当が質問を読み、依頼番号や試料名、時期の手がかりを聞き返す
- 分析依頼の受付台帳で依頼番号を探し、ファイルサーバーで分析報告書のPDFを開く
- 報告書に書かれたメソッドの番号と版を見て、文書管理の仕組みでその版のメソッドを開く
- 装置の条件表を開き、そのメソッドの装置の設定を確かめる
- 「使えるメソッドはあるか」の質問は、メソッドの一覧を対象物質や測定項目の言葉で探し、適用範囲を読む
- 条件を書き写して返事を書く。見つからなければ装置に詳しい分析担当に聞く
- 人研究員が窓口のチャットで、質問の種類(過去の測定/これからの測定)を選び、質問を書く
- 自動中継プログラムが、質問の文から依頼番号・試料番号・メソッドの番号を取り出し、受付台帳と照らす
- 自動質問の種類に応じて絞り込みを決める(過去の測定は報告書と当時の版、これからの測定は有効な版)
- 自動質問した人の権限で、報告書・メソッド・装置の条件表を探して答えを作らせ、引用を付ける
- 自動答えに含まれる数値が、引用した箇所の原文にあるかを照らす
- 自動根拠が足りない答えと、当てはまる記録が無い質問を分析の責任者の待ち行列へ回す
- 人研究員が引用の原文を開き、条件を確かめて使う
- 人分析の責任者が回ってきた質問に答え、新しい条件が要るものは分析の依頼として受ける
各工程の詳しい説明を読む
- 研究員が窓口のチャットに質問を書く(「試作品Bの分子量、前回はどの条件?」)
- 手の空いた分析担当が質問を読み、依頼番号や試料名、時期の手がかりを聞き返す
- 分析依頼の受付台帳で依頼番号を探し、ファイルサーバーで分析報告書のPDFを開く
- 報告書に書かれたメソッドの番号と版を見て、文書管理の仕組みでその版のメソッドを開く
- 装置の条件表を開き、そのメソッドの装置の設定を確かめる
- 「使えるメソッドはあるか」の質問は、メソッドの一覧を対象物質や測定項目の言葉で探し、適用範囲を読む
- 条件を書き写して返事を書く。見つからなければ装置に詳しい分析担当に聞く
(a)言葉と番号が合わない。 研究員は「試作品B」「昨年の秋の耐熱グレード」と呼び、報告書は試料番号と依頼番号で書かれています。3番目で依頼を特定するまでに、聞き返しと台帳の検索で時間を使います。
(b)版を取り違える。 4番目で、報告書に書かれた版ではなく、文書管理の仕組みで最初に出てくる最新の版を開いてしまうことがあります。改訂でカラムの品番や温度が変わっていると、「前回の条件」として違う条件を返すことになります。
(c)知っているのが装置ごとのベテランだけ。 6番目は、メソッドの適用範囲の書き方がそろっていないので、言葉で探しても当たりません。「それなら○○のメソッドを少し変えれば測れる」と言えるのは、その装置を長く担当した人だけです。 その人が測定で手が離せないと、質問は翌日まで待ちになります。
(d)答えた内容が残らない。 どの報告書を根拠に答えたかが残らず、同じ質問が何度も来ます。
- 【人】 研究員が窓口のチャットで、質問の種類(過去の測定/これからの測定)を選び、質問を書く
- 【自動】 中継プログラムが、質問の文から依頼番号・試料番号・メソッドの番号を取り出し、受付台帳と照らす
- 【自動】 質問の種類に応じて絞り込みを決める(過去の測定は報告書と当時の版、これからの測定は有効な版)
- 【自動】 質問した人の権限で、報告書・メソッド・装置の条件表を探して答えを作らせ、引用を付ける
- 【自動】 答えに含まれる数値が、引用した箇所の原文にあるかを照らす
- 【自動】 根拠が足りない答えと、当てはまる記録が無い質問を分析の責任者の待ち行列へ回す
- 【人】 研究員が引用の原文を開き、条件を確かめて使う
- 【人】 分析の責任者が回ってきた質問に答え、新しい条件が要るものは分析の依頼として受ける
3番目が、この設計の分かれ目です。 「前回どう測ったか」を有効な版で答えると、改訂後の条件を前回の条件として返すことになります。質問の種類を画面で選ばせ、絞り込みを機械的に切り替えます。 生成AIに質問の種類を推定させると、どちらとも読める質問で取り違えます。
5番目を人ではなくプログラムに置いているのも、意図してのことです。 数値の取り違えは、読んでいる人が気づきにくい誤りです。引用した原文に数値が無ければ、その答えは返さずに責任者へ回します。
02今回想定するシステム構成
研究員・分析担当(社内のチャット。質問の種類を選んで質問を書く) │ ▼【トリガー】質問の送信 中継プログラム(Python/Cloud Run) ├──▶ 依頼番号・試料番号・メソッドの番号を取り出し、受付台帳と照らす ├──▶ 質問の種類で絞り込みを決める(報告書と当時の版/有効な版) ▼ Agent Search(Vertex AI Search)の answer メソッド(アクセス制御あり) │ 分析報告書/分析メソッド/装置の条件表 から当てはまる箇所を探す │ 答えと引用、根拠のスコアを返す ▼ 中継プログラム ── 答えの数値が引用した原文にあるかを照らす ▼ 判定(そのまま返す answered / 責任者へ回す escalate) ├──▶ チャットへ(答えと、報告書・メソッドの番号と版、原文の引用) └──▶ 分析の責任者の待ち行列へ(質問と検索の結果を添える)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット・受付台帳・検索・待ち行列をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(報告書・メソッド・条件表の写しとメタデータ、質問と回答の記録) | ─ |
| 認証 | 既存の社内の認証基盤(Workforce Identity Federation でつなぐ) | ─ |
文書管理の仕組みと受付台帳は、新しく作るものではありません。 この構成はそれらの写しを検索の対象にし、答えをチャットに返すだけです。メソッドの版も報告書も書き換えません。最初の準備は、報告書とメソッドに、番号・版・有効か廃止か・装置の番号をメタデータとして付けることです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 公式のドキュメントでは、answer メソッドは検索の結果から回答を作り、前のセッションを渡すとやり取りを続けられるとされています。引用を付ける設定(includeCitations)は既定で無効なので、必ず有効にします。根拠の強さを文ごとに返す設定と、根拠の弱い回答を落とす設定もあります。
見せる文書を人で分けるのは、データソースのアクセス制御です。 分析報告書には、まだ社外に出していない研究テーマの試料が載っています。公式のドキュメントでは、Cloud Storage の文書ごとのメタデータに acl_info を書き、読める人をグループか個人で指定します。この機能はプレビューで、データストアを作るときにしか選べず、後から入れたり外したりはできません。 1文書に付けられる読み手は3,000までで、グループも1つと数えます。
03どうやって実装するのか
処理の起点を決める
起点は、研究員か分析担当が窓口のチャットで質問を送ったことです。 画面は社内の ID でログインした研究所の人だけが使います。送信の前に、質問の種類を「過去の測定」「これからの測定」の2つから選ばせます。
過去の測定では、依頼番号か試料番号を入れる欄を置きます。 分からなければ空でもよく、その場合は試料の呼び名と時期を書いてもらいます。番号が入っていれば、検索の前に受付台帳で依頼を特定でき、聞き返しが要りません。 これからの測定では、測りたい物質、試料の形態、おおよその濃度の範囲を書く欄を置きます。
別の試料の話に移ったら、新しいセッションで始めます。 前の試料の条件が答えに混ざるからです。
索引の更新は別に動かします。 分析報告書が承認されてファイルサーバーに置かれたとき、メソッドの改訂や廃止が文書管理の仕組みで承認されたときに、その文書だけを入れ直します。メソッドの廃止は、検索に反映されるまでの間に古い版が「有効」として返る心配があるので、承認と同時に入れ直します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 質問の種類、本文、依頼番号・試料番号(あれば)、測りたい物質と濃度の範囲 | 窓口のチャット |
| 分析報告書 | 依頼番号、試料番号、使ったメソッドの番号と版、装置の番号、測定条件、結果、測定日 | ファイルサーバー(PDF) |
| 分析メソッド | メソッドの番号と版、有効か廃止か、測定項目、適用範囲(対象物質・濃度の範囲・試料の形態)、操作の手順、条件 | 文書管理の仕組み(DOCX・PDF) |
| 装置の条件表 | 装置の番号、メソッドの番号と版、カラムの品番、温度のプログラム、流量、検出器の設定 | ファイルサーバー(表計算ファイル) |
| 受付台帳 | 依頼番号、試料番号、試料の呼び名、依頼した研究グループ、テーマの区分 | 分析依頼の受付台帳 |
質を決めるのは、報告書の「使ったメソッドの番号と版」の欄です。 この欄が空の報告書は、どの版で測ったかが分からず、当時の条件を答えられません。古い報告書でこの欄が無いものは、測定日と、その日に有効だった版を照らして補う表を別に作ります。
装置の条件表は、メソッドの本文と分けて持ちます。 メソッドの本文には「カラム温度 40℃」と書かれていても、装置ごとの条件表には実際のカラムの品番や温度のプログラムが書かれています。同じメソッドでも装置が違えば設定が違うので、答えには装置の番号を必ず添えます。
データの取得方法を決める
報告書とメソッドは、文書ごとにメタデータを付けて Cloud Storage に置きます。 公式のドキュメントでは、メタデータは JSON Lines の形で1行1文書とし、id、structData(項目と値)、content(mimeType と Cloud Storage の uri)を書きます。1ファイルの上限は200MBで、1回に10万ファイルまで取り込めます。
| メタデータの項目 | 例 | 何に使うか |
|---|---|---|
doc_type | report/method/instrument_sheet | 質問の種類での絞り込み |
method_id・method_version | M-LC-0123・5 | 版の取り違えを防ぐ |
method_status | effective/retired/superseded | 有効な版だけに絞る |
request_id・sample_id | A-2025-1187・S-0442 | 過去の測定の特定 |
instrument_id | LC-07 | 装置ごとの設定の特定 |
measured_on | 2025-10-14 | 時期での絞り込み |
acl_info | 研究グループのグループ | 見せる人の線引き |
method_status などの絞り込みに使う項目は、データストアのスキーマで索引可能にしておきます。 公式のドキュメントでは、絞り込みに使うメタデータの項目は索引可能にする必要があり、ANY() で文字の値の一致、比較の演算子で数値と日付、AND/OR と NOT で組み合わせができます。日付は ISO 8601 の文字列で比べられます。
| 質問の種類 | 絞り込み |
|---|---|
| 過去の測定(番号あり) | request_id: ANY("A-2025-1187") と、報告書に書かれた method_id と method_version の組 |
| 過去の測定(番号なし) | doc_type: ANY("report") と、時期の範囲 measured_on >= "2025-09-01" |
| これからの測定 | doc_type: ANY("method", "instrument_sheet") AND method_status: ANY("effective") |
過去の測定では、報告書を先に引き、そこに書かれた版で2回目の検索をします。 1回目で報告書を特定し、中継プログラムが報告書のメタデータから method_id と method_version を読み、2回目でその版のメソッドと装置の条件表に絞ります。生成AIに「この報告書の版を探して」と頼まず、版の指定はプログラムが行います。
AIへ渡す前に整形する
- レイアウトパーサーで読む … 報告書・メソッド・条件表を、表と見出しを検出するパーサーで取り込みます
- 見出しを分割に付ける … メソッドの途中の段落にも、メソッドの番号と見出しが付くようにします
- 分割の大きさを決める … 条件の表が途中で切れない大きさにします
- 古い報告書の版を補う … 版の欄が無い報告書は、測定日とその日に有効だった版の表から補い、補ったことをメタデータに残します
- 呼び名をそろえる … 試料の呼び名と試料番号の対応を受付台帳から作り、質問の呼び名を番号に置き換えて探します
- スキャンの報告書を確かめる … 古い紙の報告書のスキャンは、数値が読めているかを20件ほど抜き出して確かめます
1番目と2番目は、データストアを作る前に決めます。 公式のドキュメントでは、レイアウトパーサーは PDF・HTML・DOCX・PPTX・XLSX・XLSM を扱い、段落・表・見出しなどを検出します。分割の大きさは100〜500トークン(既定は500)で、includeAncestorHeadings は既定で無効、分割の設定はデータストアを作った後に切り替えられません。 パーサーを後から変えても、すでに取り込んだ文書は読み直されません。メソッドの途中の条件の段落にメソッドの番号が付いていないと、どのメソッドの条件か分からない引用が返ります。 includeAncestorHeadings は必ず有効にします。
AIに処理させる
検索と回答の作成は、answer メソッドに任せます。 中継プログラムが渡すのは、質問の文、絞り込み、前のセッション、指示の前置き(preamble)です。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 答えの文ごとに引用を付ける。既定は無効 |
ignoreLowRelevantContent | 有効 | 関連の薄い結果しか無いときは答えを作らない |
ignoreNonAnswerSeekingQuery | 有効 | あいさつや雑談に答えを作らない |
groundingSpec の filteringLevel | FILTERING_LEVEL_HIGH | 根拠の弱い答えを落とす |
includeGroundingSupports | 有効 | 文ごとの根拠のスコアを受け取る |
maxReturnResults | 10 | 既定は10、上限は25 |
関連の薄い結果しか無いとき、answer は答えの代わりに理由を返します。 公式のドキュメントでは、ignoreLowRelevantContent を有効にすると関連の薄いときに NO_RELEVANT_CONTENT、FILTERING_LEVEL_HIGH の基準に届かないときに LOW_GROUNDED_CONTENT が answerSkippedReasons に入ります。この2つは「当てはまる記録が無い」として、分析の責任者へ回す合図にします。
生成AIにさせることは、3つに限ります。
| させること | 中身 |
|---|---|
| 当てはまる文書の特定 | 報告書なら依頼番号と試料番号、メソッドなら番号と版 |
| 条件の引用 | 装置の番号、カラム、温度、流量、検出の設定を原文のまま |
| 適用範囲との照らし合わせ | これからの測定で、物質と濃度の範囲がメソッドの適用範囲に入るか、原文の記載を示す |
| させないこと | 理由 |
|---|---|
| 新しい条件の提案 | 条件を決めるのは分析の責任者。メソッドの妥当性の確認が要る |
| 条件の要約や丸め | 数値を書き換えると、別の条件になる |
| 版の推定 | 版は報告書のメタデータからプログラムが決める |
| 適用範囲の外への拡張 | 「おそらく測れる」と書かせない |
1行目と4行目が、いちばん起きやすい失敗です。 適用範囲が「0.1〜10%」のメソッドについて「0.01%を測れるか」と聞くと、生成AIは「感度を上げれば測れる可能性があります」と書きがちです。それは新しいメソッドの検討で、分析の責任者が決めることです。
指示内容を固定する
answer メソッドの promptSpec の preamble に、次の指示を入れます。
あなたは研究所の分析センターで、過去の分析の記録と分析メソッドを
研究員に案内する立場です。
検索結果(分析報告書、分析メソッド、装置の条件表)に書かれていることだけを
根拠にしてください。
【答え方】
1. 最初に、根拠にした文書を書いてください。
報告書なら依頼番号と試料番号、メソッドなら番号と版、条件表なら装置の番号。
2. 条件は、検索結果に書かれている数値と単位をそのまま書いてください。
丸めたり、単位を換算したり、範囲をまとめたりしないでください。
3. 「これから測れるか」の質問では、メソッドの適用範囲の記載を示し、
質問の物質と濃度がその範囲に入るかだけを書いてください。
【厳守事項】
- 検索結果に無い条件を書かないでください。書かれていなければ
「記載なし」としてください。
- 新しい条件や、メソッドを変えれば測れるといった提案をしないでください。
- 適用範囲の外のものを「測れる可能性がある」と書かないでください。
範囲の外なら「適用範囲の外」とだけ書いてください。
- 複数の版のメソッドが見つかっても、版を混ぜて答えないでください。
- 別の試料や別の依頼の条件を、この質問の答えに使わないでください。
- 研究テーマの内容や、試料の組成について推測しないでください。
「単位を換算しない」を明記しないと、mL/min を µL/min に直したり、℃の範囲を中央の値にまとめたりします。 どれも正しい計算でも、原文と見比べたときに一致しなくなり、確かめる時間が増えます。
出力形式を固定する
answer の応答から、中継プログラムが次の形に組み立ててチャットへ返します。 公式のドキュメントでは、応答の citations に答えの中の位置(startIndex・endIndex)と出典の参照が入り、references に分割の本文(chunkInfo の content)と文書のメタデータ(uri・title)が入ります。位置は文字ではなく UTF-8 のバイトで数えられるので、日本語の答えを切り出すときはバイト列で扱います。
{
"question_id": "",
"question_type": "past_measurement | new_measurement",
"answer_text": "",
"sources": [
{
"doc_type": "report | method | instrument_sheet",
"doc_id": "",
"method_id": "",
"method_version": "",
"method_status": "effective | retired | superseded",
"instrument_id": "",
"quoted_text": ""
}
],
"number_check": "passed | failed",
"route": "answered | escalate",
"escalate_reason": "no_record | low_grounding | number_mismatch | out_of_range | retired_only"
}
1つ目の理由は、number_check を答えの外に持てることです。 中継プログラムは、answer_text に出てくる数値と単位の組を取り出し、quoted_text(引用した分割の本文)に同じ組があるかを照らします。1つでも無ければ failed にし、答えを返さずに escalate にします。
2つ目は、method_status を答えに見せられることです。 過去の測定の答えに廃止した版が出てくるのは正しいことですが、読む人が「いまも使える」と取らないよう、版の状態を答えの横に出します。
3つ目は、escalate_reason で責任者の待ち行列を仕分けられることです。 記録が無いのか、範囲の外なのか、数値が合わないのかで、責任者がすることが違います。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 窓口のチャット | 質問の受け取りと返事 | 質問の種類と本文を受け、答えを返す |
| 受付台帳 | 読み取り | 依頼番号・試料番号・呼び名の対応を引く |
| Agent Search の answer メソッド | 質問した人の権限での呼び出し | 絞り込みと前置きを付けて答えを作らせる |
| 文書管理の仕組み | 承認の通知と読み取り | メソッドの改訂・廃止を受けて入れ直す |
| 分析の責任者の待ち行列 | 書き込み | 回す質問と検索の結果を渡す |
answer の呼び出しは、質問した人の権限で行います。 公式のドキュメントでは、アクセス制御を使うときは利用者のグループに discoveryengine.servingConfigs.answer などの権限を持つカスタムのロールを付けることが勧められ、社外の ID 基盤(Microsoft Entra ID など)は Workforce Identity Federation でつなぎます。中継プログラムの権限で代わりに呼ぶと、質問した人が見られない報告書が答えに出ます。
人が確認する
- 引用の確認(研究員) … 答えの引用から原文を開き、依頼番号・版・装置の番号を確かめてから条件を使います
- 回ってきた質問への回答(分析の責任者) … 記録が無いもの、範囲の外のもの、数値が合わなかったものに答えます
- 新しい測定の受付(分析の責任者) … 既存のメソッドで測れないものは、分析の依頼として受けます
- 答えの当たり外れ(研究員) … 答えが役に立ったかを、チャットのボタンで残します
目安は、300件をならして1件6分です。 研究員が引用を開いて確かめる時間と、責任者が回ってきた質問に答える時間を合わせた平均です。回る質問は2割前後という想定で、それより多い月は、メタデータの版の欄が足りていないか、適用範囲の書き方がそろっていません。
人が条件を使う前に原文を開くことは、省かないでください。 数値の照合はプログラムで行っていますが、照合できるのは「引用した箇所にその数値があるか」までで、その箇所が質問の試料の記録かどうかは人が見ます。
例外に対処する
| 起きること | 対応 |
|---|---|
当てはまる記録が無い(NO_RELEVANT_CONTENT) | 「記録なし」と返し、責任者へ回す。無理に近いものを並べない |
根拠が弱い(LOW_GROUNDED_CONTENT) | 答えを返さず、検索の結果の文書名だけを添えて責任者へ回す |
| 答えの数値が引用に無い | number_mismatch で責任者へ回す |
| 依頼番号が受付台帳に無い | 番号の打ち間違いを疑い、質問した人に聞き返す |
| 報告書に版の欄が無く、補う表でも決まらない | 当時の版が決まらない、と書いて責任者へ回す |
| 有効な版が無く、廃止した版だけが当たる | retired_only で責任者へ回す |
| 質問した人のグループが引けない | 検索をしない。中継プログラムの権限で代わりに探さない |
| answer の応答が失敗する | 窓口の分析担当へ質問をそのまま回す |
7行目が、この構成でいちばん大事な止め方です。 グループが引けないときに中継プログラムの権限で探すと、その1回だけ、未公開のテーマの報告書が別の研究グループに届きます。 引けなければ止めます。
記録を残す
- 受け取った質問、質問の種類、質問した人、取り出した番号
- 渡した絞り込みと前置き、answer の応答の全文(答え、引用、根拠のスコア、
answerSkippedReasons) - 数値の照合の結果と、合わなかった数値
- 返した答えか、回した理由
- 研究員が付けた当たり外れと、責任者が答えた内容
2行目で応答の全文を残すのは、答えの誤りを後から確かめるためです。 誤った条件で測った試料が後で見つかったとき、どの文書のどの箇所を根拠に答えたかが分からないと、同じ誤りが他にも出ていないかを確かめられません。
04実装レベルの3段階
半自動化で、1件20分が12分程度になります。 文書は探しやすくなりますが、分析担当が検索の画面を開くこと、版を確かめること、返事を書くことが残ります。本格構成で6分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月回すと、版の欄が無い報告書と、適用範囲の書き方がそろっていないメソッドの数が分かります。
05工数削減シミュレーション
導入後 300件 × 6分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 化学・素材・食品・医薬などのメーカーの研究所で、分析センターや分析グループが研究員から測定を受け、分析メソッド(標準作業手順書)と分析報告書が文書管理の仕組みやファイルサーバーに数百〜数千件たまっている場合。「前にこの試料をどう測ったか」「このメソッドで測れるか」の質問が分析担当に集まり、答えられるのが装置ごとのベテランに限られている場合。メソッドに版の管理があり、有効な版と廃止した版を区別できる場合。
- 分析メソッドが文書になっておらず、装置の前のメモや個人のノートにしか条件が残っていない場合(先に文書にするのが先です)。分析報告書に使ったメソッドの番号と版が書かれていない場合。新しい分析条件の設計やメソッドの妥当性の評価までAIに任せたい場合(この構成は過去の記録と有効なメソッドを引くだけで、条件を決めるのは分析の責任者です)。研究データを社外のクラウドに置くことが社内の規程で認められていない場合。
07最小構成で試す方法
- 先月の窓口のチャットから、質問を20件選ぶ(過去の測定10件、これからの測定10件)
- それぞれについて、分析担当が当時根拠にした報告書・メソッド・条件表を集める
- 手元のAIサービスの画面に、集めた文書と質問を貼り付ける
- 「この文書だけを根拠に答えてください。条件は数値と単位をそのまま書き、書かれていなければ記載なしとしてください。新しい条件を提案しないでください」と指示する
- 当時の分析担当の答えと比べる
最小構成で確かめたいのは、文書の書き方で答えられるかです。 探すのはまだ人です。未公開のテーマの報告書は、この段階では使いません。
| 出てきた内容 | 判断 |
|---|---|
| 当時の答えと同じ条件が出た | メタデータを付けて検索の仕組みに進む |
| 数値を丸めたり、換算したりした | 指示の書き方で直る。構成は有効 |
| 報告書に版が書かれておらず答えられない | 報告書の様式を直すのが先。 AIの問題ではない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 過去の測定に有効な版の条件を返す | 質問の種類を画面で選ばせ、報告書の版で2回目を絞る |
| 答えの数値が丸められている | 原文のまま書かせ、引用に同じ数値があるかをプログラムで照らす |
| 条件の段落にメソッドの番号が付いていない | includeAncestorHeadings を有効にする。作った後は変えられない |
| 条件表の列の見出しと値がずれる | 表の多い文書を試しに取り込み、対応を確かめる。表の注釈の機能も試す |
| 引用の位置で日本語が文字化けする | 位置は UTF-8 のバイトで数えられる。バイト列で切り出す |
| 適用範囲の外を「測れる可能性」と書く | 範囲の外は「適用範囲の外」とだけ書かせ、責任者へ回す |
| 廃止の承認が索引に反映されず古い版が返る | 承認と同時に入れ直す。反映までの時間を毎月数える |
| 中継プログラムの権限で探し、未公開の報告書が出る | 質問した人の権限で呼び、グループが引けなければ止める |
上の2行が、この構成の失敗のほとんどです。 どちらも、読む人が気づきにくい数値の取り違えから来ています。版を決めるのも数値を照らすのもプログラムの側に置くかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 分析報告書(未公開の研究テーマの試料と結果を含む)、分析メソッド、装置の条件表、研究員の質問です。どれも研究開発の成果そのものか、その所在を示す情報です。
- 閲覧の線引きを研究グループと同じにする … 報告書の
acl_infoは、受付台帳の依頼元の研究グループから作ります。アクセス制御はプレビューの機能なので、社内の基準でプレビューの機能を使ってよいかを先に確かめます。 使えない場合は、閲覧の範囲ごとにデータストアを分けます - 外部のクラウドに置いてよい区分を決める … 研究データを Google Cloud に置くことが社内の規程で認められているかを、先に確かめます。特に重要な共同研究の報告書は、契約で外部への持ち出しが制限されていることがあります
- 答えを条件の決定に使わせない … 答えは過去の記録と有効なメソッドの案内までです。新しい条件で測るかどうかは、分析の責任者が決めます
- 質問の記録を研究の情報として扱う … どの試料をどう測ろうとしているかが分かる記録です。見られる人を分析センターの管理者に限ります
誤りが起きた場合のリスクは、違う版や違う試料の条件で測ってしまうことと、見られないはずの報告書が他のグループに届くことの2つです。 前者は版の絞り込みと数値の照合で、後者は質問した人の権限での呼び出しと「引けなければ止める」で防ぎます。
10まず何から始めるか
1週目:報告書の様式に欄を足す
分析報告書の様式に、「メソッドの番号と版」「装置の番号」の欄を足します。今月の報告書から書くようにし、古い報告書の版を補う表(測定日とその日に有効だった版)を品質保証部と作り始めます。
2週目:20件で試す
先月の質問20件について、当時の根拠の文書を手元のAIサービスに貼り、条件を引用させます。数値を丸めたり換算したりしていないかを最優先で見ます。 未公開のテーマの報告書はまだ使いません。
3週目:メタデータと閲覧の線引きを決める
メタデータの項目(第7章の表)と、研究グループごとのグループを決めます。アクセス制御を使うか、データストアを分けるかを、ここで決めます。 分割の設定もここで決めます。
4週目:メソッドと条件表だけで索引を作る
有効なメソッドと装置の条件表を取り込み、「これからの測定」の質問だけを検索の画面で試します。有効な版だけが返り、条件表の列がずれていないかを確かめます。
2か月目: 直近3年分の報告書を入れ、「過去の測定」の2回の検索と数値の照合を足し、窓口のチャットにつなぎます。3か月目以降: 責任者へ回った理由を毎週数え、版の欄が無い報告書と適用範囲の書き方を直し、1件20分が何分になったかを実測します。ベテランに聞かなくても、過去の条件を版と装置の番号付きで返せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが検索結果から回答を作り、前のセッションでやり取りを続けられること。includeCitations(既定は無効)、ignoreLowRelevantContent、ignoreNonAnswerSeekingQuery、promptSpec の preamble、searchParams の filter と maxReturnResults(既定10、上限25)。groundingSpec の includeGroundingSupports と filteringLevel(FILTERING_LEVEL_LOW/HIGH)。answerSkippedReasons の NO_RELEVANT_CONTENT と LOW_GROUNDED_CONTENT。citations の startIndex/endIndex が UTF-8 のバイト単位であること。references の chunkInfo と文書のメタデータ | Google Cloud: Get answers and follow-ups | 2026-10-09 |
レイアウトパーサーが PDF・HTML・DOCX・PPTX・XLSX・XLSM を扱い、段落・表・見出しなどを検出すること。表の注釈の機能。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings が既定で無効、分割の設定はデータストアの作成後に切り替えられないこと。パーサーの変更が新しく取り込む文書にだけ効くこと | Google Cloud: Parse and chunk documents | 2026-10-09 |
絞り込みの ANY()、比較の演算子、AND/OR、NOT、日付を ISO 8601 の文字列で比べられること、項目を索引可能にする必要があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-09 |
データソースのアクセス制御がプレビューであること。Cloud Storage では acl_info の readers に principals(group_id か user_id)を書くこと。データストアの作成時にしか選べないこと。1文書の読み手が3,000までであること。社外の ID 基盤は Workforce Identity Federation でつなぐこと。利用者に discoveryengine.servingConfigs.answer などを含むカスタムのロールを付けることが勧められていること | Google Cloud: Set up data source access control | 2026-10-09 |
非構造化データの対応形式(PDF・HTML・DOCX・PPTX・XLSX など)。1ファイル200MB、1回に10万ファイルまで取り込めること。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-09 |
分析条件の決定とメソッドの妥当性の確認は、各社の手順に沿って分析の責任者が行ってください。 本記事は Google Cloud の公式ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1201)についてのご相談はこちらから。
