市の広報紙とホームページのお知らせを、公開前に表記ルールと日付・曜日、施設や問い合わせ先の電話番号まで台帳と照らして校正する
各課から届く広報紙とホームページのお知らせ原稿を、公開前に校正します。市の表記ルールに外れた書き方を指摘し、日付と曜日、施設の休館日、課名と電話番号を台帳と照らして食い違いを洗い出します。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/n8n/Power Automate/Python
- 対象業界
- 医療/教育/自治体
- 対象部門
- 総務
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 校正
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 各課の職員が原稿をWordで書き、共有フォルダに置いて広報係へ知らせる
- 広報係の担当者が原稿を開き、表記ルールの一覧を横に置いて1文ずつ直す
- 日付があれば、卓上のカレンダーで曜日を確かめる。祝日に当たらないかも見る
- 施設名があれば、施設の一覧を開いて正式名称と住所、開館時間、休館日を確かめる
- 問い合わせ先の課名と電話番号を、課ごとの電話番号一覧と突き合わせる
- 直したところと、起案課に確かめたいことをWordのコメントに書いて戻す
- 起案課が直した原稿を、広報紙の版とホームページの版に分けてそれぞれ仕上げる
- 広報紙は編集して印刷所へ、ホームページはCMSで公開する
- 人起案課の職員が、原稿を SharePoint の「校正依頼」ライブラリに置き、媒体(広報紙/ホームページ)、記事番号、掲載予定日を列に入れる
- 自動ファイルの登録をきっかけに Power Automate が動き、原稿の本文を取り出す
- 自動同じ記事番号の別の媒体の版があれば、それも取り出す
- 自動Azure OpenAI が、本文から日付・時刻・施設名・課名・電話番号・金額・定員を拾い出し、表記ルールに外れた箇所を指摘する
- 自動拾い出した日付について、曜日と祝日を暦の計算で確かめる
- 自動施設名・課名・電話番号を、施設の一覧と電話番号一覧に照らす。催しの日が休館日に当たらないかも見る
- 自動紙版とWeb版で、日付・定員・金額・問い合わせ先が一致しているかを比べる
- 自動指摘を `must_fix` / `style` / `ask_owner` に分け、指摘一覧を作る
- 人広報係の担当者が指摘一覧を見て、採るものと採らないものを決める
- 人起案課に確かめることがあれば、指摘一覧から戻す
- 人直った原稿を広報紙の編集とCMSの公開に回す
各工程の詳しい説明を読む
- 各課の職員が原稿をWordで書き、共有フォルダに置いて広報係へ知らせる
- 広報係の担当者が原稿を開き、表記ルールの一覧を横に置いて1文ずつ直す
- 日付があれば、卓上のカレンダーで曜日を確かめる。祝日に当たらないかも見る
- 施設名があれば、施設の一覧を開いて正式名称と住所、開館時間、休館日を確かめる
- 問い合わせ先の課名と電話番号を、課ごとの電話番号一覧と突き合わせる
- 直したところと、起案課に確かめたいことをWordのコメントに書いて戻す
- 起案課が直した原稿を、広報紙の版とホームページの版に分けてそれぞれ仕上げる
- 広報紙は編集して印刷所へ、ホームページはCMSで公開する
(a)確認の深さが担当者で違う。 表記ルールの細かい項目を覚えているのは、広報係で長く勤めた1名です。ほかの担当者が見た記事は指摘が少なく、異動でその1名がいなくなれば基準ごと失われます。
(b)曜日と休館日の食い違いは、忙しい週ほど見落とす。 3番と4番は、日付が1つなら数十秒で済みますが、講座の日程のように日付が6回並ぶ記事では、1つずつ曜日を数えることになります。 締め切り前の週に何十本も重なると、ここが省かれます。祝日に当たる回や、会場が休館日の回が、そのまま紙面に載ることがあります。
(c)古い課名と電話番号が残る。 前年の原稿を直して出すと、機構改革の前の番号が残ります。電話番号は正しそうに見えるので、一覧と1件ずつ照らさない限り見つかりません。
(d)紙版とWeb版が別々に直される。 7番の後に片方だけが直され、広報紙では定員30名、ホームページでは20名のような食い違いが、公開後の問い合わせで分かります。
- 【人】 起案課の職員が、原稿を SharePoint の「校正依頼」ライブラリに置き、媒体(広報紙/ホームページ)、記事番号、掲載予定日を列に入れる
- 【自動】 ファイルの登録をきっかけに Power Automate が動き、原稿の本文を取り出す
- 【自動】 同じ記事番号の別の媒体の版があれば、それも取り出す
- 【自動】 Azure OpenAI が、本文から日付・時刻・施設名・課名・電話番号・金額・定員を拾い出し、表記ルールに外れた箇所を指摘する
- 【自動】 拾い出した日付について、曜日と祝日を暦の計算で確かめる
- 【自動】 施設名・課名・電話番号を、施設の一覧と電話番号一覧に照らす。催しの日が休館日に当たらないかも見る
- 【自動】 紙版とWeb版で、日付・定員・金額・問い合わせ先が一致しているかを比べる
- 【自動】 指摘を
must_fix/style/ask_ownerに分け、指摘一覧を作る - 【人】 広報係の担当者が指摘一覧を見て、採るものと採らないものを決める
- 【人】 起案課に確かめることがあれば、指摘一覧から戻す
- 【人】 直った原稿を広報紙の編集とCMSの公開に回す
9番目が、この設計の中心です。 指摘を原稿に自動で反映させることはしません。直すかどうかは広報係が決めます。 表記ルールには文の調子で使い分けてよい項目もあり、機械的に全部直すと読みにくくなります。
5番から7番をAIの外に置いているのは、正解が暦と台帳に書いてある項目だからです。
02今回想定するシステム構成
各課の原稿(Word) │ 媒体・記事番号・掲載予定日を列に入れて置く ▼【トリガー】SharePoint の「校正依頼」ライブラリへの登録 Power Automate ├──▶ 原稿の本文を取り出す ├──▶ 同じ記事番号の別の媒体の版を探す ▼ Azure OpenAI(Microsoft Foundry) │ ・日付、時刻、施設名、課名、電話番号、金額、定員を拾い出す │ ・表記ルールに外れた箇所を、ルールの番号付きで指摘する │ ・structured outputs(strict)でスキーマどおりのJSONを返させる ▼ Python(照合の処理) │ ・曜日と祝日を暦で計算する(内閣府の祝日CSV) │ ・施設の一覧と電話番号一覧に照らす(休館日を含む) │ ・紙版とWeb版の値を比べる ▼ 指摘一覧(SharePoint リスト) │ must_fix / style / ask_owner ▼ 【人】広報係が採否を決め、起案課へ戻す ▼ 広報紙の編集/CMSで公開
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Power Automate | Make、n8n |
| 差異計算 | Python(暦・台帳との照合と、紙版とWeb版の比較) | Power Automate の式、Google Apps Script |
| 保管 | SharePoint | Box、Google ドライブ |
| 公開 | 既存のホームページのCMS | 各社の製品 |
施設の一覧と電話番号一覧は、すでにあるものを SharePoint に置き、列の形をそろえます。 施設の一覧には、休館日の決まり(毎週月曜日、祝日の翌日など)を照合できる形の列で持たせます。
Azure OpenAI を選ぶ理由は、データの取り扱いが明示されていることです。 公開前の原稿には、まだ発表していない施策や、募集の条件が含まれます。公開されている説明によれば、入力(プロンプト)と出力、埋め込みは、他の顧客にも、OpenAI などのモデルの提供元にも提供されず、提供元のモデルやサービスの改善に使われず、顧客の許可や指示なしに生成AIの基盤モデルの学習に使われることもないとされています。
処理される場所も選べます。 プロンプトと応答は顧客が指定した地理的範囲の中で処理されますが、Global または DataZone のデプロイではその範囲の外で処理されることがあります。 保存される内容は、いずれも指定した地理に保存されるとされています。
不正利用の監視の扱いも、設計上の判断です。 兆候が検出されると、プロンプトと生成内容の一部が確認の対象に選ばれ、必要に応じて人が確認するとされています。扱いは第13章で述べます。
Power Automate はつなぎの役で、判定の中身は持たせません。
03どうやって実装するのか
処理の起点を決める
起案課が SharePoint の「校正依頼」ライブラリに原稿を置いたことを起点にします。 Power Automate の SharePoint コネクタのトリガー「When a file is created (properties only)」を使います。ライブラリに項目が作成されたときに動き、返すのはライブラリの列に保存されたプロパティだけとされています。本文は、返ってきたファイルの識別子を使い「Get file content」の手順で取り出します。
「When a file is created in a folder」は使いません。 非推奨とされ、サブフォルダーに追加されたファイルでは動かないと書かれています。課ごとにフォルダーを切ると、原稿を置いても何も起きない課が出ます。ライブラリは1つにし、課は列で分けます。
列は、置く側に必ず入れてもらいます。 媒体(広報紙/ホームページ)、記事番号、掲載予定日、起案課の4つです。記事番号が、紙版とWeb版を結びつける唯一の手がかりになります。 記事番号の無い原稿は処理せず、起案課へ入力を求める通知だけを返します。
締め切り前にまとめて動かすことはしません。 1本置かれるたびに動かし、原稿を置いた日のうちに指摘が戻るようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 原稿 | Wordの本文。媒体、記事番号、掲載予定日、起案課 | SharePoint「校正依頼」ライブラリ |
| 別の媒体の版 | 同じ記事番号の紙版またはWeb版の本文 | 同じライブラリ |
| 表記ルール | 番号付きの40項目。誤りの例と正しい書き方、直すか・直さなくてよいか | 広報係が用意するルール表 |
| 施設の一覧 | 正式名称、よく使われる略称、住所、代表番号、開館時間、休館日の決まり、臨時休館の予定 | 施設の一覧(SharePoint リスト) |
| 電話番号一覧 | 課・係の名称、直通番号、機構改革の前の名称と番号 | 電話番号一覧(SharePoint リスト) |
| 祝日 | 年月日と名称 | 内閣府が提供する国民の祝日のCSV |
質を決めるのは、施設の一覧と電話番号一覧の2つです。 施設に略称の列が無ければ、原稿の「中央公民館」と一覧の「市立中央公民館」が結びつかず、照合できない施設として毎回人に回ります。 電話番号一覧に機構改革の前の名称と番号が無ければ、古い課名を「知らない課名」としか指摘できず、どの課に直せばよいかが出ません。
表記ルールには「直さなくてよい」例外も書きます。 書かれていないと、AIは見出しまで全部を指摘します。
祝日は、内閣府のページで CSV として提供されています。 現在は昭和30年(1955年)から令和9年(2027年)までが収録され、翌年の分は前年の2月に掲載すると説明されています。広報紙には翌年の日程が載ることがあるため、2月の更新を取り込む作業を年間の予定に入れておきます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 媒体・記事番号・掲載予定日 | トリガーが返すライブラリの列 | 処理の振り分けと、紙版とWeb版の対応づけ |
| 原稿の本文 | 「Get file content」 | AIに渡す本文 |
| 別の媒体の版 | ライブラリを記事番号で検索 | 紙版とWeb版の比較 |
| 施設・電話番号 | SharePoint リストの読み取り | 照合の正本 |
| 祝日 | 内閣府のCSVを取り込んだリスト | 祝日の確認 |
本文はテキストにしてから渡します。 講座案内は表に日程が書かれていることが多いため、表は1行を1行のテキストに、セルを区切り文字で残します。 1つの文に流し込むと、どの日付がどの回かが分からなくなります。
施設の一覧と電話番号一覧は、AIに丸ごと渡しません。 渡すのは、照合の処理の側です。AIが拾った名称と番号を、Python の側で一覧と突き合わせます。 一覧を丸ごとプロンプトに入れると、AIが一覧の中から「それらしい番号」を選んで答えを作ってしまいます。
別の媒体の版は、両方がそろったときだけ比べます。 紙版が先に届くことが多いため、後から届いた版の処理のときに、指摘一覧に残した先の版の抽出結果を読み出して比べます。
AIへ渡す前に整形する
- 形式の確認 … Wordの文書であることを確かめます。PDFで置かれたものは、起案課に元のWordを求めます
- 本文の取り出し … 本文、見出し、表をテキストにします。表は行ごとに区切ります
- 全角と半角の揺れの記録 … 数字や記号の全角・半角を、直さずにそのまま残し、どこにどちらが使われているかを記録します
- 掲載予定日の確認 … 列の掲載予定日が空なら処理を止め、起案課へ入力を求めます
- 年の補い方を決める … 原稿の日付は「10月18日」のように年が書かれていないことが多いため、掲載予定日を基準に年を決める規則を先に決めておきます(掲載予定日より前の月なら翌年、など)
- 同じ記事番号の版の検索 … 別の媒体の版があれば、その抽出結果を読み出します
- 字数の確認 … 極端に長い原稿は、見出しの単位で分けて渡します
3番目で数字を直さないのは、それ自体が指摘の対象だからです。 前処理で半角にそろえてしまうと、表記ルールに外れた全角の数字が、AIに渡る前に消えます。 前処理は、見つけたいものを消さないようにします。
5番目を決めずに進めると、年末年始の記事で誤ります。 12月に掲載する記事の「1月10日」は翌年の1月です。年の補い方をAIに任せると、記事ごとに違う年で曜日を計算します。 規則にしておけば、誤りがあっても同じ規則で直せます。
AIに処理させる
させるのは、次の2つだけです。 本文から照合に使う項目を拾い出すことと、表記ルールに外れた箇所をルールの番号付きで指摘することです。
| 拾い出すもの | 何を返すか | 照合するのは |
|---|---|---|
| 日付と書かれた曜日 | 原文の文字列、月日、書かれた曜日、どの催し・どの回の日付か | Python(暦と祝日) |
| 時刻 | 開始と終了、受付時刻 | Python(施設の開館時間) |
| 施設名 | 原文の表記と、その施設で何をするか | Python(施設の一覧) |
| 課名と電話番号 | 原文の表記、どの問い合わせ先として書かれているか | Python(電話番号一覧) |
| 金額・定員・対象 | 原文の文字列と値 | Python(紙版とWeb版の比較) |
拾い出しでは、原文の文字列をそのまま返させます。 「10月18日(土)」を「2026-10-18」に直して返させると、原稿に書かれた曜日が消え、食い違いを確かめられなくなります。 月日の値と、書かれた曜日の文字列を、別の項目として返させます。
| 指摘するもの | 返すもの |
|---|---|
| 表記ルールに外れた書き方 | 該当する文字列、ルールの番号、ルールに沿った書き方の案 |
| 同じ記事の中で表記が揺れている箇所 | 揺れている文字列の組 |
| 住民に意味が通りにくい言い回し | 該当する文字列と、理由 |
| させないこと | 理由 |
|---|---|
| 曜日の判定 | 暦の計算で決まる。AIに答えさせると誤りが自信のある形で混ざる |
| 電話番号や課名の正誤の判定 | 正本は電話番号一覧。AIは一覧を知らない |
| 休館日かどうかの判定 | 施設の一覧の休館日の決まりと、臨時休館の予定で決まる |
| 原稿の書き換え | 直すかどうかは広報係が決める |
| 記事の内容の妥当性の判断 | 施策の中身は起案課と所管の判断 |
1行目がいちばん大事です。 誤った曜日もほかの項目と同じ調子で返ってくるため、読む側は計算とAIの推測を見分けられません。曜日の指摘は、すべて計算から出します。
指示内容を固定する
あなたは市の広報係で、各課から届いたお知らせ原稿を校正する立場です。
次の2つの作業だけを行ってください。
【作業1:項目の拾い出し】
本文から、次の項目をすべて拾い出してください。
- 日付(書かれた曜日を含む)。どの催しの何回目の日付かも書く
- 時刻(開始・終了・受付)
- 施設名(会場、窓口、持参先など)
- 課名・係名と電話番号(問い合わせ先、申込先など)
- 金額、定員、対象者
拾い出すときは、原文の文字列をそのまま raw に入れてください。
書き直したり、正しい形に整えたりしないでください。
書かれていない項目は拾わないでください。推測で補わないでください。
【作業2:表記の指摘】
下の表記ルールに外れている箇所を指摘してください。
- 指摘には、必ずルールの番号を付けてください
- ルール表で「直さなくてよい」とされている例外には、指摘を付けないでください
- ルール表に無い好みの言い換えは、style_note として別に書いてください
- 同じ記事の中で、同じものを違う表記で書いている箇所も指摘してください
【してはいけないこと】
- 曜日が正しいかどうかを判断しないでください。曜日は別の処理で計算します
- 電話番号や課名が正しいかどうかを判断しないでください
- 施設が休館日かどうかを判断しないでください
- 年が書かれていない日付に、年を補わないでください
- 原稿全体を書き直した文を返さないでください
- 催しや施策の内容が妥当かどうかを書かないでください
【媒体】{medium}
【掲載予定日】{publish_date}
【表記ルール】{style_rules}
【本文】{body_text}
「曜日が正しいかを判断しない」を明記しないと、AIは善意で曜日を直します。 本文に「10月18日(金)」とあれば、指示が無くても「(土)の誤り」と書き添えることがあります。その指摘が正しくても、誤っていても、計算の結果と二重に出て、どちらを信じるかを人が迷います。 禁じるのは、曜日の判断そのものです。
「年を補わない」も同じ理由で、年は前処理の規則で決めます。
ルールに無い言い換えを別に書かせるのは、同じ一覧に並ぶとルールの指摘まで「好みの問題」として読み飛ばされるからです。
出力形式を固定する
Azure OpenAI の structured outputs を使い、strict を有効にして次の形のJSONで受け取ります。
{
"article_no": "",
"medium": "print | web",
"extracted": {
"dates": [
{ "raw": "", "month": 0, "day": 0, "weekday_written": "", "event": "", "session": "" }
],
"times": [ { "raw": "", "kind": "start | end | reception", "event": "" } ],
"facilities": [ { "raw": "", "role": "venue | counter | other" } ],
"contacts": [ { "dept_raw": "", "phone_raw": "", "role": "inquiry | application" } ],
"values": [ { "raw": "", "kind": "fee | capacity | target" } ]
},
"style_findings": [
{ "text": "", "rule_no": "", "suggestion": "" }
],
"style_notes": [ { "text": "", "note": "" } ]
}
strict を使うのは、後ろの Python が項目名で値を読むからです。 公開されている説明では、structured outputs はモデルが与えた JSON Schema に従うようにする機能で、有効な JSON だけを保証する従来の JSON モードとは違い、スキーマへの厳密な準拠を求められるとされています。
スキーマには決まりがあります。 すべての項目を必須にする必要があり、任意の項目は null との組み合わせで表します。 オブジェクトには必ず additionalProperties: false を付けます。項目の数は全体で100まで、入れ子は5段までとされています。文字列の pattern や format、配列の minItems などのキーワードは使えません。電話番号の形を pattern で縛ることはできないので、形の確認は Python の側で行います。
AIのJSONには「判定」の項目を置いていません。 曜日が合っているか、休館日か、番号が正しいかは、Python が次の形で書き足します。
{
"check": "weekday | holiday | closed_day | facility_name | phone | dept_name | cross_medium",
"raw": "10月18日(金)",
"expected": "土曜日",
"source": "暦の計算",
"level": "must_fix | style | ask_owner"
}
level | 付けるもの |
|---|---|
must_fix | 曜日の誤り、休館日の開催、旧課名・旧番号、紙版とWeb版の食い違い |
style | 表記ルールに外れた書き方、表記の揺れ |
ask_owner | 祝日の開催、一覧に無い施設名、一覧に無い番号 |
ask_owner を別にしているのは、誤りとは限らないからです。 祝日に開く催しや、一覧に無い民間の会場は普通にあります。これを must_fix に混ぜると、毎回「誤りではない」と戻すことになり、指摘一覧が信用されなくなります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| SharePoint「校正依頼」ライブラリ | Power Automate のトリガー | 原稿の登録を検知し、列と本文を取り出す |
| Azure OpenAI | API呼び出し | 項目の拾い出しと表記の指摘 |
| Python の照合の処理 | Power Automate から呼び出す | 暦・祝日・施設・電話番号の照合と、紙版とWeb版の比較 |
| SharePoint リスト(指摘一覧) | 書き込み | 記事ごと・指摘ごとの行 |
| Teams | 通知 | 起案課と広報係へ、指摘が出たことを知らせる |
| ホームページのCMS | 既存の公開の手順 | この構成からは書き込まない |
CMSへは書き込みません。 この構成が出すのは指摘までで、公開の操作は従来どおり広報係が行います。 校正の仕組みと公開の仕組みがつながっていると、指摘が残ったままの記事が公開される経路ができます。
原稿のWordにも書き込みません。 指摘はリストの行として持ち、原稿に反映するのは起案課か広報係です。 AIが原稿を直接直すと、誰がどこを直したかが分からなくなります。
人が確認する
広報係が見るのは、指摘一覧です。原稿を最初から読み直すことはしません。
must_fixを先に見る … 曜日の誤り、休館日の開催、旧番号、紙版とWeb版の食い違い。どれも根拠(暦・一覧・もう一方の版)が行に書いてあるので、確かめて起案課へ戻しますask_ownerを起案課に確かめる … 祝日の開催や、一覧に無い会場。広報係では判断できないので、指摘一覧から起案課に回しますstyleの採否を決める … ルールの番号を見て、採るものだけを原稿に反映します- 採らなかった指摘に理由を残す … 「見出しのため省略」「固有名詞のため」など
4番目を省かないでください。 採らなかった理由がたまると、表記ルールの例外として書き足すべきものが見えてきます。 同じ指摘を毎月採らないなら、ルール表のほうを直します。
must_fix が毎月同じ課から出ているなら、その課の原稿の下敷きが古いということです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 記事番号・掲載予定日が空 | 処理せず、起案課へ列の入力を求める通知を返す |
| PDFで置かれた | 元のWordを起案課に求める |
| 年が書かれていない日付 | 前処理の規則で年を決める。決めた年を指摘一覧に書き、人が確かめられるようにする |
| 施設名が一覧に無い | ask_owner。略称の列が足りないことが多いので、一覧の側を直す |
| 電話番号が一覧に無い | ask_owner。外部の団体の番号か、一覧の漏れかを起案課に確かめる |
| 旧課名・旧番号が見つかった | must_fix。新しい名称と番号を一覧から出して並べる |
| 別の媒体の版がまだ無い | 比較をせずに保留し、後の版が届いたときに比べる |
| AIの応答が返らない・スキーマに合わない | 指摘一覧に「処理できなかった」の行を作り、広報係に知らせる |
| 臨時休館の予定が一覧に入っていない | 休館日の照合は決まった休館日だけになる。施設の所管課に予定の登録を頼む |
上から4行目と最後の行が、運用で一番効きます。 照合の精度は、施設の一覧がどれだけ整っているかで決まります。
記録を残す
- 原稿のファイルと版の履歴(SharePoint の版管理)
- AIに渡した本文と、返ってきたJSONの全文
- Python の照合の結果と、そのとき参照した施設の一覧・電話番号一覧の内容
- 広報係が採った指摘と、採らなかった指摘とその理由
- 起案課に戻した日時と、戻ってきた日時
- 課ごと・指摘の種類ごとの件数
3つ目で「そのときの一覧」を残すのは、一覧が後から変わるためです。 施設の休館日や課の番号が変わった後で、過去の記事の指摘を見直すと、当時は正しかった記載が誤りに見えます。 当時の一覧が残っていれば、その記事が当時正しかったかを確かめられます。
04実装レベルの3段階
本記事の想定は半自動化で、1件15分が5分になります。 差が大きいのは、②と③の照合が人の手から計算に移るからです。 本格構成は、CMS の下書きを外部から読めるかで決まります。 手段が無い場合は、半自動化のまま運用するほうが確実です。 段階を飛ばさないでください。 半自動化の指摘一覧を2〜3か月見ると、照合できない施設名と旧番号の多い課が先に分かります。
05工数削減シミュレーション
導入後 240件 × 5分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 各課が書いたお知らせを広報担当が取りまとめ、広報紙とホームページの両方に載せている市区町村。月に百本以上の記事を広報係の数名で確認しており、表記の直しと日付・電話番号の確認に時間を取られている場合。機構改革や施設の改修で課名・電話番号・休館日が変わったあと、古い情報の載った記事が出てしまったことがある場合。公共施設の一覧と課ごとの電話番号一覧を、表の形で管理できる場合。
- 記事が月に数十本で、読み合わせで足りる場合。お知らせをCMSの定型の入力欄だけで作っており、日付や問い合わせ先が選択式で固定されている場合。庁内の規程で、公開前の原稿を外部のクラウドサービスへ渡すことが認められていない場合。なお、記事の内容そのものが施策として妥当か、住民に伝える必要があるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月公開したお知らせから20本を選ぶ(日程が多い講座案内と、紙版・Web版の両方があるものを必ず入れる)
- その20本について、広報係が当時直した箇所をWordの変更履歴から書き出す
- 手元の生成AIの画面に表記ルールを貼り、1本ずつ本文を貼って「日付・施設名・電話番号を原文のまま拾い出し、表記ルールに外れた箇所を番号付きで指摘してください。曜日の正誤は判断しないでください」と指示する
- 拾い出された日付を表計算ソフトに貼り、関数で曜日を出して、書かれた曜日と比べる
- 拾い出された電話番号を、電話番号一覧と照らす
- 当時の直しと、AIの指摘と、4番・5番の結果を突き合わせる
組む前に、「拾い出しが漏れないか」と「指摘が多すぎないか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の直しと同じ箇所がおおむね拾えた | SharePoint と Power Automate の連携に進む |
| 表の中の日付が拾えていない | 本文の取り出し方の問題。表を行ごとに崩す前処理で直る |
| ルールに無い言い換えの指摘が多すぎる | 指示の書き方で直る。例外をルール表に書き足す |
| 電話番号の照合で一覧に無い番号が多い | 一覧の整備が先。 AIの問題ではない |
4行目が出ることは珍しくありません。 一覧が機構改革の前のまま、ということが試して初めて分かります。失敗ではなく、目で見るしかなかった理由が見えたということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが曜日を直してくる | 曜日の判断を指示で禁じ、曜日の指摘は計算からだけ出す |
| 拾い出しで原文が整えられ、書かれた曜日が消える | 原文の文字列を raw にそのまま返させ、月日と書かれた曜日を別の項目にする |
| 年末年始の記事で曜日が1年ずれる | 年の補い方を前処理の規則で決める。 AIに年を補わせない |
| 表の中の日程が拾えない | 本文を取り出すとき、表を行ごとのテキストにする |
| 課ごとのフォルダーに置いた原稿で動かない | 非推奨の「When a file is created in a folder」はサブフォルダーでは動かない。 ライブラリを1つにして列で分ける |
| 施設名が照合できない | 施設の一覧に略称の列を足す |
| 旧課名に新しい名称が出ない | 電話番号一覧に機構改革の前の名称と番号を持たせる |
| 祝日の開催が全部誤りとして出る | ask_owner に分け、must_fix に混ぜない |
| 翌年の日程の祝日が照合できない | 内閣府のCSVは翌年分が前年の2月に掲載される。 取り込みを年間の予定に入れる |
| ルールに無い言い換えが多すぎる | style_notes に分け、ルール表に例外を書き足す |
| 電話番号の形を JSON Schema で縛ろうとする | strict では pattern が使えない。 形の確認は Python で行う |
上の2行が、この構成の失敗のほとんどです。 どちらも、曜日という計算で決まるものを、AIの側に残してしまうことから起きます。拾うのはAI、照らすのは計算、という分け方が崩れないかどうかで、指摘一覧が信用されるかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公開前のお知らせ原稿(未発表の施策、募集の条件、日程)、施設の一覧、課ごとの電話番号一覧です。住民の個人情報は、原則として含まれません。
- 原稿に個人の情報が入っていないかを先に見る … 講師の連絡先、表彰を受ける住民の氏名などです。公開予定の情報でも、公開前に外部のサービスへ渡してよいかは庁内の規程で確かめてください
- 処理の場所を、デプロイの種類で決める … Global または DataZone のデプロイでは、指定した地理の外で処理されることがあるとされています。庁内の規程に処理の場所の決まりがあるなら、それに合う種類を選びます
- 不正利用の監視の扱いを決めておく … 監視を変更する申請が承認されれば、データの保存と人による確認は行われないとされています(自動の確認は続くことがあります)。未発表の施策を扱うことが多いなら、申請を検討してください。 変更されたかは、リソースの JSON ビューか
az cognitiveservices account showで、Capabilities にContentLoggingがfalseとして現れるかで確かめられます - 原稿を自動で直さない、自動で公開しない … 出すのは指摘までです。住民に届く文書の最後の判断は、広報係と起案課が行います
- この構成は、記事の中身を判断しません … 施策として正しいか、住民に伝えるべきかは、起案課と所管の判断です。指摘一覧が空であることは、記事が正しいことを意味しません
- 一覧の更新の責任を決める … 施設の休館日は施設の所管課、電話番号は総務の担当、というように、一覧ごとに誰が直すかを決めておきます。 一覧が古ければ、照合は古い正本に照らして「正しい」と出します
誤りが起きた場合のリスクは、古い番号や誤った曜日が住民に届くことと、正しい記載を誤りとして直してしまうことの2つです。 前者は正本が古いと起き、後者はAIに曜日を判断させると起きます。
10まず何から始めるか
1週目:表記ルールを番号付きの表にする
市の文書事務の手引と広報紙の表記の決まりから、実際に直すことの多い項目を40ほど選び、番号・誤りの例・正しい書き方・直さなくてよい例外の4列の表にします。広報係で長く勤めた職員に、例外の列を埋めてもらいます。
2週目:20本で試す
先月のお知らせから20本を選び、手元の生成AIの画面で拾い出しと表記の指摘をさせます。当時の直しと突き合わせ、表の中の日付が漏れていないか、指摘が多すぎないかを見ます。 曜日は表計算の関数で確かめます。
3週目:一覧に列を足す
施設の一覧に略称と休館日の決まり、電話番号一覧に機構改革の前の名称と番号の列を足します。2週目の試しで照合できなかった施設名と番号から埋めます。 あわせて、内閣府の祝日のCSVを取り込みます。
4週目:SharePoint から指摘一覧までをつなぐ
「校正依頼」ライブラリと4つの列を作り、Power Automate で Azure OpenAI と照合の処理を呼んで、指摘一覧に書き出すところまで作ります。この時点では、広報係の2名だけで使います。
2か月目: 各課に置き方を案内し、紙版とWeb版の比較を足します。3か月目以降: 採らなかった指摘の理由からルール表の例外を書き足し、1件15分が何分になったかを実測します。照合できない施設名と旧番号の指摘が目に見えて減った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
structured outputs がモデルに JSON Schema への準拠を求める機能で、有効なJSONだけを保証する JSON モードと異なること。strict の指定。すべての項目を必須にし、任意の項目は null との組み合わせで表すこと。additionalProperties: false が必要なこと。項目は全体で100まで、入れ子は5段までであること。pattern・format・minItems などが使えないこと | Microsoft Learn: How to use structured outputs with Azure OpenAI in Microsoft Foundry Models | 2026-09-30 |
入力と出力、埋め込みが他の顧客やモデルの提供元に提供されず、モデルの改善や基盤モデルの学習に使われないこと。指定した地理での処理と、Global・DataZone のデプロイでの処理の場所。不正利用の監視と人による確認、監視の変更が承認された場合の扱い。ContentLogging が false として現れることで確かめられること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-09-30 |
| 「When a file is created (properties only)」がライブラリの列のプロパティだけを返し、本文はファイルの識別子で取得すること。「When a file is created in a folder」が非推奨で、サブフォルダーでは動かないこと | Microsoft Learn: SharePoint - Connectors | 2026-09-30 |
| 国民の祝日のCSVが提供され、昭和30年(1955年)から令和9年(2027年)までを収録し、翌年分を前年の2月に掲載すること。振替休日の考え方 | 内閣府: 国民の祝日について | 2026-09-30 |
表記ルールの中身は、各市区町村の文書事務の手引と広報の決まりに従ってください。 本記事は、公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0390)についてのご相談はこちらから。
