自治体の担当課が住民からの要望・苦情に返す回答文を、受付の記録と計画・要綱・過去の回答から下書きし、公用文の表記と書いてはいけない個人情報を点検する
住民からの要望・苦情に返す回答文を、受付の記録と担当課の事実のメモ、関係する計画・要綱から下書きします。公用文の表記と、書いてはいけない第三者の個人情報や約束していない対応の記載を点検し、決裁に回します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- n8n/Power Automate
- 対象業界
- 自治体
- 対象部門
- 総務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 属人化している/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当課の担当者が、回付された受付の記録を読み、申出の要点をつかむ
- 現場を確かめたり関係者に聞いたりして、事実関係と対応の方針を課内で決める
- 関係する計画・要綱を共有フォルダで探し、回答に引く箇所を確かめる
- 回答の台帳で似た申出への過去の回答を探し、参考にする
- 回答文を書き、課長の決裁に回す
- 広聴の担当課が、表記と個人情報の記載と、約束の記載を読んで点検する
- 直しがあれば担当課へ戻し、直ったものを申出人へ送り、台帳に記録する
- 人担当課の担当者が、事実関係と対応の方針を課内で決め、受付の仕組みの「事実のメモ」の欄に書く
- 人担当者が、回答に引く計画・要綱を根拠文書の一覧から選び、「下書きを作る」を押す
- 自動中継プログラムが、受付の記録・事実のメモ・選んだ根拠文書の該当箇所・同じ分類の過去の回答を集める
- 自動受付の記録から、申出人以外の個人の名前・住所などを記号に置き換える
- 自動Azure OpenAI が、回答文の下書きを作る
- 自動2回目の呼び出しで、下書きの1文ずつについて、根拠にした材料と、約束・個人情報に当たるかを判定する
- 自動中継プログラムが、表記の規則(文体、句読点、数字、使わない語)を正規表現で点検する
- 人担当者が、点検の結果を見て下書きを直し、課長の決裁に回す
- 人広聴の担当課が最終の確認をして申出人へ送り、台帳に記録する
各工程の詳しい説明を読む
- 担当課の担当者が、回付された受付の記録を読み、申出の要点をつかむ
- 現場を確かめたり関係者に聞いたりして、事実関係と対応の方針を課内で決める
- 関係する計画・要綱を共有フォルダで探し、回答に引く箇所を確かめる
- 回答の台帳で似た申出への過去の回答を探し、参考にする
- 回答文を書き、課長の決裁に回す
- 広聴の担当課が、表記と個人情報の記載と、約束の記載を読んで点検する
- 直しがあれば担当課へ戻し、直ったものを申出人へ送り、台帳に記録する
(a)一から書くので時間がかかる。 2番目で中身が決まっていても、回答文の形に整えるのに時間がかかります。計画の名前や要綱の条をどう引くか、どこまで書くかで手が止まります。
(b)課ごとに書き方が違う。 「ございます」を多用する課、結論を最後に書く課、専門用語をそのまま使う課があります。申出人には、同じ市役所から届く文書とは思えない差になります。
(c)第三者の個人情報が紛れ込む。 「○○さんのお宅の前の側溝」「同じ内容の申出が近隣の方からもあり」のように、申出人以外の個人を特定できる記載が回答に入ることがあります。 受付の記録には申出人が書いたとおりの固有名詞が残っており、それを引き写すと起きます。
(d)約束していない対応が書かれる。 申出人の気持ちに配慮して「早急に対応します」「来年度の予算で検討します」と書き、課内でその予定が決まっていないことがあります。 書いた一文は、次の申出で「約束したはずだ」と引用されます。
- 【人】 担当課の担当者が、事実関係と対応の方針を課内で決め、受付の仕組みの「事実のメモ」の欄に書く
- 【人】 担当者が、回答に引く計画・要綱を根拠文書の一覧から選び、「下書きを作る」を押す
- 【自動】 中継プログラムが、受付の記録・事実のメモ・選んだ根拠文書の該当箇所・同じ分類の過去の回答を集める
- 【自動】 受付の記録から、申出人以外の個人の名前・住所などを記号に置き換える
- 【自動】 Azure OpenAI が、回答文の下書きを作る
- 【自動】 2回目の呼び出しで、下書きの1文ずつについて、根拠にした材料と、約束・個人情報に当たるかを判定する
- 【自動】 中継プログラムが、表記の規則(文体、句読点、数字、使わない語)を正規表現で点検する
- 【人】 担当者が、点検の結果を見て下書きを直し、課長の決裁に回す
- 【人】 広聴の担当課が最終の確認をして申出人へ送り、台帳に記録する
1番目が、この設計の分かれ目です。 事実のメモが無いまま下書きを作らせると、AIは申出の文と計画の記載からもっともらしい対応を組み立てます。 メモの欄が空なら、2番目のボタンは押せないようにします。
6番目を別の呼び出しにするのも、意図してのことです。 書いた本人に「約束を書いていないか」を同じ呼び出しの中で確かめさせると、自分の書いた文を正しいものとして読みます。 点検は、下書きと材料を並べて渡す別の呼び出しで行います。
02今回想定するシステム構成
広聴の受付の仕組み(受付の記録・担当課への回付) ▼【トリガー】担当者が事実のメモを書き「下書きを作る」を押す 中継プログラム(Azure Functions) ├──▶ 受付の記録・事実のメモ ├──▶ 根拠文書の一覧:選んだ計画・要綱の該当箇所 ├──▶ 回答の台帳:同じ分類の過去の回答(直近の数件) ├──▶ 置き換え:申出人以外の個人の情報を記号に ▼ Azure OpenAI(Microsoft Foundry) │ 1回目:回答文の下書き │ 2回目:1文ずつの根拠・約束・個人情報の判定(構造化出力) ▼ 中継プログラム ── 表記の規則の点検、点検の結果を下書きに並べる ▼ 担当者の画面(直して決裁へ)→ 電子決裁 → 広聴の担当課が送付
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry)の Standard デプロイ | Claude、Gemini |
| 連携 | Azure Functions(材料の収集、置き換え、表記の点検、画面への表示) | Power Automate、n8n |
| 保管 | Azure Blob Storage(下書き、点検の結果、決裁で直した後の文) | 文書管理の仕組み |
| 表記の規則 | 正規表現の一覧(広聴の担当課が管理) | ― |
受付の仕組み、回答の台帳、電子決裁の仕組みは、新しく足すものではありません。 中継プログラムは記録を読んで下書きを画面に返すだけで、受付の記録にも台帳にも書き込みません。 回答の台帳への記録は、従来どおり送付の後に広聴の担当課が行います。最初の準備は、受付の仕組みに「事実のメモ」の欄を足すことと、課ごとの根拠文書の一覧を作ることです。
点検には、Azure OpenAI の構造化出力を使います。 渡した JSON Schema にモデルの出力を従わせる機能で、以前の JSON モードは正しい JSON を保証しても、スキーマへの厳密な準拠は保証しなかったとされています。1文ずつの判定を決まった値で受け取るために使います。
データの扱いは、Standard デプロイを選ぶことで決めます。 プロンプトと応答は他の顧客に提供されず、基盤モデルの学習に使われず、モデルはステートレスで、プロンプトも応答もモデルに保存されないとされています。Global や DataZone の種類でなければ、指定した地域(geography)の中で処理されるとされているので、日本の地域のリソースに置きます。
書き方の土台は、文化審議会が令和4年1月7日に建議した「公用文作成の考え方」です。 同月11日の内閣官房長官の通知で政府内に周知されました。通知・依頼・照会・回答など特定の相手を対象とした文書では敬体(です・ます体)を用いること、結論を早めに示すこと、一文を短くすること、解説・広報等の文末に「ございます」を用いないことなどが示されています。地方公共団体で活用されることも意識するとされています。
03どうやって実装するのか
処理の起点を決める
起点は、担当者が事実のメモを書いて「下書きを作る」を押したことです。 回付の時点で自動に作らないのは、事実関係と方針が決まる前に下書きが出ると、その下書きが方針の代わりになってしまうからです。
メモの欄が空のときは、ボタンを押せないようにします。 「現在確認中です」と答えるだけの中間の回答を送るときも、「確認中で、○日までに改めて回答する」という事実をメモに書いてから下書きを作ります。
直した事実のメモで、何度でも作り直せるようにします。 課長の決裁で方針が変わったときは、メモを直して作り直します。下書きの文を手で継ぎはぎすると、2回目の点検を通らない文が残ります。 作り直すたびに、点検も同じ順で行います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 受付の記録 | 申出の本文、受付の方法、回答の希望、受付日、分類(道路・公園・ごみ等)、地区 | 広聴の受付の仕組み |
| 事実のメモ | 確かめた事実、対応の方針、できないことと理由、時期(決まっているものだけ) | 担当者が受付の仕組みに書く |
| 根拠文書の該当箇所 | 担当者が選んだ計画・要綱の条や節の文 | 課ごとの根拠文書の一覧 |
| 過去の回答 | 同じ分類・同じ課の直近の回答文(申出人の情報を除いたもの) | 回答の台帳 |
| 表記の規則 | 使わない語、句読点、数字の書き方、敬語の扱い | 広聴の担当課が作る一覧 |
| 個人情報の置き換えの一覧 | 受付の記録から抜き出した申出人以外の個人の名前・住所・連絡先 | 中継プログラムが作る |
質を決めるのは、事実のメモの書き方です。 メモには、「確かめた事実」「対応すること」「対応しないこと・できないこと」「時期」を分けて書きます。 時期は決まっているものだけを書き、決まっていなければ空にします。空の時期は、回答文に時期を書かないという指示につながります。
過去の回答は、文の調子をそろえるために渡します。 中身の材料には使わせません。過去の回答で約束していた対応を、今回の回答にも書いてしまうことがあるからです。
データの取得方法を決める
受付の仕組みと回答の台帳からの取り出しは、利用している仕組みに応じた個別の実装になります。 API が無い場合は、担当者の画面のボタンから受付番号を渡し、中継プログラムが仕組みの出力を読む形にします。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 申出の本文・分類・地区 | 受付の記録 | 下書きの材料と、過去の回答の絞り込み |
| 事実のメモ | 受付の記録の欄 | 下書きの中身の唯一の材料 |
| 計画・要綱の該当箇所 | 根拠文書の一覧から選んだ文書 | 回答に引く根拠 |
| 過去の回答 | 回答の台帳を分類と課で絞った直近の数件 | 文の調子の参考 |
根拠文書の一覧は、課ごとに「分類 → 文書名・条や節・共有フォルダの場所」を並べた表です。 担当者は分類に合う候補から選ぶだけで、計画の全文をAIに渡すことはしません。 選んだ条や節の文だけを渡すので、回答に引かれる根拠が担当者の選んだ範囲に限られます。
過去の回答は、送付済みのものだけを使います。 決裁で差し戻された文や下書きのまま止まった文を混ぜると、直されたはずの書き方が戻ってきます。
2回目の呼び出しには、構造化出力のスキーマを付けます。 Chat Completions API なら response_format、Responses API なら text.format に JSON Schema を渡し、すべての項目を required に、オブジェクトごとに additionalProperties: false を付けます。 source と verdict は Enum で値を限り、モデルが「おおむねメモに基づく」のような中間の値を作れないようにします。出力の項目はスキーマの順に並ぶので、text と source_ref を判定の項目より前に置き、根拠を書いてから判定させる順にします。 1回目の下書きは自由な文で受け取り、スキーマは付けません。
AIへ渡す前に整形する
- 申出人以外の個人の情報を見つける … 受付の記録の本文から、人名・住所・電話番号・車のナンバーなどを抜き出し、申出人本人の情報と分けます
- 記号に置き換える … 申出人以外の個人の情報を「近隣の方A」「事業者B」のような記号にしてから渡します
- 申出人本人の情報も最小限にする … 宛名は中継プログラムが最後に差し込み、本文の材料には渡しません
- 事実のメモの項目を分ける … 事実・対応・対応しないこと・時期を、見出しを付けて渡します
- 根拠文書の該当箇所に出典を付ける … 文書名と条・節の番号を、文の前に付けます
- 過去の回答から固有名詞を除く … 台帳の回答に残る地名や施設名のうち、今回と関係の無いものを消します
- 表記の規則を正規表現に起こす … 「ございます」、「?」「!」、読点の「、」と「,」の混在、全角と半角の数字の混在、4桁以上の数にコンマが無いもの、「箇所」と「か所」の混在などを、一覧の行ごとに式にします
1番目を軽く見ないでください。 申出人が「隣の○○さんが」と書いた名前は、受付の記録にそのまま残っています。置き換えずに渡すと、回答文に「○○様のお宅の前」と書かれます。 置き換えはAIではなく、受付の仕組みの項目と辞書と正規表現で行い、拾えなかったものは2回目の点検で拾います。
3番目は、宛名の誤りを防ぐためでもあります。 回答文の本文に申出人の名前を書かせると、受付の記録の中の別の名前と取り違えることがあります。宛名と敬称は、受付の記録の項目から差し込みます。
7番目の規則は、公用文作成の考え方に合わせつつ、市の文書の決まりで決めます。 例えば読点は、考え方では「、」を原則とし横書きでは「,」も使えるとされていますが、一つの文書内でどちらかに統一するとされています。市がどちらに統一するかを先に決め、規則の一覧に書きます。正規表現が拾った箇所は直さずに印だけを付け、直すのは担当者です。
AIに処理させる
1回目にさせるのは、事実のメモと根拠文書の該当箇所だけを材料に、公用文の書き方で回答文を組み立てることです。 2回目にさせるのは、その下書きの1文ずつが、どの材料に基づくかを判定することです。
| 回 | させること | 材料 |
|---|---|---|
| 1回目 | 申出へのお礼、結論、理由、今後の対応、問い合わせ先の順で回答文を書く | 事実のメモ、根拠文書の該当箇所、過去の回答(調子だけ) |
| 2回目 | 1文ずつ、根拠にした材料と、約束・第三者の情報・材料に無い記載に当たるかを判定する | 下書き、事実のメモ、根拠文書の該当箇所、置き換えの一覧 |
| 2回目の判定 | 中身 | 見つかったときの扱い |
|---|---|---|
source | memo / document / courtesy(あいさつ) / none | none の文は担当者に表示し、消すか材料を足す |
commitment | 対応や時期を約束する文か | メモの「対応すること」「時期」に無ければ止める |
third_party | 申出人以外の個人を特定しうる記載か | 1件でもあれば止める |
apology_scope | 謝罪の文が、メモにある事実に対するものか | メモに無い事実への謝罪は担当者に表示する |
1回目の文の順は、「お礼、結論、理由、今後の対応、問い合わせ先」に固定します。 考え方が示す「結論は早めに示し、続けて理由や詳細を説明する」に沿った順で、申出人がいちばん知りたい「要望はかなうのか」が冒頭の数文で分かるようにします。要望に応えられないときも、結論を後ろに回して理由から書き始めないようにします。
判定の表の4行目(apology_scope)は、苦情への回答で起きやすいものです。 申出人の書いた不満の全部に謝ると、市が誤りを認めていない事実まで認めた形になります。 謝罪はメモに「市の対応に誤りがあった」と書かれた事実に限り、それ以外は担当者が判断します。
| させないこと | 理由 |
|---|---|
| 対応の方針を決める | 担当課が事実を確かめて決める |
| メモに無い時期や対応を書く | 約束になり、次の申出で引用される |
| 計画・要綱を担当者の選んだ範囲の外から引く | 根拠の範囲を担当者が管理する |
| 申出人以外の個人や他の申出に触れる | 保有個人情報の利用目的外の提供になりうる |
| 表記を直す | 規則で点検し、直すのは担当者 |
指示内容を固定する
1回目の指示の例です。
あなたは市役所の担当課の職員として、住民からの申出に返す回答文の下書きを書きます。
読むのは申出をした住民本人です。
【材料】
- 事実のメモ(確かめた事実/対応すること/対応しないこと・できないこと/時期)
- 根拠文書の該当箇所(文書名と条・節が付いています)
- 過去の回答(文の調子の参考にだけ使ってください。中身を使わないでください)
【書き方】
1. 申出へのお礼、結論、理由、今後の対応、問い合わせ先の順に書いてください。
2. 結論を先に書いてください。
3. です・ます体で書き、「ございます」は使わないでください。
4. 一文を短くし、一文に一つのことだけを書いてください。
5. 専門用語は、言い換えるか短い説明を添えてください。
【厳守事項】
- 事実のメモに書かれていない対応・時期・数字を書かないでください。
「時期」が空のときは、時期を書かないでください。
- 「検討します」「努めます」は、メモの「対応すること」にあるときだけ使ってください。
- 謝罪は、メモの「確かめた事実」に市の誤りが書かれているときだけ書いてください。
- 「近隣の方A」のような記号で書かれた人や事業者に触れないでください。
- 他の申出や、他の住民からの意見に触れないでください。
- 根拠文書は、渡した該当箇所だけを、文書名と条・節を付けて引いてください。
- 宛名と申出人の名前は書かないでください。後で差し込みます。
【申出の本文】{request_text}
【事実のメモ】{fact_memo}
【根拠文書の該当箇所】{documents}
【過去の回答】{past_replies}
「時期が空のときは時期を書かない」が、この指示の要です。 時期を書かないように言うだけでは、「早期に」「できる限り速やかに」のような時期を感じさせる言い回しで埋めます。2回目の点検の commitment で、この言い回しも約束として拾います。
2回目の指示は、「下書きの1文ずつについて、根拠にした材料を memo / document / courtesy / none から選び、約束・第三者の情報・謝罪の範囲を判定してください。材料に無い記載を、文脈から正しいと推測して memo にしないでください」という形で、下書きと材料と置き換えの一覧を並べて渡します。
出力形式を固定する
1回目は、本文の文字列で受け取ります。 2回目は、次の形のJSONで受け取ります。
{
"request_id": "",
"sentences": [
{ "no": 1, "text": "", "source": "memo | document | courtesy | none",
"source_ref": "", "commitment": false, "commitment_in_memo": false,
"third_party": false, "apology": false, "apology_in_memo": false }
],
"verdict": "ready | needs_edit | blocked"
}
1つ目の理由は、1文ずつの根拠が残ることです。 担当者の画面では、下書きの各文の横に source_ref(メモの項目、または文書名と条・節)を並べ、根拠の無い文が一目で分かるようにします。
2つ目は、verdict を規則で決められることです。 AIの返す verdict はそのまま使わず、中継プログラムが次の規則で決め直します。
| 条件 | verdict |
|---|---|
third_party が1文でもある、または commitment が true で commitment_in_memo が false | blocked |
source が none の文がある、または表記の規則に当たる箇所がある、またはメモに無い謝罪がある | needs_edit |
| 上のどれにも当たらない | ready |
3つ目は、blocked を決裁に回せなくできることです。 blocked の下書きは、該当の文を担当者が消すか、事実のメモを直して作り直すまで、電子決裁への添付のボタンを押せないようにします。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 広聴の受付の仕組み | 読み取り(個別の実装) | 受付の記録と事実のメモを取る |
| 根拠文書の一覧 | 中継プログラムの読み取り | 選んだ計画・要綱の該当箇所を取る |
| 回答の台帳 | 読み取り | 同じ分類の送付済みの回答を取る |
| Azure OpenAI | 2回の呼び出し | 下書きと、1文ずつの判定 |
| 担当者の画面 | 表示 | 下書き、1文ずつの根拠、点検の結果を並べる |
| 電子決裁の仕組み | 担当者が添付 | 直した回答文を決裁に回す |
申出人への送付は、自動にしません。 下書きから決裁、広聴の担当課の確認、送付までは、すべて人の操作で進みます。 受付の記録と回答の台帳にも、この構成からは書き込みません。
人が確認する
担当者は、下書きの全文を読み、1文ずつの根拠と点検の結果を見てから直します。
blockedの文を先に直す … 第三者の情報は消し、メモに無い約束は消すか、課内で決めてメモに足して作り直しますsourceがnoneの文を確かめる … あいさつ以外で根拠の無い文は、消すか、材料を足します- 表記の指摘を直す … 正規表現が拾った箇所を担当者が直します
- 申出の全部に答えているかを見る … 申出が複数の事項を含むとき、答えていない事項が無いかを確かめます
4番目は、AIの点検では拾えません。 下書きはメモの範囲で書かれるため、メモに書き漏らした事項は回答からも抜けます。 申出の本文と回答を並べて読むのは、担当者の仕事として残します。
課長の決裁と、広聴の担当課の確認は従来どおり行います。 広聴の担当課は、点検の結果の画面を見られるようにし、needs_edit のまま決裁を通った回答だけを詳しく読みます。
目標は、200件をならして1件18分です。 メモを書いて根拠文書を選ぶ時間と、下書きを直す時間の合計です。直しの時間の大半は、blocked と none の文に使います。それより長い課は、メモの書き方か根拠文書の選び方に戻って見直します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 事実のメモが空 | 下書きを作らない |
| 申出が複数の課にまたがる | 主となる課が作り、他の課のメモを受け付けの仕組みで集めてから作る |
| 審査請求・訴訟・損害賠償の請求に関わる | 下書きを作らず、法務の担当へ回す |
| 職員個人への苦情 | 下書きを作らず、所属長と人事の担当へ回す |
| 同じ申出人から同じ内容がくり返し届く | 前回の回答を並べて表示し、方針が変わらなければ短い回答の型を使う |
| 置き換えで拾えなかった個人名が下書きに出る | 2回目の third_party で止める |
| 外国語の申出 | 申出の翻訳は別の手順で行い、回答も担当課が言語を決める |
| 回答の希望が無い、または匿名の申出 | 下書きを作らず、担当課の対応の記録だけを残す |
| 根拠文書の一覧に分類が無い | 根拠文書を選ばずに作り、document の文が出たら none として扱う |
| 2回目の判定が構造化出力のスキーマ外になる | 再実行し、2回続けば点検の結果なしと表示して担当者が全文を読む |
| AIの呼び出しが失敗する | 「下書きを作れませんでした」と表示し、従来どおり担当者が書く |
3行目と4行目は、受付の時点で広聴の担当課が印を付けます。 印の付いた申出は、ボタンを押しても下書きを作らず、回す先を表示します。
記録を残す
- 受付番号、事実のメモの版、選んだ根拠文書の条・節、使った過去の回答の番号
- 置き換えの一覧(記号と元の値の対応は中継プログラムの中だけに保存し、閲覧を広聴の担当課に限る)
- 1回目の下書きの全文と、2回目の判定の全文
- 表記の規則で拾った箇所
- 担当者が直した後の文と、決裁で直された文
- 送付した最終の回答文
直した後の文を残すのは、下書きと最終の文の差を見るためです。 毎月、差の大きい分類を数え、根拠文書の一覧や事実のメモの書き方を見直す材料にします。 差が「約束の削除」に偏っていれば、メモの「時期」の書き方を課に案内し直します。
04実装レベルの3段階
半自動化で、1件45分が28分程度になります。 探す時間と書く時間は縮みますが、表記と個人情報と約束の点検が、担当者と広聴の担当課の目に残ります。本格構成で18分になり、この段階が本記事の想定です。 差が大きいのは、点検が1文ずつの根拠として画面に出て、読む場所が絞られるからです。 段階を飛ばさないでください。 半自動化の1か月で、事実のメモがどのくらい書けるかが分かります。メモが書けない課から本格構成に進めても、下書きの質は上がりません。
05工数削減シミュレーション
導入後 200件 × 18分 ÷ 60 = 60 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 「市長への手紙」「市民の声」などの広聴の窓口を持ち、住民からの要望・苦情・提案に文書やメールで回答している市区町村・都道府県。回答を求める申出が月に百件を超え、各課の担当者が回答文を一から書いている場合。回答の書き方が課ごとにばらばらで、広聴の担当課が表記や個人情報の記載の直しを毎回返している場合。過去の回答を台帳に残しているが、似た申出への過去の回答を探す手間がかかっている場合。Azure の契約があり、庁内の情報セキュリティポリシーに沿って生成AIを使える環境がある場合。
- 回答を求める申出が月に数件で、担当者が丁寧に書いて足りる場合。担当課が事実関係や対応の方針を決めないまま回答文だけを急ぐ運用の場合(この構成は担当課が書いた事実のメモから文を整えるだけで、対応の方針は作りません)。回答をAIの下書きのまま決裁なしで送りたい場合。審査請求や訴訟になっている案件など、回答の一文が法的な意味を持つ案件(法務の担当が書くべきもので、この構成の対象から外します)。
07最小構成で試す方法
- 先月送付した回答から30件を選ぶ(苦情への回答と、「検討します」を含む回答を数件ずつ入れる)
- その30件について、担当課が当時決めていた事実と方針を、事実のメモの形に書き起こす
- 申出人と第三者の名前を記号に置き換えたうえで、庁内で使える生成AIの画面に、メモと計画の該当箇所を貼る
- 「このメモと根拠の文だけを材料に、です・ます体で、結論を先に、回答文を書いてください。メモに無い対応や時期を書かないでください」と指示する
- 出てきた下書きを、実際に送った回答と並べて読む
| 出てきた内容 | 判断 |
|---|---|
| 実際の回答と同じ中身で、表記がそろった文が出た | 受付の仕組みとの連携と2回目の点検に進む |
| メモに無い時期や「検討します」を書いた | 指示と2回目の点検で直る。構成は有効 |
| メモに書き起こせない案件が多い | 担当課が方針を文で残していないことが先の問題。 AIの問題ではない |
3行目が出ることは珍しくありません。 回答の中身が担当者の頭の中にしか無かったということで、事実のメモの欄を作る理由そのものです。 メモの書き方の例を課に配り、次の月の申出で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| メモに無い時期や対応が書かれる | 時期が空なら書かせず、時期を感じさせる言い回しも約束として拾う |
| 申出人以外の個人の名前が回答に出る | 置き換えを規則で行い、2回目の点検で拾えなかったものを止める |
| 下書き自身に点検させて見逃す | 点検は別の呼び出しで、材料と並べて行う |
| 過去の回答の約束が今回に紛れ込む | 過去の回答は調子の参考だけと指示する |
| 申出の全部に答えていない | 担当者が申出と回答を並べて読む |
| 表記をAIに直させて意味が変わる | 表記は正規表現で拾い、直すのは担当者 |
| 苦情への謝罪が広がりすぎる | 謝罪はメモの事実に限り、apology_in_memo で見る |
| 決裁で直した文が下書きに反映されない | メモを直して作り直し、継ぎはぎをしない |
上の3行が、この構成の失敗のほとんどです。 どれも、文としては自然で丁寧なのに、市が決めていないことや言ってはいけないことが書かれているという失敗です。根拠を1文ずつ材料に結び付けているかで、防げるかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 申出人の氏名・住所・連絡先、申出の本文(近隣の住民や事業者の情報を含むことがある)、担当課の事実のメモ、計画・要綱、過去の回答です。申出の本文には、申出人以外の個人の情報や、健康・家庭の事情が書かれることがあります。
- 申出人以外の個人の情報を回答に書かない … 個人情報保護法は、地方公共団体の機関を含む行政機関の長等は、法令に基づく場合を除き、利用目的以外の目的のために保有個人情報を自ら利用し、又は提供してはならないとしています。申出の受付で得た第三者の情報を、別の申出人への回答に書くことは、この点を確かめずにしてよいことではありません
- AIに渡す前に置き換える … 申出人本人の情報も、宛名の差し込みに回して本文の材料には渡しません
- Standard デプロイを日本の地域に置く … Global や DataZone の種類では、指定した地域の外で処理されることがあります
- 回答の中身をAIに決めさせない … 方針は担当課が決め、決裁で確かめます
- 送付を自動にしない … 下書きから送付までのすべての段に人の操作を置きます
- 置き換えの対応表の閲覧を絞る … 記号と元の値の対応は広聴の担当課だけが見られるようにします
誤りが起きた場合のリスクは、市が決めていない対応を約束することと、第三者の個人情報を申出人に渡すことの2つです。 前者は事実のメモと commitment の照合で、後者は置き換えと third_party の判定で防ぎます。どちらも規則で決裁への添付を止め、担当者の注意だけに頼りません。
10まず何から始めるか
1週目:事実のメモの欄と書き方を決める
受付の仕組みに「確かめた事実」「対応すること」「対応しないこと・できないこと」「時期」の欄を足す方法を決め、書き方の例を3つの課で作ります。 あわせて、表記の規則(使わない語、句読点、数字)を広聴の担当課が一覧にします。
2週目:30件で試す
先月の回答から30件を選び、事実のメモに書き起こして、置き換えたうえで生成AIの画面で下書きを作ります。メモに無い時期や「検討します」を書いていないかを最優先で見ます。
3週目:根拠文書の一覧を作る
申出の多い道路・公園・ごみの課から、分類ごとに引く計画・要綱の条や節を表にします。
4週目:下書きを画面に返す
受付の記録・メモ・根拠文書・過去の回答を集めて下書きを作り、担当者の画面に返すところまで作ります。この時点では2回目の点検を出さず、下書きと実際に送った回答を比べます。
2か月目: 置き換え、2回目の点検、表記の規則を足し、blocked の件数を毎週数えます。3か月目以降: 決裁への添付の制御を入れて全課に広げ、1件45分が何分になったかを実測します。広聴の担当課が送る前に直す回答が、表記の好みの範囲だけになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 文化審議会が令和4年1月7日に建議したこと。地方公共団体や民間の組織に活用されることを意識すること。通知・依頼・照会・回答など特定の相手を対象とした文書では敬体を用いること。結論を早めに示すこと、一文を短くし一文の論点を一つにすること。句点「。」読点「、」を原則とし横書きでは「,」も可で文書内で統一すること。横書きでは算用数字を使い、大きな数は三桁ごとにコンマで区切ること。解説・広報等の文末は「です・ます」を基調とし「ございます」を用いないこと | 文化庁: 公用文作成の考え方(建議) | 2026-10-08 |
| 令和4年1月11日の内閣官房長官の通知(内閣文第1号)で「公用文作成の考え方」が政府内に周知され、昭和27年の依命通知が廃止されたこと | 文化庁: 「公用文作成の考え方」の周知について | 2026-10-08 |
| 第2条第11項:行政機関等に地方公共団体の機関(議会を除く)が含まれること。第60条:保有個人情報の定義。第69条:行政機関の長等は、法令に基づく場合を除き、利用目的以外の目的のために保有個人情報を自ら利用し又は提供してはならないこと、本人の同意があるとき・本人に提供するときなどの例外 | e-Gov 法令API: 個人情報の保護に関する法律 | 2026-10-08 |
構造化出力が渡した JSON Schema にモデルを従わせること。JSON モードはスキーマへの厳密な準拠を保証しなかったこと。すべての項目を必須にし、additionalProperties: false を付けること。出力の項目の順がスキーマの順に従うこと。対応する型に Enum が含まれること | Microsoft Learn: How to use structured outputs with Azure OpenAI in Microsoft Foundry Models | 2026-10-08 |
| プロンプトと応答が他の顧客に提供されず、基盤モデルの学習に使われないこと。モデルがステートレスであること。Global・DataZone の種類でなければ指定した地域の中で処理されること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-08 |
回答の中身と、回答に何を書いてよいかは、各自治体の広聴の要綱・個人情報の取扱いの規程と担当課の判断に従ってください。 本記事は文化庁、e-Gov 法令API、Microsoft Learn で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0884)についてのご相談はこちらから。
