Media > AI活用ユースケース > カスタマーサポート > 鉄道の駅係員から出る払戻し・振替輸送・乗車券の取扱いの質問に、旅客営業規則と社内の取扱細則の条文を示して答える

鉄道の駅係員から出る払戻し・振替輸送・乗車券の取扱いの質問に、旅客営業規則と社内の取扱細則の条文を示して答える

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

駅係員から寄せられる「この乗車券は払い戻せるか」「運転が止まったときの乗車券はどう扱うか」「振替輸送の対象か」の質問に、旅客営業規則・社内の取扱細則・通達から取扱いの日に効く条文を探し、引用付きの回答案を返します。判断が要るものは営業課へ回します。

サマリー
生成AI
Gemini
AIサービス
Azure AI/Google Vertex AI/OpenSearch
連携・自動化
Python
対象業界
その他/自治体
対象部門
カスタマーサポート
対象業務
問い合わせ対応/情報検索
主な課題
判断に時間がかかる/問い合わせが多い/属人化している
AIで行う処理
検索(RAG)
主な効果
品質標準化/対応スピード向上/教育コスト削減
導入難易度
★★★★☆
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
必須
現在工数
72h/月
AI導入後
24h/月
想定削減
67%
年間削減
576h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 駅係員が、旅客の申し出で迷ったことを営業課に電話する
  2. 営業課の担当が、旅客営業規則の該当する章を開く
  3. 取扱細則で手続きを確かめる
  4. その時期に効いている通達がないかを、メールの履歴で探す
  5. 運転の乱れに関わるものは、指令に振替輸送の手配の状況を電話で確かめる
  6. 条文と手続きを電話で伝える。額は駅の発券の端末で確かめてもらう
導入後(After)
  1. 人駅係員が、駅の業務端末の問い合わせ画面で、取扱いの種類、乗車券の種類、区間、発売日、取扱いの日、申し出の内容を入れて送る
  2. 自動中継プログラムが、取扱いの日から効く版の絞り込みの条件を作る
  3. 自動運転の乱れに関わる問い合わせなら、指令の手配の記録から、その日その区間で行っている振替輸送を引く
  4. 自動Agent Search(Vertex AI Search)の answer メソッドが、規則・細則・通達から該当する条文を探し、引用付きの回答案を返す
  5. 自動中継プログラムが、回答案を `answer`(条文で答えられる)/`refer`(営業課の確認が要る)に分ける
  6. 自動`answer` は駅の端末へ返す。`refer` は営業課の待ち行列に入れ、駅には「営業課から返します」と返す
  7. 人駅係員が条文と手続きを確かめて取り扱う。額は発券の端末で確かめる
  8. 人営業課の担当が `refer` を判断して駅へ返し、判断を回答集に登録する(翌晩に取り込まれる)
各工程の詳しい説明を読む
  1. 駅係員が、旅客の申し出で迷ったことを営業課に電話する
  2. 営業課の担当が、旅客営業規則の該当する章を開く
  3. 取扱細則で手続きを確かめる
  4. その時期に効いている通達がないかを、メールの履歴で探す
  5. 運転の乱れに関わるものは、指令に振替輸送の手配の状況を電話で確かめる
  6. 条文と手続きを電話で伝える。額は駅の発券の端末で確かめてもらう

(a)規則・細則・通達が分かれ、探すのに時間がかかる。 規則の条文を見つけても、手続きは細則の別の場所にあり、特例は通達にあります。3つを開いて突き合わせるのに、1件の時間の大半が使われます。

(b)答えられる担当が限られる。 「他社線との連絡の乗車券は、自社線の区間だけを払い戻す扱い」「この通達は乗車券の発売日ではなく乗車日で見る」。こうした扱いを即答できるのは、長く担当している数名です。 夜間や早朝は営業課に人が少なく、駅で旅客を待たせる時間が延びます。

