地熱発電所の運転員が、運転の記録・過去のトラブルの対処記録・メーカーの技術資料を Vertex AI Search で検索し、異常の兆候から対処の前例とその後の経過を根拠付きで引く
運転員が異常の兆候に気づいたとき、設備の番号と兆候の書き方から、過去の対処記録・運転日誌・メーカーの資料を検索します。似た兆候の前例と、そのときの処置、その後の経過を引用付きで返します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/自治体/製造
- 対象部門
- 生産
- 対象業務
- 情報検索/記録・議事録作成
- 主な課題
- 属人化している/引き継ぎができていない/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/属人化解消/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 運転員が監視の画面で、ある坑井の坑口の圧力が数日かけて下がっていることに気づく
- トラブルの対処記録の表計算のファイルを開き、同じ坑井の番号で行を絞る
- 運転日誌のファイルを、思い当たる年と月から1日ずつ開き、同じ坑井の記事を探す
- メーカーの資料と運転の要領で、関係する設備の点検の箇所を探す
- 当直の責任者に、前例と気づいたことを報告する
- 当直の責任者が、処置と、運転の条件を変えるかを決める
- 交代のときに、調べた前例と経過を次の班に引き継ぐ
- 人運転員が兆候に気づき、調査の画面で設備の番号を選び、兆候を短い文で書いて送信する
- 自動設備の番号から、設備の種類・つながる坑井と配管・直近の点検の日を引き、絞り込みの条件と問い合わせ文を組み立てる
- 自動Vertex AI Search(Agent Search)の answer メソッドで、事象の記録・メーカーの資料・運転の要領を検索し、似た前例と処置、その後の経過を引用付きでまとめさせる
- 自動同じ設備の事象の記録の一覧を、search メソッドで発生日の新しい順に並べる
- 自動引用の無い文と、根拠の支持の度合いが低い答えを外す。運転の条件の変更にふれる前例に印を付ける
- 人運転員が引用の原文と一覧を見て、前例が今回と似ているかを確かめ、当直の責任者に報告する
- 人当直の責任者が、処置と、運転の条件を変えるかを保安規程と運転の要領に従って決める
- 【自動/人】 調べた前例と経過を、引き継ぎの欄に残す。事象が終わったら、運転員が事象の記録を確かめて登録する
各工程の詳しい説明を読む
- 運転員が監視の画面で、ある坑井の坑口の圧力が数日かけて下がっていることに気づく
- トラブルの対処記録の表計算のファイルを開き、同じ坑井の番号で行を絞る
- 運転日誌のファイルを、思い当たる年と月から1日ずつ開き、同じ坑井の記事を探す
- メーカーの資料と運転の要領で、関係する設備の点検の箇所を探す
- 当直の責任者に、前例と気づいたことを報告する
- 当直の責任者が、処置と、運転の条件を変えるかを決める
- 交代のときに、調べた前例と経過を次の班に引き継ぐ
(a)前例が日付に散らばっている。 3番で、気づいた日、処置をした日、効いたかを見た日が、別々の日のファイルに、ほかの記事に混ざって書かれています。 1件の前例をつなげて読むのに、何日分ものファイルを開くことになります。
(b)思い当たる年を知っている人が限られる。 3番で、どの年に似たことがあったかは、その坑井を長く担当した運転員だけが覚えています。
(c)対処記録に「その後」が無い。 2番で、処置は書かれていても、効いたか、何日で戻ったか、再発したかは、後の日誌にしか書かれていません。 効かなかった処置を、もう一度試すことがあります。
(d)交代で経過が切れる。 7番で、兆候はゆっくり進むので、1件の調べものが何班にもまたがります。 前の班が何を調べ、どの前例を見たかが残っていないと、次の班が同じファイルを開き直します。
- 【人】 運転員が兆候に気づき、調査の画面で設備の番号を選び、兆候を短い文で書いて送信する
- 【自動】 設備の番号から、設備の種類・つながる坑井と配管・直近の点検の日を引き、絞り込みの条件と問い合わせ文を組み立てる
- 【自動】 Vertex AI Search(Agent Search)の answer メソッドで、事象の記録・メーカーの資料・運転の要領を検索し、似た前例と処置、その後の経過を引用付きでまとめさせる
- 【自動】 同じ設備の事象の記録の一覧を、search メソッドで発生日の新しい順に並べる
- 【自動】 引用の無い文と、根拠の支持の度合いが低い答えを外す。運転の条件の変更にふれる前例に印を付ける
- 【人】 運転員が引用の原文と一覧を見て、前例が今回と似ているかを確かめ、当直の責任者に報告する
- 【人】 当直の責任者が、処置と、運転の条件を変えるかを保安規程と運転の要領に従って決める
- 【自動/人】 調べた前例と経過を、引き継ぎの欄に残す。事象が終わったら、運転員が事象の記録を確かめて登録する
2番目の前に、記録を事象の単位に束ねておくのが、この設計の要です。 日誌の記事から、同じ設備の同じ事象にあたるものを1件の記録にまとめ、気づいた日、処置、その後の経過、終わった日を1つの文書に並べます。 そうしておけば、答えの1つの引用で「何をして、どうなったか」まで読めます。
5番目で運転の条件の変更に印を付けるのも、意図してのことです。 前例に「還元の量を減らした」と書かれていても、それは当時の責任者が、当時の状態で決めたことです。 画面では、前例の事実として示し、手順としては示しません。
02今回想定するシステム構成
監視の画面で兆候に気づく(坑口の圧力・蒸気の流量・真空・ガスの濃度) ▼【トリガー】調査の画面で設備の番号と兆候の文を送信 中継プログラム(Python。Cloud Run) │ 設備台帳から設備の種類・つながる坑井と配管・点検の日を引く │ 設備の番号の完全一致の絞り込み、兆候の問い合わせ文を組み立てる ▼ Vertex AI Search(Agent Search) ├── answer メソッド ── 似た前例・処置・その後の経過(引用つき) └── search メソッド ── 同じ設備の事象の記録の一覧(新しい順) │ データストア:事象の記録、メーカーの資料、運転の要領 ▼ 中継プログラム ── 引用の無い文と支持の低い答えを外す。条件の変更の印 ▼ 調査の画面(答え/引用した原文/一覧/引き継ぎの欄) ▼ 【運転員が原文で前例を確かめて報告】→【当直の責任者が処置と運転の条件を決める】 ▼ 事象の記録の下書き(事象が終わったら運転員が確かめて登録)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッドと search メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ― |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、調査の画面・設備台帳・検索・記録の書き出しをつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(事象の記録と資料の写し、メタデータ、問い合わせと答えの記録) | ― |
監視制御のシステムには、何もつなぎません。 運転データは画面で運転員が読み、兆候の文として書きます。制御の側へ書き込む経路を最初から持たないことで、検索の誤りが運転に届かないようにします。 新しく作るのは、日誌の記事を事象に束ねる作業と、調査の画面です。
土台は、Vertex AI Search の answer メソッドです。 公式ページでは、answer メソッドは検索の結果から回答を作り、回答の文ごとに出典を示す引用を付けられるとされています。主張ごとの根拠の支持の度合い(support score)は0から1の値で返ります。公式ページには、Vertex AI Search が Agent Search へ改称中である旨の記載があります。
03どうやって実装するのか
処理の起点を決める
運転員が調査の画面で、設備の番号を選び、兆候の文を書いて送信したことを起点にします。 監視の数字から自動で起動する形にはしません。数字の変化の多くは、季節や出力の調整による、説明のつくものです。 調べるかどうかは、画面を見た運転員が決めます。
送信すると、answer メソッドと search メソッドを同時に呼びます。 公式ページでは、10件を超える検索結果がほしいときや、答えの生成を待たずに結果を先に見せたいときは、search メソッドと answer メソッドを一緒に使うとされています。一覧が先に出て、答えはそのあとに出ます。
同じ兆候を次の班が調べ直すときは、同じ会話として続けます。 公式ページでは、前の問い合わせのセッションを渡すと、続きとして問えるとされています。調査の画面は、事象ごとにセッションの ID を持たせ、引き継ぎの欄と一緒に次の班へ渡します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 調査の依頼 | 設備の番号、兆候の文、気づいた日時、運転員 | 調査の画面 |
| 設備台帳 | 設備の種類、つながる坑井と配管、設置の年、直近の点検・清掃の日 | 設備の管理の台帳 |
| 事象の記録 | 設備の番号、事象の種類、気づいた日、兆候、処置、その後の経過、終わった日、効いたかどうか | データストア |
| メーカーの資料 | タービン・気水分離器・ガスの抽出の装置の取扱説明書と技術資料 | データストア |
| 運転の要領 | 異常のときの連絡、点検の手順、保安規程に基づく判断の手続き | データストア |
質を決めるのは、事象の記録の「その後の経過」と「効いたかどうか」の項目です。 15年分の日誌から束ねるときに、処置の後の日付の記事を読み、効いた・一部効いた・効かなかった・不明の4つのどれかを付けます。 不明のまま残すものもありますが、空欄にはしません。
記録からは、人の名前と外部との連絡の中身を外して入れます。 日誌には、連絡した相手や当番の名前が書かれています。検索に要るのは設備の状態と処置で、人の名前は要りません。 書き出しの段で、決まった欄と名前の一覧に当たる文字列を消します。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 事象の記録 | 日誌と対処記録から束ねた事象を、1件を1つの文書にした JSONL のメタデータと本文 | データストアの中身 |
| メーカーの資料・運転の要領 | 受け取った PDF と Word を Cloud Storage へ写し、設備の種類・版をメタデータに | データストアの中身 |
| 設備台帳 | 設備の管理の台帳の書き出し | 絞り込みの条件 |
| 答えと一覧 | answer メソッドと search メソッドの応答 | 調査の画面 |
事象は、1件を1つの文書にしてメタデータを付けます。 公式ページでは、非構造のデータのメタデータは JSON Lines(NDJSON)のファイルで、各行に id、structData(または jsonData)、Cloud Storage の文書を指す content の mimeType と uri を持たせるとされています。1件は、たとえば次の1行にします。
{"id": "evt-2024-0137",
"structData": {"doc_kind": "event", "equipment_ids": ["PW-07", "SEP-2"],
"equipment_type": "production_well", "event_kind": "流量の低下",
"noticed_at": "2024-02-11", "closed_at": "2024-03-04",
"outcome": "一部効いた", "operation_change": true},
"content": {"mimeType": "text/plain", "uri": "gs://<bucket>/event/evt-2024-0137.txt"}}
本文の文書には、日付順に日誌の記事の抜き書きを並べます。 「2月11日 坑口の圧力が下がり始めた」「2月15日 坑内の点検を依頼」「3月4日 流量が戻った」のように、元の日誌のファイル名と日付を各行に付けます。 引用から元のファイルに戻れるようにするためです。
過去の15年分の束ね直しは、一度だけの大きな作業です。 そのあとは、事象が終わるたびに運転員が下書きを確かめて登録し、毎晩の書き出しで足します。公式ページでは、取り込めるファイルの上限は200MBで、一度に100,000ファイルまで取り込めるとされています。
メーカーの資料は、データストアを作るときに文書の分割(チャンキング)とレイアウトの解析を有効にします。 公式ページでは、RAG に使うならデータストアを作るときに文書の分割を有効にするよう勧められています。分割はデータストアを作ったあとに有効・無効を切り替えられず、見出しを各チャンクに付ける includeAncestorHeadings は既定で無効です。取扱説明書は章と節で意味が決まるので、作るときに有効にします。
AIへ渡す前に整形する
- 設備の特定 … 設備の番号から、設備の種類と、つながる坑井・気水分離器・配管を引きます
- 番号の正規化 … 全角・半角、ハイフンの有無をそろえ、記録と同じ表記にします
- 絞り込みの条件の組み立て … 選んだ設備と、つながる設備の番号のどれかに一致する事象に絞ります
- 資料の絞り込み … メーカーの資料は、設備の種類が合うものに絞ります
- 問い合わせ文の作成 … 兆候の文に、設備の種類と季節を足して問い合わせ文にします
3番目で、つながる設備まで広げるのが地熱らしいところです。 気水分離器の兆候の前例は、その分離器の番号ではなく、つながる生産井の番号で書かれていることがあります。 設備台帳のつながりを使い、絞り込みの条件を「この設備か、つながる設備のどれか」にします。
絞り込みの条件は、たとえば次のようになります(公式ページの書き方による)。
filter(事象の記録):
doc_kind: ANY("event")
AND equipment_ids: ANY("PW-07", "SEP-2", "PIPE-07A")
AND noticed_at >= "2011-01-01"
filter(メーカーの資料):
doc_kind: ANY("manual") AND equipment_type: ANY("separator")
公式ページでは、ANY は指定した値のどれかに完全に一致するときに真になり、日付の項目は ISO 8601 の文字列で比べられるとされています。絞り込みに使う項目は、スキーマの画面でインデックス可能にしておく必要があります。answer メソッドの検索の段でも、絞り込みを指定できるとされています。
AIに処理させる
answer メソッドにさせるのは、絞り込んだ事象の記録と資料から、今回の兆候に近い前例を探し、処置とその後の経過、関係する資料の箇所を引用付きで短くまとめることです。 判断はさせません。
| 返させるもの | 中身 | 返せないときの扱い |
|---|---|---|
| 似た兆候の前例 | 事象の ID、気づいた日、兆候の書き方 | 見つからなければ「前例なし」 |
| そのときの処置 | 処置の内容、処置の日 | 記録に無ければ「記録なし」 |
| その後の経過 | 効いたかどうか、戻るまでの日数、再発の有無 | 記録に無ければ「経過の記録なし」 |
| 関係する資料の箇所 | 資料の名前、章・節、版 | 無ければ「該当なし」 |
| 運転の要領の手続き | 連絡と判断の手続きの該当箇所 | 原文のまま引用する |
| させないこと | 理由 |
|---|---|
| 原因を断定する | 地下の状態は、点検と調査で技術者が決める |
| 運転の条件の変更を勧める | 保安規程に基づく手続きで責任者が決める |
| 出力を下げる・止める判断を言う | 当直の責任者と電気の保安の責任者が決める |
| 前例の数値を今回に当てはめる | 坑井の状態は年ごとに変わる |
| 別の設備の前例を、この設備のものとして書く | つながりの無い設備では、兆候の意味が違う |
2行目がいちばん大事です。 前例の処置には、還元の量や蒸気の配分を変えたものが含まれます。前例として読むことと、今回の処置として勧めることは別です。 中継プログラムは、operation_change が真の事象を引用した文に印を付けます。
指示内容を固定する
answer メソッドでは、回答の口調や詳しさをプロンプトの前置き(preamble)で指定できます。前置きを次のようにします。
あなたは地熱発電所の運転の記録の係です。運転員が気づいた異常の兆候について、
検索で見つかった事象の記録、メーカーの資料、運転の要領だけを根拠に、
次の順で短く答えてください。
1. 似た兆候の前例(事象のID、気づいた日、兆候の書き方)
2. そのときの処置と処置の日
3. その後の経過(効いたかどうか、戻るまでの日数、再発の有無)
4. 関係する資料の箇所(資料の名前、章・節、版)
5. 運転の要領の連絡と判断の手続きの該当箇所
守ること:
- 原因を断定しないでください。前例として、根拠の箇所を示してください。
- 運転の条件を変える、出力を下げる、止めるといった判断を勧めないでください。
前例にそうした処置があっても、「当時の処置」として書いてください。
- その後の経過が記録に無い前例は、「経過の記録なし」と書いてください。
効いたものとして扱わないでください。
- 設備の番号、数値、単位は原文の表記のまま写してください。
- 別の設備の前例を、この設備のものとして書かないでください。
- 検索結果に無いことを書かないでください。見つからなければ「前例なし」としてください。
「経過の記録なし」を効いたものとして扱わない、を書くのは、文章が自然に「処置をして解決した」と結ぼうとするからです。 前例の半分近くは、効いたかどうかが日誌から読み取れないかもしれません。それを効いたように書くと、効かなかった処置が繰り返されます。
あわせて、answer メソッドの設定を次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
引用(includeCitations) | 有効 | 文ごとに出典を示させる |
関連性の低い内容の無視(ignoreLowRelevantContent) | 有効 | 関係の薄い前例から無理に答えさせない |
根拠の支持による絞り込み(groundingSpec の filteringLevel) | FILTERING_LEVEL_HIGH から試す | 支えの弱い答えを外す。未設定だと絞り込みが掛からない |
回答の言語(answerLanguageCode) | ja | 日本語で答えさせる |
絞り込み(filter) | 前処理で組み立てた条件 | 設備とつながる設備 |
検索の件数(maxReturnResults) | 25 | 答えに使える上限。残りは search メソッドの一覧で見る |
公式ページでは、filteringLevel を入れなければ支持の度合いによる絞り込みは掛からず、支持が基準に届かない答えは返されず、LOW_GROUNDED_CONTENT として理由が返るとされています。返されなかったときの画面の出し方は、例外処理で決めます。
出力形式を固定する
中継プログラムが、2つの呼び出しの応答を次の形にそろえて調査の画面に渡します。
{
"request_id": "",
"equipment_id": "",
"related_equipment": [],
"symptom_text": "",
"answer_text": "",
"support_score": 0.0,
"skipped_reason": "",
"citations": [
{ "sentence": "", "doc_kind": "", "doc_id": "", "section": "", "quote": "", "operation_change_flag": false }
],
"events_all": [
{ "event_id": "", "noticed_at": "", "closed_at": "", "event_kind": "", "outcome": "" }
],
"outcome_stats": { "effective": 0, "partial": 0, "not_effective": 0, "unknown": 0 },
"handover": { "checked_events": [], "reported_to": "", "next_check": "", "session_id": "" }
}
1つ目の理由は、events_all と outcome_stats を答えと別に持てることです。 同じ設備の前例が、効いた・効かなかった・不明でそれぞれ何件あるかが、答えの文を読む前に分かります。不明が多ければ、答えの前例を読むときに慎重になれます。
2つ目は、operation_change_flag で印を持てることです。 真の引用は、画面で色を変え、横に運転の要領の判断の手続きの箇所を並べます。
3つ目は、handover に session_id を持てることです。 次の班は、同じ会話の続きとして問い直せます。ゆっくり進む兆候では、調べものが何日も続くからです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 調査の画面 | 中継プログラムの API | 依頼の受け取りと結果の表示 |
| Vertex AI Search | answer メソッドと search メソッドの API | 答え、引用、支持の度合い、事象の一覧 |
| 設備の管理の台帳 | 書き出しの読み取り | 設備の種類とつながり |
| Cloud Storage | 事象の記録と資料の写し | 引用した箇所の原文の表示 |
| 事象の記録 | 下書きの書き出し | 兆候・処置・経過の下書き |
事象の記録の登録は、事象が終わってから運転員が確かめて行います。 中継プログラムは、引き継ぎの欄と日誌から下書きを作るまでです。事象の記録は次の検索の材料なので、確かめていない文が混ざると、誤りが次の答えに入ります。
アプリとデータストアのつなぎ方は、最初に決めます。 公式ページでは、データストアをアプリにつないだあとは外せないとされています(複数のデータストアをつなぐ検索では、2つ以上を残す範囲で足し外しできる)。メーカーとの取り決めで見られる人を限る資料は、その資料だけのデータストアにし、見られる人が使うアプリにつなぎます。
人が確認する
- 一覧の件数を先に見る … 同じ設備の前例の数と、効いた・効かなかった・不明の内訳を確かめます
- 引用の原文を開いて読む … 前例の兆候が今回と似ているかを、日誌の抜き書きで読みます
- 前例の時期と今を比べる … 前例の後に、坑井の清掃や設備の改修がないかを設備台帳で確かめます
- 色の変わった引用を確かめる … 運転の条件の変更を含む前例は、運転の要領の手続きに従います
- 当直の責任者に報告する … 引用した前例と経過を添えて報告します
- 当直の責任者が決める … 処置と運転の条件を、保安規程と運転の要領に従って決めます
3番目を省かないでください。 前例の後に坑井の清掃をしていれば、同じ下がり方でも、意味が違うことがあります。 答えは前例の当時の状態を知りません。
目標は、240件をならして1件10分です。 一覧を見て、原文を読み、設備台帳と比べ、報告と引き継ぎを書く時間です。ファイルを開いて探す時間がほぼ無くなり、確かめる時間が残ります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 同じ設備の前例が無い | 「前例なし」と表示し、同じ種類の設備に広げた検索を別に出す。広げたことを画面に明記する |
| 答えが作られなかった(支持が低い) | 答えを出さず、一覧と引用の候補の資料だけを並べる |
| 引用の無い文が含まれる | その文を画面に出さない |
| 経過の記録が無い前例ばかり | 一覧の上に「経過の不明な前例が多い」と表示する |
| 運転の条件の変更を含む前例を引用した | 色を変え、運転の要領の手続きの箇所を並べる |
| つながりの無い設備の前例が混ざった | その答えを使わず、設備台帳のつながりを技術の担当へ知らせる |
| 前例の後に設備の改修がある | 改修の日を画面に示し、前後で分けて読むよう促す |
| 兆候が急に進んでいる | 検索を待たず、運転の要領の異常のときの連絡に従う |
| 検索が応答しない | 依頼を保存して再送する。急ぐものは、いまどおり日誌と対処記録を引く |
下の2行の「検索を待たない」「いまどおり」は、常に残しておきます。 この構成は、ゆっくり進む兆候を調べる時間を短くするもので、急に進む異常の初動には使いません。
記録を残す
- 調査の依頼(設備の番号、兆候の文、気づいた日時、依頼した人)
- 絞り込みの条件、answer メソッドと search メソッドの応答の全文、セッションの ID
- 画面に出した答えと、外した文、色を変えた引用
- 運転員が開いた原文、報告した相手と時刻
- 引き継ぎの欄の内容と、登録した事象の記録
- 資料の版、データストアに入れた日、事象の記録の書き出しの日
5つ目が、いまは残っていない記録です。 どの前例を見て、誰に報告したかが残れば、次の班は前の班の続きから調べられます。 事象が終わったときに、その経過がそのまま次の前例になります。
04実装レベルの3段階
半自動化で、1件30分が18分ほどになります。 探す時間は減りますが、つながる設備の番号を手で足すことと、引き継ぎを書き写す作業が残ります。本格構成で10分になり、この段階が本記事の想定です。 段階を進める前に、事象の束ね方を決めてください。 決まっていないと、全設備に広げたときに、発電所ごとに付け方がばらつきます。
05工数削減シミュレーション
導入後 240件 × 10分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 生産井・還元井と発電の設備を24時間の交代勤務で運転し、圧力・流量・真空・ガスの濃度の変化に気づいたときに、運転員が過去の運転日誌とトラブルの対処記録を紙やファイルで探している地熱発電所。対処記録と日誌が電子のファイルで残っていて、設備の番号で引ける形にそろえられる場合。ベテランの運転員の退職が近く、坑井ごとの癖を知る人が減っている場合。Google Cloud を使っている、または使い始められる場合。
- 坑井と設備が少なく、メーカーの技術者が常駐して異常の対処を担っている場合。過去の記録が手書きの日誌だけで、設備の番号と日付が読み取れない場合。メーカーとの取り決めで技術資料を外部のクラウドに置けない場合。なお、運転の条件を変えてよいか、出力を下げるか止めるかの判断、保安規程に基づく判断は、この構成では代替できません。
07最小構成で試す方法
- 過去3年の兆候の調べものから、30件を選ぶ(その坑井を長く担当した運転員と、担当して日が浅い運転員が調べたものを混ぜる)
- その30件について、当時見た日誌の日付と、参考にした前例を書き出す
- 1か所の発電所の生産井3本分について、15年分の日誌から事象を束ね、メタデータ付きで Cloud Storage に入れて、Vertex AI Search のデータストアを作る
- 30件の設備の番号と兆候から絞り込みの条件と問い合わせ文を作り、answer メソッドを短いスクリプトで呼んで、答えと引用を見る
- 引用された前例が、当時見た前例と合うかを突き合わせる
30件のうち、「経過の記録なし」の前例を効いたように書いた件数を最初に数えます。 1件でもあれば、前置きの書き方か、事象の記録の outcome の付け方を直してから先へ進みます。
| 出てきた内容 | 判断 |
|---|---|
| 大半が当時と同じ前例を引用した | 一覧と調査の画面に進む |
| 前例の処置だけが出て、経過が出ない | 事象の束ね方を直す。日誌のまま入れていないか確かめる |
| つながる設備の前例が出ない | 設備台帳のつながりと絞り込みの条件を直す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 処置の記事だけが当たり、経過が分からない | 日誌を事象の単位に束ねてから入れる |
| 経過の不明な前例が、効いたように書かれる | 前置きで禁じ、outcome を必ず付ける |
| つながる設備の前例が出ない | 設備台帳のつながりで、絞り込みの条件を広げる |
| 番号の表記の違いで前例が出ない | 中継プログラムと書き出しの両方で表記をそろえる |
| 運転の条件の変更が手順として出る | 前置きで禁じ、印を付けて画面で目立たせる |
| 改修の前の前例を、今と同じものとして読む | 改修の日を画面に示す |
| 取扱説明書の章の意味が切れる | 分割を有効にし、見出しを付ける設定を作るときに入れる |
| 人の名前が検索の対象に入る | 書き出しの段で名前を消す |
| 見られる人を限る資料が全員に出る | 資料のデータストアを、見られる人だけのアプリに分ける |
| データストアを後からアプリから外したくなる | つないだあとは外せない。最初に分け方を決める |
上の2行が、この構成の失敗のほとんどです。 どちらも「前例のその後」の問題です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 坑井と設備の構成、運転日誌、トラブルの対処記録、メーカーの取扱説明書と技術資料、運転の要領、運転員の名前です。坑井ごとの状態の推移から、発電所の能力や地下の資源の状態が推し量れる情報になります。
- 運転の条件と出力の判断を人に残す … 電気事業法の第42条は、事業用電気工作物を設置する者に保安規程を定めて届け出ることを求め、設置する者とその従業者は保安規程を守らなければならないとしています。答えは前例の材料にとどめ、処置と運転の条件は、保安規程と運転の要領に従って当直の責任者が決めます
- 人の名前を入れない … 書き出しの段で、当番と連絡の相手の名前を消します
- メーカーの資料の扱いを確かめる … 取扱説明書と技術資料を外部のクラウドに置き、検索の対象にしてよいかを、メーカーとの取り決めで先に確かめます
- データの置き場所を確かめる … 公式ページでは、データストアの場所は
globalのほかus、euのマルチリージョンで、日本のリージョンは載っていません。 社内の情報の管理の規程と照らして決めます - 見られる人を限る … 調査の画面と原文は、運転の部署と技術の担当に限ります
- 事象の記録の登録を人が確かめる … 答えの文を、確かめずに次の前例として残しません
調査の記録を、運転員の評価に使わないことも決めておきます。 調べた回数で人を比べ始めると、気づいても調べずに済ませるようになります。
誤りが起きた場合のリスクは、効かなかった処置を効いたものとして繰り返すことと、運転の条件の変更が手続きを飛ばして行われることの2つです。 前者は事象の束ね方と outcome で、後者は前置きの禁止と画面の印、保安規程の手続きで防ぎます。
10まず何から始めるか
1週目:事象の束ね方を決める
運転の部署で、どこからどこまでを1件の事象とするか、outcome の4つをどう付けるかを決めます。あわせて、書き出しで消す欄と名前の一覧、設備の番号の表記を決めます。
2週目:生産井3本で事象を束ねる
1か所の発電所の生産井3本について、15年分の日誌から事象を束ね、メタデータを付けます。ベテランの運転員に、束ねた事象の経過が当時の記憶と合うかを見てもらいます。
3週目:30件で試す
第8章の手順でデータストアを作り、30件の兆候で引用の前例を確かめます。経過の不明な前例を効いたように書いていないかを最優先で見ます。
4週目:設備のつながりを台帳に持たせる
生産井・気水分離器・配管・還元井のつながりを、設備の管理の台帳に持たせます。つながる設備まで広げた絞り込みで、前例が増えるかを見比べます。
2か月目: 全設備の事象を束ねて取り込み、中央制御室の端末から使い始めます。3か月目以降: 条件の変更の印、引き継ぎの欄、事象の記録の下書きを足し、1件30分が何分になったかを実測します。担当して日が浅い運転員が、ゆっくり進む兆候について前例の処置とその後の経過を数分で引け、調べた中身が次の班に引き継がれるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
answer メソッドが検索結果から回答を作り、文ごとの引用を付けられること。セッションを渡して続けて問えること。10件を超える結果が要るときや結果を先に見せたいときは search メソッドと一緒に使うこと。検索の段で絞り込みが使えること。maxReturnResults の既定が10・最大が25であること。主張ごとの support score が0から1であること。filteringLevel が FILTERING_LEVEL_LOW/FILTERING_LEVEL_HIGH で、入れなければ絞り込みが掛からず、届かない答えは LOW_GROUNDED_CONTENT で返されないこと。前置き(preamble)で口調や詳しさを指定できること。Vertex AI Search が Agent Search へ改称中であること | Google Cloud: Get answers and follow-ups | 2026-10-27 |
絞り込みに使う項目をインデックス可能にすること。ANY が指定した値のどれかとの完全一致であること。日付の項目を ISO 8601 の文字列で比べられること | Google Cloud: Filter search for structured or unstructured data | 2026-10-27 |
非構造のデータのメタデータが JSON Lines(NDJSON)で、各行に id・structData または jsonData・content の mimeType と uri を持つこと。ファイルの上限が200MB、一度に100,000ファイルまで取り込めること。RAG にはデータストアを作るときに文書の分割を有効にするよう勧められていること | Google Cloud: Prepare data for ingesting | 2026-10-27 |
文書の分割をデータストアの作成後に切り替えられないこと。includeAncestorHeadings の既定が無効であること。レイアウトの解析が分割を有効にしたときだけ使えること | Google Cloud: Parse and chunk documents | 2026-10-27 |
| データストアをアプリにつないだあとは外せないこと(複数のデータストアをつなぐ検索では2つ以上を残す範囲で足し外しできること) | Google Cloud: Create a search data store | 2026-10-27 |
データストアの場所が global と、us・eu のマルチリージョンで、日本のリージョンの記載が無いこと | Google Cloud: Agent Search locations | 2026-10-27 |
| 事業用電気工作物を設置する者が保安規程を定めて届け出ること、設置する者とその従業者が保安規程を守らなければならないこと(第42条) | e-Gov 法令API: 電気事業法 | 2026-10-27 |
運転の条件と出力の判断、異常のときの連絡の手続きは、自社の保安規程と運転の要領、メーカーとの取り決めで確かめてください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2006)についてのご相談はこちらから。