(c)駅によって取扱いがぶれる。 電話で聞いた答えを、駅ごとにメモして使っています。通達が切れた後も、そのメモで取り扱っている駅があることが、旅客の申し出で分かります。

(d)運転が乱れた日に電話がふさがる。 払戻しと振替輸送の質問が一度に来ると、営業課の担当は指令への確認と駅への回答を同時に受け持つことになります。同じ質問に、担当ごとに違う言い方で答えることもあります。

  1. 【人】 駅係員が、駅の業務端末の問い合わせ画面で、取扱いの種類、乗車券の種類、区間、発売日、取扱いの日、申し出の内容を入れて送る
  2. 【自動】 中継プログラムが、取扱いの日から効く版の絞り込みの条件を作る
  3. 【自動】 運転の乱れに関わる問い合わせなら、指令の手配の記録から、その日その区間で行っている振替輸送を引く
  4. 【自動】 Agent Search(Vertex AI Search)の answer メソッドが、規則・細則・通達から該当する条文を探し、引用付きの回答案を返す
  5. 【自動】 中継プログラムが、回答案を answer(条文で答えられる)/refer(営業課の確認が要る)に分ける
  6. 【自動】 answer は駅の端末へ返す。refer は営業課の待ち行列に入れ、駅には「営業課から返します」と返す
  7. 【人】 駅係員が条文と手続きを確かめて取り扱う。額は発券の端末で確かめる
  8. 【人】 営業課の担当が refer を判断して駅へ返し、判断を回答集に登録する(翌晩に取り込まれる)

5番目の振り分けを、規則で決めるのがこの設計の要です。 払戻しをしない方向の回答、引用が回答集だけで規則・細則に無い回答、発売日と取扱いの日の間に規則の改正をまたぐ問い合わせは、必ず refer にします。 旅客に「払い戻せません」と伝える回答は、人が確かめてから返します。

3番目で振替輸送をAIの外で引くのは、規則の条文からは「いま行っているか」が分からないからです。 手配の記録に無ければ、回答は「手配は登録されていません。指令に確かめてください」になります。

02今回想定するシステム構成

構成図
旅客営業規則  取扱細則  通達(期間つき)  回答集        振替輸送の手配の記録(指令)
   │  種類・版・効力の期間を付ける           │  答えた日          │  日時・区間・相手の事業者
   ▼                                          ▼                    ▼
Cloud Storage ── メタデータ(JSON Lines)                     中継プログラムが直接引く
   ▼
Agent Search(Vertex AI Search)── データストア(レイアウト パーサー、表の注釈)
   │   doc_kind/topic/effective_from/effective_to
   ▼
駅の業務端末 ──【トリガー】駅係員の送信
   ▼
中継プログラム(Python、Cloud Run)
   ├──▶ 取扱いの日で版を絞り込み
   ├──▶ 振替輸送の手配の記録を引く
   ├──▶ answer メソッド:条文の引用と回答案
   └──▶ answer / refer の振り分け
   ▼
駅の端末へ返信  /  営業課の待ち行列
役割想定する製品代替候補
検索基盤Vertex AI Search(Agent Search)の answer メソッドAzure AI Search、Amazon OpenSearch Service
生成AIGemini(answer メソッドの回答の生成に使うモデル)─
連携中継プログラム(Python。Cloud Run で動かし、駅の端末・手配の記録・検索・待ち行列をつなぐ)Node.js で同じものを書く
保管Cloud Storage(規則・細則・通達・回答集の写しとメタデータ、問い合わせの記録)─

発券の端末と運行管理には、何も書き込みません。 振替輸送の手配の記録は読むだけで、払戻しの額の計算と払戻しの処理は、これまでどおり発券の端末で行います。 この構成が返すのは、条文と手続きと回答案までです。

検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 公式のドキュメントでは、引用を付ける設定(includeCitations、既定は無効)、関係の薄い内容で答えない設定(ignoreLowRelevantContent)、回答を求めていない書き込みや敵対的な問いに答えない設定、回答の作り方を指示する preamble、前の session を渡してやり取りを続ける機能があります。駅係員が「その場合、特急券は」と続けて聞けるのは、この機能によります。

規則と細則の取り込みには、レイアウト パーサーを使います。 公式では、段落・表・リスト・見出しを検出し、チャンクに上位の見出しを付ける設定(includeAncestorHeadings)があり、チャンクの大きさは100〜500トークンです。条文が単独で引かれても、どの規則の何章何条かが分かるように見出しを付けます。

03どうやって実装するのか

Step1

処理の起点を決める

起点は、駅係員が業務端末の問い合わせ画面で送信したことです。 電話で受けていた問い合わせを画面に寄せます。発売日と取扱いの日が欠けると、どの版の条文で答えるかが決まりません。 画面で必須にしておけば、聞き返しが減ります。

画面の項目書き方使い道
取扱いの種類払戻し/運行不能・遅延/振替輸送/乗り越し・区間変更/紛失/定期券/その他振り分けの規則
乗車券の種類普通乗車券、回数券、定期券、特急券、連絡乗車券など絞り込み、検索の質問文
区間発駅と着駅、運転が止まった区間手配の記録を引く
発売日日付改正をまたぐかを見る
取扱いの日日付(既定は当日)版の絞り込み
申し出の内容自由記述検索の質問文

もう一つのトリガーは、規則の改正と通達の発出です。 改正や通達があったら、営業課の担当が文書を置き、メタデータに効力の期間を書きます。取り込みは毎晩まとめて行いますが、運転の乱れに伴う臨時の通達は、出したその場で取り込みを始めます。

Step2

入力データを集める

データ中身取得元
問い合わせ画面の6項目と、駅・係員駅の業務端末
旅客営業規則運賃・料金、乗車券の効力、払戻し、運行不能・遅延のときの取扱い社内の文書管理の仕組み(公示しているもの)
取扱細則窓口の手続き、証明の出し方、帳票の書き方社内の文書管理の仕組み
通達期間を限った特例と、その期間営業課のメールと掲示
回答集問い合わせの要旨、回答、根拠の条文、答えた日営業課の過去の回答から作る
振替輸送の手配の記録手配の日時、区間、相手の事業者、終了の日時指令の記録

質を決めるのは、すべての文書に付ける「種類」と「効力の期間」です。 通達に終わりの日を書いておかないと、期間が過ぎた特例がいつまでも引かれます。 規則と細則は改正のたびに版を足し、前の版に終わりの日を書きます。

振替輸送の手配の記録は、検索に入れません。 時々刻々と変わるもので、毎晩の取り込みでは間に合わないうえ、「いま行っているか」は文書の検索ではなく記録の照会で答えるべきことだからです。

Step3

データの取得方法を決める

規則・細則は章ごとに、通達と回答は1件ずつファイルにして Cloud Storage に置きます。公式では、非構造化データは TXT・JSON・Markdown・PDF・HTML・DOCX・PPTX・XLSX・XLSM に対応し、1ファイルの上限は200MBです。メタデータは JSON Lines で、1行ごとに id、structData、content(mimeType と uri)を書きます。

{"id":"notice-2026-118","structData":{"doc_kind":"notice",
 "topic":["refund","suspension"],"ticket_kind":["ordinary","limited_express"],
 "effective_from":"2026-10-01T00:00:00Z",
 "effective_to":"2026-11-30T23:59:59Z","date_basis":"use_date"},
 "content":{"mimeType":"text/html","uri":"gs://rail-rules/notice-2026-118.html"}}
項目中身使い道
doc_kind規則/細則/通達/回答振り分けの規則、表示
topic払戻し、運行不能、振替輸送、乗り越しなど絞り込み
ticket_kind対象の乗車券の種類絞り込み
effective_from/effective_to効力の始まりと終わり取扱いの日で版を選ぶ
date_basis通達の期間を発売日で見るか、乗車日で見るか期間の当てはめ

問い合わせのたびに、中継プログラムが絞り込みの条件を作ります。 公式の構文では、文字の項目は ANY() に並べた値のどれかと完全に一致するかを見られ、日時の項目は ISO 8601 の文字列と比べられます。

topic: ANY("refund","suspension") AND ticket_kind: ANY("ordinary")
AND effective_from <= "2026-10-20T00:00:00Z"
AND effective_to >= "2026-10-20T00:00:00Z"

date_basis は、通達ごとに書きます。 「この期間に発売した乗車券」を対象にする通達と、「この期間に乗車する旅客」を対象にする通達があり、同じ問い合わせでも、どちらの日付で見るかで当てはまるかが変わります。 中継プログラムは、date_basis に応じて発売日か取扱いの日を絞り込みに入れます。項目はスキーマで索引可能にしておかないと絞り込みに使えません。

Step4

AIへ渡す前に整形する

  1. 規則と細則を章ごとに分ける … 条番号と見出しが崩れないよう、文書管理の仕組みからHTMLで書き出します
  2. 版と効力の期間を付ける … 改正の履歴から、版ごとの施行日と終わりの日を書きます
  3. 通達に期間と日付の基準を付ける … 本文の「○月○日から○月○日まで」と「発売」「乗車」の語から、date_basis を担当が決めて書きます
  4. 回答集を整える … 過去の回答を、根拠の条文を確かめて1件ずつ文書にします。旅客の個人の情報は外します
  5. 申し出の内容から個人の情報を外す … 旅客の氏名や連絡先が書かれていたら、検索の質問文から外します
  6. 運賃表と手数料の額の表は取り込まない … 規則の別表のうち額の表は検索の対象から外し、条文だけを残します

3番目は機械に任せません。 通達の書き方は一定でなく、期間の基準を読み違えると、特例を当てはまらない旅客にまで広げることになります。

6番目で額の表を外すのは、AIに額を書く材料を渡さないためです。 指示で額を禁じても、検索の結果に額の表があれば、回答に数字が混ざりやすくなります。額を出す場所を発券の端末だけにしておけば、窓口で伝わる額は一つに決まります。

Step5

AIに処理させる

させるのは、取扱いの日に効く規則・細則・通達から該当する条文を探し、引用して回答案を書くことです。

させること中身
該当する条文を探す規則の条文、細則の手続き、当てはまる通達
条文を引用する規則・細則の名前と条番号、本文をそのまま
手続きを並べる駅係員が窓口で行うこと(証明、帳票、確かめる書類)を細則のとおりに
確かめる事実を挙げる条文を当てはめるために旅客に聞くこと(どこまで乗ったか、いつ買ったか)
させないこと理由
払戻しの額・手数料の計算発券の端末で確かめる
振替輸送を行っているかの判断指令の手配の記録で見る
規則に無い救済を一般論で補う「一般に鉄道では」と書くと根拠の無い取扱いになる
他社の規則で答える連絡の乗車券でも、他社の区間の取扱いは他社の規則
払い戻せないと断定する断る回答は営業課が確かめる

4つ目の「確かめる事実を挙げる」が、駅にいちばん効きます。 運転が止まったときの取扱いは、旅客がどこまで乗っていたか、旅行をやめるのか続けるのかで変わります。何を聞けばどの条文が当てはまるかが分かれば、営業課に2度電話せずに済みます。

answer メソッドの設定は次のようにします。

設定値理由
includeCitations有効条文に出典を付ける(既定は無効)
ignoreLowRelevantContent有効関係の薄い条文で答えない
filter種類、乗車券、効力の期間取扱いの日に効く文書だけを引く
includeGroundingSupports有効文ごとの根拠のスコアを受け取る
session同じ問い合わせの続き続けての質問に前のやり取りを使う
preamble下の指示答え方の規則を与える
Step6

指示内容を固定する

answer メソッドの preamble に、次の指示を入れます。中継プログラムは、振替輸送の手配の記録を引いた結果を検索の文の先頭に付けます。

あなたは鉄道会社の営業課の担当として、駅係員からの乗車券の
取扱いの問い合わせに、旅客営業規則・取扱細則・通達を根拠に
回答案を作る立場です。読むのは窓口にいる駅係員です。

【前提】
検索の文の最初に、取扱いの種類、乗車券の種類、区間、発売日、
取扱いの日、振替輸送の手配の照会結果が並んでいます。
検索の対象は、取扱いの日に効力のある規則・細則・通達と回答集だけです。

【答え方】
1. 関係する規則の条文を、規則の名前と条番号を付けて本文のまま引用する
2. 窓口の手続きを、取扱細則の条番号を付けて順に並べる
3. 当てはまる通達があれば、通達の番号と期間を書いて引用する
4. 条文を当てはめるために旅客に確かめることを箇条書きにする
5. 最後に、条文から読める範囲で回答案を2〜3文で書く

【厳守事項】
- 検索結果に無い条文、他社の規則で答えないでください。
- 払戻しの額・手数料・差額を書かないでください。計算もしないでください。
  「額は発券の端末で確かめてください」と書いてください。
- 振替輸送を行っているかは、照会結果だけで書いてください。
  照会結果に手配が無ければ「手配は登録されていません。
  指令に確かめてください」と書いてください。
- 「払い戻せません」「取り扱えません」と断定しないでください。
  条文の書き方のまま書いてください。
- 回答集だけが根拠のときは、そのことと答えた日を書いてください。
- 一般的な鉄道の慣行や他社の例で補わないでください。
- 該当する条文が見つからないときは、
  「該当する条文は見つかりませんでした。営業課が確認します」
  とだけ書いてください。

「額を書かない」を明記しないと、AIは条文の手数料と運賃から額を計算します。 区間の運賃、手数料、既に乗った区間の差し引きを組み合わせる計算で、一つ誤れば、窓口でその額を旅客に伝えることになります。 額は発券の端末にしかない正しい計算に任せます。

Step7

出力形式を固定する

answer メソッドの返り値と手配の照会を、中継プログラムが次の形にまとめます。

{
  "inquiry_id": "",
  "station": "",
  "handling_type": "refund | suspension | transfer | excess | lost | pass | other",
  "sale_date": "",
  "handling_date": "",
  "transfer_arrangement": { "found": false, "section": "", "carriers": [], "from": "", "to": "" },
  "citations": [
    { "doc_kind": "rule | detail | notice | answer", "title": "", "article": "",
      "quote": "", "effective_from": "", "effective_to": "", "uri": "" }
  ],
  "procedure": [],
  "facts_to_confirm": [],
  "answer_text": "",
  "route": "answer | refer",
  "refer_reason": []
}

citations は、answer メソッドの references から取ります。引用の位置(startIndex/endIndex)は UTF-8 のバイト数なので、日本語の文を文字数で切るとずれます。transfer_arrangement はAIの返り値を使わず、手配の記録の照会結果をそのまま入れます。

route は次の規則で決めます。

refer_reason立てる条件
restrictive回答案に「払い戻せない」「取り扱えない」など、断る方向の語がある
answer_onlycitations に規則・細則・通達が無く、回答集だけ
revision_between発売日と取扱いの日の間に、引いた規則・細則の改正がある
amount回答案に「円」と数字の並びがある
no_citation該当する条文が無い、または answerSkippedReasons が返った
weak_support根拠のスコアが低い文がある

どれにも当たらないものだけが answer です。 revision_between は、改正前に買った乗車券をどちらの版で扱うかを、改正の附則や細則で確かめる必要があるためです。この判断はAIにも中継プログラムにも置かず、営業課に置きます。

Step8

システムへ連携する

つなぎ先方式内容
駅の業務端末問い合わせ画面から中継プログラムを呼ぶ6項目を受け取り、回答を返す
振替輸送の手配の記録指令の記録の読み出し日時と区間で手配を引く
Agent Searchanswer メソッド条文の引用と回答案
営業課の待ち行列共有の一覧に1行足すrefer を回す
回答集営業課の担当が判断を登録翌晩に取り込む

待ち行列の1行には、問い合わせの内容、引用された条文、refer_reason、手配の照会結果を付けます。 担当は、探すところからではなく判断するところから始められます。

Step9

人が確認する

人が確認するのは refer の問い合わせです。 answer の回答は駅の端末へ直接返しますが、運用を始めてから2か月は、全件を営業課の担当が見てから返します。

  1. refer_reason を見る … 断る方向か、改正をまたぐか、額が書かれたかを確かめます
  2. 条文を当てはめる … 引用された条文と、駅が確かめた事実から取扱いを決めます
  3. 駅へ返し、回答集に登録する … 根拠の条文と判断の理由を付けます

駅係員は、answer の回答でも条文を読んでから取り扱います。 額は必ず発券の端末で確かめます。回答の画面には「役に立たなかった」の印を付けられるようにし、印の付いた回答は翌日に営業課が読み、回答集か振り分けの規則を直します。

運転が乱れた日は、営業課の担当のうち1名を待ち行列の専任にします。 同じ区間・同じ種類の refer が続くので、最初の1件を判断したら、その判断を回答集に急ぎで登録し、以降の問い合わせが answer で返るようにします。

2か月の全件確認で、answer の中に担当が見れば refer にしたものが1割を超えるなら、answer の直接の返信を始めません。

Step10

例外に対処する

起きること対応
画面の必須項目が欠けている送信できないようにする
取扱いの日に効く版が無いno_citation で営業課へ。版の登録漏れを疑う
通達の期間が切れた直後の問い合わせ絞り込みで外れる。回答に「期間を過ぎた通達があります」と出す
手配の記録が引けない「手配の状況を確かめられません。指令に確かめてください」と返す
他社の区間を含む連絡の乗車券自社の区間の条文だけを返し、refer にする
回答に額が書かれた額を消し、amount で営業課へ
運転の乱れで問い合わせが集中する同じ区間・同じ種類の問い合わせをまとめ、営業課が1件判断して同じ回答を返す
検索の呼び出しが失敗した「受け付けました。営業課から返します」と返し、待ち行列へ

6行目の額の検知は、プロンプトとは別に、中継プログラムの文字列の照合で行います。 最後の門は機械の照合に置きます。

Step11

記録を残す

  • 問い合わせの内容(6項目)、駅、係員、日時
  • answer メソッドへの要求(絞り込みの条件、preamble の版)と返り値の全文
  • 振替輸送の手配の照会結果
  • route と refer_reason、営業課の担当の判断と理由
  • 駅へ返した回答と、返した日時

手配の照会結果を残すのは、後から取扱いを問われたときのためです。 その時刻に手配が登録されていたかを示せないと、駅の取扱いが正しかったかを確かめられません。

04実装レベルの3段階

最小構成:規則の章と細則・通達を手元のAIサービスに貼り、問い合わせを1件ずつ入れる / 条文を探して引用する
半自動化:上記+規則・細則・通達・回答集をデータストアに取り込み、営業課の担当が検索画面で問い合わせを入れる / 取扱いの日で絞った条文の検索と回答案。駅への回答は人
本格構成:上記+駅の端末から中継プログラムが検索し、手配の記録を引き、`answer` は駅へ直接返す / 問い合わせの受付から回答、営業課への切り分けまで

最小構成では件数がさばけません。 運転が乱れた日の問い合わせの山には使えないので、確かめるための段階です。 半自動化で、12分が7分程度になります。 探す時間は減りますが、担当が全件を読んで電話で返す作業と、指令への確認が残ります。本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、answer の問い合わせに担当の手がかからなくなることと、手配の確認が照会になることです。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
6 名
月間件数
360 件
1件あたり現在時間
12 分
1件あたり導入後時間
4 分
現在  360件 × 12分 ÷ 60 = 72 時間/月
導入後 360件 × 4分 ÷ 60 = 24 時間/月
月間削減時間
48h
削減率
67%
年間削減時間
576h
年間金額換算(時間単価3,500円)
202万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 数十の駅を持つ民営鉄道・公営の交通事業者で、駅係員から営業課(旅客課)への取扱いの問い合わせが毎月数百件あり、答えられる担当が限られている場合。旅客営業規則に加えて社内の取扱細則と期間を限った通達があり、どれがいま効いているかを駅で確かめにくい場合。振替輸送の手配を指令が記録として残している場合。
向いていない
  1. 駅が数駅で、営業課の担当が規則を覚えていられる場合。払戻しの額や振替輸送の実施をAIの回答だけで決めたい場合(額は発券の端末で確かめ、振替輸送を行うかは指令と営業課が決めます)。社内の取扱細則や通達が文書になっておらず、口頭で伝えられている場合。

07最小構成で試す方法

  1. 問い合わせの多い取扱い(払戻し、運行不能のとき)について、規則の章と細則、いま効いている通達を書き出す
  2. 過去3か月の問い合わせと回答を、営業課のメモから20件拾う(運転の乱れた日のもの、改正をまたぐものを数件入れる)
  3. 手元のAIサービスに規則・細則・通達を貼り、問い合わせを1件ずつ入れる
  4. 第7章の指示を貼り、「条文を引用し、額を書かず、断定しない」と指示する
  5. 出てきた回答案を、当時の担当の回答と突き合わせる
出てきた内容判断
当時の担当と同じ条文と手続きを引用した検索基盤への取り込みに進む
額を計算した、「払い戻せません」と書いた指示で直るか試す。直らなければ禁止の語と額の照合を最初から作る
細則や通達に無い扱いで答えた回答集を貼り足す。扱いが文書になっていないなら、文書にするのが先

3行目が出ることは珍しくありません。 営業課が口頭で伝えてきた扱いのうち、どれが文書になっていないかが分かったということです。

08実装時につまずきやすいポイント

問題対策
期間の切れた通達で答える通達に終わりの日を必ず書き、取扱いの日で絞る
通達の期間を発売日と乗車日で取り違えるdate_basis を通達ごとに人が書く
AIが払戻しの額を計算する額を禁じ、文字列の照合で消して refer
振替輸送をしていると答える手配の記録の照会結果だけで書かせる
「払い戻せません」が駅で読み上げられる断る方向は必ず refer
改正をまたぐ乗車券を新しい版で扱うrevision_between で営業課へ
他社の区間まで自社の規則で答える連絡の乗車券は refer
引用の位置がずれる位置は UTF-8 のバイト数。文字数で切らない

上の3行が、この構成の失敗のほとんどです。 どれも、窓口で旅客に誤った取扱いや額を伝える誤りです。期間の当てはめと額の扱いを、AIの外の規則で守ります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 旅客営業規則(公示しているもの)、取扱細則と通達(社内の文書)、回答集、駅からの問い合わせ(旅客の申し出の内容を含みうる)、振替輸送の手配の記録です。

  1. 払戻しの額をAIの回答で伝えない … 額は発券の端末で確かめます。窓口で伝えた額は、旅客にとってその会社の約束になります
  2. 断る回答を自動で返さない … 鉄道運輸規程は、旅客の取扱いについての鉄道の処置を不当とする申告に遅滞なく弁明することを求めています。断る方向の回答は、営業課が条文を当てはめてから返します
  3. 運転が止まったときの取扱いは、規則と記録で答える … 鉄道運輸規程は、運転を中断したときに旅客の保護と、請求があれば出発の停車場までの無賃の送還と残額の払戻しを定めています。自社の規則と細則がそれをどう具体化しているかを、条文で示します
  4. 旅客の個人の情報を検索に入れない … 申し出の内容から氏名や連絡先を外し、回答集にも残しません
  5. データの置き場所を確かめる … 問い合わせの記録を外部のクラウドに置くことになります。公営の事業者は、データストアのリージョンと自治体の情報セキュリティの規程を合わせて確かめてください

誤りが起きた場合のリスクは、誤った額や取扱いを旅客に伝えることと、根拠を確かめないまま断ることです。 どちらも窓口で旅客に直接届くので、額と振替輸送の実施と断る判断を、AIの外に置きます。

10まず何から始めるか

1週目:問い合わせの多い取扱いを決め、文書に期間を付ける

過去3か月の問い合わせを数え、多い取扱い(払戻し、運行不能のとき)を選びます。その章の規則と細則、いま効いている通達に、効力の期間と日付の基準を付けます。

2週目:20件の問い合わせで試す

手元のAIサービスに規則・細則・通達を貼り、過去の問い合わせ20件を入れます。額を計算していないか、「払い戻せません」と書いていないかを最優先で見ます。

3週目:回答集を整え、手配の記録を確かめる

過去の回答を根拠の条文付きで20件ほど文書にします。指令の振替輸送の手配の記録が、日時と区間で引ける形かを確かめます。

4週目:データストアを作り、営業課で使う

規則・細則・通達・回答集を取り込み、営業課の担当が検索画面で問い合わせを入れて回答案を見る運用を始めます。

2か月目: 駅の端末の画面、手配の記録の照会、振り分けの規則を作り、全件を担当が見てから駅へ返します。3か月目以降: answer の中に担当が refer にしたものが1割未満になったら、answer の直接の返信を始め、取扱いの種類を広げます。すべての通達に期間と日付の基準が付き、手配の記録が照会できるのが当たり前になった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-14/最終更新:2026-10-14
確認した内容情報源確認日
Vertex AI Search が Agent Search へ改称中であること。answer メソッドの includeCitations(既定は false)、ignoreAdversarialQuery・ignoreNonAnswerSeekingQuery・ignoreLowRelevantContent、preamble、検索の指定の filter、session で前のやり取りを続けられること。includeGroundingSupports で文ごとに 0〜1 の根拠のスコアが返ること。answerSkippedReasons。引用の startIndex/endIndex が UTF-8 のバイト単位であることGoogle Cloud: Get answers and follow-ups2026-10-14
絞り込みの ANY() が列挙した値との完全一致を見ること、AND/OR、日時の項目を ISO 8601 の文字列と比べられること、項目を索引可能にする必要があることGoogle Cloud: Filter custom search for structured or unstructured data2026-10-14
非構造化データの対応形式と、1ファイル200MBの上限。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くことGoogle Cloud: Prepare data for ingesting2026-10-14
レイアウト パーサーが段落・表・リスト・見出しを検出すること。チャンクの大きさが100〜500トークンで、includeAncestorHeadings で見出しを付けられることGoogle Cloud: Parse and chunk documents2026-10-14
鉄道運輸規程第3条(鉄道の処置を不当とする申告への遅滞のない弁明)、第4条(停車場に運賃表・料金表・規則等を備え付けること)、第14条(改札前に旅行をやめた場合の発行当日の払戻しと手数料)、第17条(運転を中断したときの旅客の保護、請求による出発停車場までの無賃送還と残額の払戻し)e-Gov 法令API: 鉄道運輸規程2026-10-14

乗車券の取扱い、払戻しの額、振替輸送の実施は、各事業者の旅客営業規則・取扱細則と営業課・指令の判断に従ってください。 本記事は Google Cloud の公式ドキュメントと e-Gov の法令データで確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1444)についてのご相談はこちらから。

AI活用について相談する
目次