広告の新しい提案を作る前に、業種・目的・予算の近い過去のキャンペーンを探し、施策と結果と反省点を根拠の資料付きで返す
営業やプランナーが新しい案件の業種・目的・予算を入れると、過去のキャンペーンから条件の近いものを探し、施策と結果と反省点を企画書・報告書のページ付きで返します。提案前の調べものが、聞いて回ることから読み比べることに変わります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- EC/小売/広告
- 対象部門
- マーケティング/営業
- 対象業務
- 情報検索/比較検討
- 主な課題
- 属人化している/情報が見つからない/書類作成に時間がかかる
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/属人化解消/検索時間短縮
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 営業がクライアントから課題と予算の目安を聞き、提案の方向を決める
- 社内のチャットで「似た案件をやった人はいないか」と聞き、返事を待つ
- 共有フォルダをクライアント名や業種の言葉で探し、企画書を開いて中身を確かめる
- 見つかった案件の実施報告書と効果測定のレポートを開き、結果の数字と反省点を探して読む
- 使えそうな数字と施策をメモし、提案書の「類似実績」のページに写す
- 上長に確認してもらい、クライアントへ出す
- 自動案件管理の仕組みでキャンペーンが「振り返り完了」になると、3種類の資料と案件の属性を取り出す
- 自動資料をページごとの画像と文字に分け、ページごとに埋め込みを作る
- 自動Claude が、キャンペーンの概要カード(目的・媒体・目標と実績・反省点)を資料から取り出す
- 人担当の営業かプランナーが、カードの数字と反省点を確かめて確定する
- 自動ページとカードを検索基盤に登録する
- 人営業が新しい案件の業種・目的・予算・想定する媒体・課題の文を検索画面に入れる
- 自動言葉の一致とページの近さを組み合わせたハイブリッド検索で、業種と予算の帯で絞ったページを集める
- 自動同じキャンペーンのページを1件にまとめ、キャンペーンごとに根拠のページを3枚まで付けて上位10件を返す
- 自動Claude が10件について、施策・結果・反省点を資料のページ付きでまとめる
- 人営業とプランナーが結果を読み、根拠のページを開いて確かめ、類似実績に使う案件を選ぶ
- 自動選んだ案件と引用のページを、提案書の類似実績のページの下書きに書き出す
各工程の詳しい説明を読む
- 営業がクライアントから課題と予算の目安を聞き、提案の方向を決める
- 社内のチャットで「似た案件をやった人はいないか」と聞き、返事を待つ
- 共有フォルダをクライアント名や業種の言葉で探し、企画書を開いて中身を確かめる
- 見つかった案件の実施報告書と効果測定のレポートを開き、結果の数字と反省点を探して読む
- 使えそうな数字と施策をメモし、提案書の「類似実績」のページに写す
- 上長に確認してもらい、クライアントへ出す
(a)条件で探せない。 ファイル名とフォルダの分け方はクライアント単位で、業種・目的・予算の帯では引けません。 化粧品の新規獲得の案件を探したいのに、フォルダは「A社」「B社」と並んでいます。どのクライアントが化粧品かを知っている人でないと、探し始めることもできません。
(b)結果と反省点が後ろに埋もれる。 企画書は見つかっても、その企画を実施してどうなったかは別のファイルです。 効果測定のレポートは数十ページあり、目標に届かなかった理由や振り返りの反省点は最後の数ページにまとめて書かれています。急いでいると、企画書だけを見て「類似実績」に入れてしまいます。
(c)担当だった人に聞くしかない。 何がうまくいき何が失敗したかを覚えているのは担当者です。その人が異動すると、記録は残っていても読み解く手がかりが失われます。
(d)うまくいった話しか残らない。 類似実績は成果の出た案件に偏り、目標に届かなかった案件の反省点は探されないので読まれません。
取り込み(キャンペーンの振り返りが終わるたび)
- 【自動】 案件管理の仕組みでキャンペーンが「振り返り完了」になると、3種類の資料と案件の属性を取り出す
- 【自動】 資料をページごとの画像と文字に分け、ページごとに埋め込みを作る
- 【自動】 Claude が、キャンペーンの概要カード(目的・媒体・目標と実績・反省点)を資料から取り出す
- 【人】 担当の営業かプランナーが、カードの数字と反省点を確かめて確定する
- 【自動】 ページとカードを検索基盤に登録する
検索(提案を作るたび)
- 【人】 営業が新しい案件の業種・目的・予算・想定する媒体・課題の文を検索画面に入れる
- 【自動】 言葉の一致とページの近さを組み合わせたハイブリッド検索で、業種と予算の帯で絞ったページを集める
- 【自動】 同じキャンペーンのページを1件にまとめ、キャンペーンごとに根拠のページを3枚まで付けて上位10件を返す
- 【自動】 Claude が10件について、施策・結果・反省点を資料のページ付きでまとめる
- 【人】 営業とプランナーが結果を読み、根拠のページを開いて確かめ、類似実績に使う案件を選ぶ
- 【自動】 選んだ案件と引用のページを、提案書の類似実績のページの下書きに書き出す
4番目が、この設計の分かれ目です。 カードを作るのはAIですが、目標と実績の数字が正しいか、反省点が振り返りの会議の結論どおりかを確かめるのは、その案件を担当した人です。 振り返りの直後なら、担当者は数字の意味を覚えています。
8番目でキャンペーン単位にまとめないと、1件のスライドが10枚並びます。 営業が知りたいのは10件の違うキャンペーンです。
02今回想定するシステム構成
【取り込み】案件管理の仕組み(振り返り完了) ▼【トリガー】ステータスの変更 AWS Lambda ── 企画書・実施報告書・効果測定のレポートを取り出す ├──▶ ページごとの画像と文字に分ける ▼ Cohere Embed v4(Amazon Bedrock)── ページの画像と文字を合わせて埋め込み Claude(Amazon Bedrock)── キャンペーンの概要カード(目的・媒体・目標と実績・反省点) ▼【人】担当者が確定 Amazon OpenSearch Service(ページの索引。キャンペーン番号・業種・予算を項目に持つ) 【検索】営業の検索画面(業種・目的・予算・課題の文) ▼ Amazon OpenSearch Service ── ハイブリッド検索(言葉の一致+ページの近さ) │ スコアの統合は RRF、業種と予算の帯で絞り込み │ キャンペーン番号で collapse し、ページを3枚まで付ける ▼ Claude(Amazon Bedrock)── 検索結果のブロックで渡し、引用付きでまとめる ▼ 営業・プランナーが確認 → 提案書の類似実績のページへ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(ハイブリッド検索、RRF、collapse) | Azure AI Search、Vertex AI Search(Agent Search) |
| 埋め込み | Cohere Embed v4(Amazon Bedrock。ページの画像と文字) | OpenAI の埋め込みモデル |
| 生成AI | Claude(Amazon Bedrock。カードの取り出しと検索結果のまとめ) | Gemini API、OpenAI API |
| 連携 | AWS Lambda(取り込み、カードの登録、提案書への書き出し) | AWS Step Functions |
| 保管 | Amazon S3(資料の写しとページの画像) | 既存のファイルサーバー |
| 案件管理 | 既存の案件管理の仕組み | ― |
検索の中心は、OpenSearch のハイブリッド検索と、スコアを順位で統合する score-ranker プロセッサーです。 公開されているドキュメントでは、このプロセッサーはクエリとフェッチの間で動き、RRF(Reciprocal Rank Fusion)でハイブリッドクエリの結果を1つの順位にまとめるものとされ、2.19で導入されました。各クエリのスコアを同じ尺度にそろえる必要がないのが特徴です。言葉の一致のスコアと、ページの近さのスコアは尺度がまったく違うので、この構成に合っています。
RRF の rank_constant は既定が60(1〜10,000)で、クエリごとの重みは0.0〜1.0、合計1.0で指定できます。
キャンペーン単位にまとめるのは、ハイブリッドクエリの collapse です。 ドキュメントでは、3.1で導入され、指定した項目の値ごとに最もスコアの高い文書だけを返すとされています。項目は keyword か数値の型である必要があり、collapse の中の inner_hits で、同じグループの文書を追加で取り出せるのは3.2からです。Amazon OpenSearch Service は3.1、3.3、3.5などのバージョンをサポートしているので、ドメインは3.3以降で作ります。
埋め込みは、Cohere Embed v4 を想定します。 テキストと画像の両方を受け付けるマルチモーダルの埋め込みモデルで、文字と画像を交互に含む入力(inputs)を1件として埋め込めるとされています。スライドのグラフや表の画像と、そのページの文字を一緒に埋め込めるのが、この題材で選ぶ理由です。
03どうやって実装するのか
処理の起点を決める
取り込みと検索で、起点が2つあります。
取り込みは、案件管理の仕組みでキャンペーンが「振り返り完了」になったことを起点にします。 実施中や振り返り前のキャンペーンは取り込みません。結果の数字が確定していない資料や、反省点がまだ書かれていない資料を検索結果に出さないためです。 ステータスの変更を通知できない仕組みなら、毎晩、振り返り完了の日付で絞った一覧を取りに行きます。
過去の約3,000件は、別に一括で取り込みます。 このときは担当者の確認が取れないので、カードに「未確認」の印を付けます。検索結果では未確認のカードを区別して表示し、類似実績に使うと決めたときに、その場で数字を資料と照らしてもらいます。
検索は、営業が検索画面で「探す」を押したときに動きます。 提案の方向が固まる前の段階から、業種や予算の帯を変えて何度でも探せるようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 案件の属性 | キャンペーン番号、クライアント、業種、期間、予算、担当者、公開範囲 | 案件管理の仕組み |
| 企画書 | 目的、ターゲット、施策、媒体の配分、目標のKPI | 共有フォルダ |
| 実施報告書 | 実施した施策、変更点、トラブル | 共有フォルダ |
| 効果測定のレポート | KPIの目標と実績、グラフ、振り返りの反省点 | 共有フォルダ |
| 概要カード | 取り込み時に作る。目的の区分、媒体、目標と実績、達成の区分、反省点の文、ページ | 検索基盤 |
| 新しい案件(検索時) | 業種、目的の区分、予算、想定する媒体、課題の文 | 検索画面 |
質を決めるのは、案件の属性の業種と予算です。 業種がクライアントごとに自由に書かれていると、「化粧品」「コスメ」「ビューティー」が別の業種になり、絞り込みが効きません。 最初に業種の区分を30程度に決め、案件管理の仕組みの側でその区分から選ぶようにします。
目的の区分も最初に固定します。 認知、理解、獲得、来店、継続・再購入、採用の6つ程度です。区分が決まらないうちに取り込みを始めると、後から全件のカードを作り直すことになります。
データの取得方法を決める
資料は PowerPoint と PDF から、ページごとの画像と、そのページの文字に分けて取り出します。スライドの文字は少なく、結果の数字はグラフの画像の中にあることが多いためです。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| ページの画像 | 資料をページごとに画像にしたもの | 埋め込み(文字と一緒に) |
| ページの文字 | スライドの文字と、ノート欄 | 言葉の一致の検索と、引用の本文 |
| 案件の属性 | 案件管理の仕組み | 絞り込みの項目と、公開範囲 |
| 資料の種類とページ番号 | ファイルの種類と並び | 引用で示す場所 |
ページの埋め込みは、Cohere Embed v4 の inputs で作ります。 1件の入力に、ページの文字(資料の種類、キャンペーン番号、ページ番号を先頭に付ける)とページの画像を並べ、input_type は search_document にします。ドキュメントでも、PDFはページごとに画像にし、ファイル名などの情報を隣の文字に入れて送ることが勧められています。検索時の問い合わせは search_query で埋め込みます。
検索時には、新しい案件から2つのクエリを作り、ハイブリッドクエリのサブクエリにします。 1つは課題の文と媒体の名前による言葉の一致、もう1つは課題の文の埋め込みによる近さです。業種と予算の帯は filter に入れ、すべてのサブクエリに効かせます。
予算の帯は、新しい案件の予算の0.5倍から2倍を既定にします。 3,000万円の案件なら1,500万円から6,000万円です。狭すぎると0件になり、広すぎると規模の違う施策が混ざります。 幅は営業局で決め、検索画面で変えられるようにします。
AIへ渡す前に整形する
- ページへの分割 … 資料をページごとの画像と文字に分け、資料の種類(企画書/実施報告書/効果測定)とページ番号を付けます
- 表紙と目次の除外 … 表紙、目次、会社紹介、白紙のページは索引に入れません
- 画像の大きさの確認 … Cohere Embed v4 では、2,458,624ピクセルを超える画像は縮小され、3,136ピクセル未満の画像は拡大されるとされています。スライドは縮小される側に入るので、グラフの小さな文字が読めなくなっていないかを最初に確かめます
- 要求の大きさの確認 … 1回の要求は96件まで、全体で約20MBが上限です。1件のキャンペーンのページをまとめて送るときは、この範囲に分けます
- クライアント名の扱い … ページの文字にあるクライアント名と商品名を、案件の属性と照らして印を付けます。公開範囲の判定と、第13章の伏せ方に使います
- 重複の検知 … 同じ資料の修正版が複数あるときは、最後の版だけを取り込みます
3番目を軽く見ないでください。 効果測定のスライドは、1枚に表とグラフを詰め込んだものが多く、縮小されると数字の部分がつぶれます。 つぶれたページは文字の側で拾えるように、スライドのノート欄に数字を書く運用を、取り込みの開始と同時に営業局へお願いします。
AIに処理させる
AIの仕事は2か所です。取り込み時の概要カードの取り出しと、検索結果のまとめです。
| 場面 | させること |
|---|---|
| 取り込み | 3種類の資料から、目的の区分、媒体、KPIの目標と実績、達成の区分、反省点の文、根拠のページを取り出す |
| 検索 | 上位10件について、新しい案件との違い(業種・予算・媒体)、施策、結果、反省点を引用付きでまとめる |
| 検索 | 新しい案件の条件のうち、近い過去のキャンペーンが見つからない条件を「該当する事例なし」として書く |
| させないこと | 理由 |
|---|---|
| 新しい提案の施策や媒体配分の提案 | 何を提案するかは営業とプランナーが決める。根拠の薄い推奨が提案書に入る |
| 結果の数字の予測 | 「今回もCPAは同程度」と書くと、クライアントへの約束に見える |
| 資料に書かれていない反省点の推測 | 推測された反省点は、次の担当者にとって「振り返りで出た結論」になる |
| 数字の補完と計算 | 実績が書かれていなければ空のまま。目標と予算から割り戻さない |
| 達成の区分の読み替え | 資料の結論どおりにする。「実質的には達成」と読み替えない |
3行目がいちばん起きやすい失敗です。 目標に届かなかったキャンペーンで反省点が書かれていないと、AIはグラフの形から理由を補いたくなります。書かれていなければ「記載なし」とし、担当者の確認で埋めます。
2行目も外せません。 まとめの文はそのまま提案書に写されやすく、「前回同様の成果が見込めます」という一文は、根拠の無い約束としてクライアントに届きます。
指示内容を固定する
取り込み時(概要カードの取り出し):
あなたは広告会社で、終了したキャンペーンの記録を整理する担当です。
渡された企画書・実施報告書・効果測定のレポートだけを根拠にしてください。
推測で埋めないでください。
【やること】
次の項目を取り出してください。
- 目的の区分:認知 / 理解 / 獲得 / 来店 / 継続・再購入 / 採用
- 実施した媒体と施策(企画書ではなく実施報告書の内容を優先)
- KPIごとの目標と実績(数値と単位)
- 達成の区分:achieved / partially / not_achieved / not_measured
- 反省点:効果測定のレポートや実施報告書に書かれた文をそのまま写す
- それぞれの根拠のページ(資料の種類とページ番号)
【厳守事項】
- 実績の数値が書かれていなければ null にしてください。
目標や予算から計算して埋めないでください。
- 企画書と実施報告書で施策が違うときは、実施報告書を正とし、
changed_from_plan に違いを書いてください。
- 反省点は、資料に書かれた文だけを写してください。
書かれていなければ「記載なし」とし、理由を推測しないでください。
- 達成の区分は資料の結論の書き方に従ってください。読み替えないでください。
- グラフの数値が読み取れないときは、値を入れず unreadable にページを書いてください。
検索時(結果のまとめ):
あなたは営業の提案準備を助ける担当です。
渡された検索結果だけを根拠に、新しい案件と過去のキャンペーンを比べてください。
【新しい案件】{new_case}
【過去のキャンペーン(上位10件)】検索結果として渡します
【書くこと】
1. 各キャンペーンについて、新しい案件との違い(業種・予算・媒体)
2. 各キャンペーンの施策、KPIの目標と実績、達成の区分
3. 各キャンペーンの反省点(資料の記載どおり)
4. 新しい案件の条件のうち、渡されたどのキャンペーンにも近いものがない条件
【厳守事項】
- 新しい案件の施策や媒体配分を提案しないでください。
- 結果を予測しないでください。「同程度の成果が見込める」と書かないでください。
- 検索結果にないキャンペーンや数字に触れないでください。
- 反省点を言い換えたり、付け足したりしないでください。
- 「未確認」の印のあるキャンペーンは、その旨を必ず書いてください。
検索結果は、Claude の検索結果ブロックで渡します。 1件のキャンペーンを1つの search_result にし、source にキャンペーン番号と資料の種類とページ、title にキャンペーン名、content にカードとページの文字を入れます。ドキュメントでは、引用の最小単位は content の中のテキストブロックで、細かく引用させたいならブロックを小さく分けるとされています。 そこで施策、結果、反省点を別々のブロックにし、まとめの1文がどのブロックから来たかを start_block_index でたどれるようにします。
「施策を提案しない」と「結果を予測しない」を別々に書かないと、どちらかが最後に一言添えられます。 片方だけを禁じると、もう片方の形で推奨が入ってきます。
出力形式を固定する
取り込み時のカードは、次の形のJSONで受け取ります。
{
"campaign_id": "CP-2023-0412",
"objective": "認知 | 理解 | 獲得 | 来店 | 継続・再購入 | 採用",
"media": ["", ""],
"tactics": "",
"changed_from_plan": "",
"kpis": [
{ "name": "", "target": null, "actual": null, "unit": "", "page": "" }
],
"result": "achieved | partially | not_achieved | not_measured",
"lessons": [ { "text": "", "page": "" } ],
"unreadable": [""]
}
1つ目の理由は、objective と result を決まった値に限れることです。 担当者によって「未達」「届かず」「苦戦」と書き方が違っても、区分は4つにそろいます。「獲得が目的で、目標に届かなかった案件だけ」という絞り込みが、ここで初めて可能になります。
2つ目は、kpis の目標と実績を数値で持てることです。 自由文で受け取ると単位と書き方がそろわず、検索結果の一覧で目標と実績を並べて見せられません。 実績が null の案件は、一覧で「実績の記載なし」と表示します。
3つ目は、changed_from_plan と unreadable で担当者の確認が速くなることです。 印の付いた箇所だけを見れば済みます。
検索の要求は、次の考え方で組みます。
| 部分 | 中身 |
|---|---|
| サブクエリ1 | 課題の文と媒体の名前による言葉の一致(ページの文字) |
| サブクエリ2 | 課題の文の埋め込みによる近さ(ページの埋め込み) |
filter | 業種の区分、予算の帯、公開範囲 |
| 検索パイプライン | score-ranker プロセッサー(RRF)。重みは営業局で決める |
collapse | キャンペーン番号。inner_hits で根拠のページを3枚まで |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件管理の仕組み | ステータスの通知、または毎晩の一覧の取得 | 振り返り完了のキャンペーンと属性を取り出す |
| Amazon S3 | Lambda から読み書き | 資料の写しとページの画像 |
| Cohere Embed v4(Amazon Bedrock) | Lambda からの呼び出し | ページの画像と文字の埋め込み |
| Claude(Amazon Bedrock) | Lambda からの呼び出し | カードの取り出しと、検索結果のまとめ |
| Amazon OpenSearch Service | 索引への登録と、ハイブリッド検索 | ページとカードの検索 |
| 提案書 | 検索画面からの書き出し | 選んだ案件と引用のページを類似実績の下書きへ |
埋め込みの次元は、索引を作る前に決めます。 Cohere Embed v4 の出力は256、512、1,024、1,536から選べ、指定しなければ1,536です。 索引の次元と合わないと登録が失敗するので、output_dimension を明示し、索引の設定と同じ値にします。
案件管理の仕組みと共有フォルダには書き込みません。 提案書への書き出しは下書きまでで、クライアントに出すのは営業です。 確定したカードは検索基盤の側だけに持ちます。
人が確認する
確認は2か所です。取り込み時の担当者と、検索時の営業・プランナーです。
- 担当者がカードを確定する … 振り返りの直後に、目標と実績の数字と反省点を確かめます。
changed_from_planとunreadableの付いた箇所を優先して見ます - 営業が根拠のページを開く … 類似実績に使う案件は、引用の付いたページを必ず開いて確かめます
- 未確認のカードを確かめる … 一括取り込みで作ったカードを使うときは、その場で数字を資料と照らし、確かめたら「確認済み」に変えます
- クライアントへの出し方を決める … 他のクライアントの実績をどこまで具体的に書くかは、第13章の取り決めに従い、上長が確かめます
1件の提案あたり35分を目安にします。 検索結果の10件を読み、うち数件の資料を開いて確かめ、類似実績のページを整える時間です。まとめの文だけを読んで提案書に写す運用にはしません。
4番目を省かないでください。 検索結果には、ほかのクライアントの施策と数字が並びます。社内で読むことと、提案書に載せてクライアントに見せることは別の話です。
例外に対処する
| 起きること | 対応 |
|---|---|
| グラフの数字が読めない | unreadable にページを記録し、担当者が確認時に数字を入れる |
| 効果測定のレポートが無いキャンペーン | result を not_measured にし、検索結果で区別して表示する |
| 企画と実施で施策が違う | 実施報告書を正とし、changed_from_plan に記録する |
| 担当者が異動・退職している | 同じ局の人を確認者にする。いなければ「未確認」のまま登録 |
| 予算の帯で絞ると0件 | 帯を広げて再検索し、それでも0件なら業種の絞り込みを外したことを明示して出す |
| 近い事例が1件もない | 「該当する事例なし」と表示する。無理に近いものを並べない |
| 1件のキャンペーンのページだけが並ぶ | collapse が効いていない。キャンペーン番号の項目の型を確かめる |
| 公開範囲の外の案件が候補に入る | 文書レベルのセキュリティで検索時点で除外される。まとめには渡さない |
| Bedrock の呼び出しに失敗した | 検索の一覧だけを表示し、まとめは再試行を促す |
上から3行目までが、取り込みの失敗の大半です。 どれもAIの問題ではなく、振り返りの資料の作り方の問題です。 unreadable の多い資料の型を数えると、効果測定のレポートのどの様式を直すべきかが見えてきます。
記録を残す
- 取り込んだキャンペーンの番号、振り返り完了の日、取り込んだ日時
- Claude が返したカードのJSONと、担当者が確定した時に直した項目
- 検索のたびの新しい案件の条件、絞り込みの値、上位10件と根拠のページ
- Claude に渡した検索結果と、返ってきたまとめと引用
- 営業が類似実績に選んだ案件と、選ばなかった案件
- 「該当する事例なし」と出た条件の記録
2つ目で「直した項目」を残すのは、取り出しの精度を測るためです。 どの項目がよく直されているかを見れば、指示を直すべきか、振り返りの様式を直すべきかが分かります。
最後の行は、会社としての経験の空白を示します。 何度も「該当する事例なし」と出る業種と目的の組み合わせは、まだ実績の無い領域です。 営業局の会議で月に1回共有し、新しい提案の際に慎重に見積もる材料にします。
04実装レベルの3段階
半自動化で、業種と予算による絞り込みまでは自動になります。 ただし課題の文の近さを見ないので、業種が違っても課題が近いキャンペーン(たとえば、化粧品と健康食品の新規獲得)を拾えません。本格構成との差はここで、本記事の想定は本格構成です。
05工数削減シミュレーション
導入後 60件 × 35分 ÷ 60 = 35 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 総合広告会社やデジタル広告の代理店で、過去10年分ほどのキャンペーンの企画書・実施報告書・効果測定のレポートが共有フォルダや案件管理の仕組みにたまっている会社。提案のたびに「似た業種で、似た予算で、何をやってどうなったか」を探すのに、担当だった人へ聞いて回るしかない場合。効果測定の数字と、実施後の振り返りで書いた反省点が、提案の前に読まれないまま眠っている場合。AWS を社内の基盤として使っており、検索基盤と生成AIを社内の閉じた環境で動かせる場合。
- 年間のキャンペーン数が数十件で、営業とプランナーが全件を覚えていられる規模の場合。効果測定のレポートを作っておらず、実施報告書に結果の数字が残っていない場合(先に振り返りの様式を決める必要がある)。クライアントとの契約で、実績の社内での再利用が認められていない案件が大半を占める場合。なお、新しい提案の施策と予算配分を決めるのは営業とプランナーで、この構成はその判断を代わりに行いません。
07最小構成で試す方法
- 1つの業種(たとえば化粧品)のキャンペーンを40件選び、手で概要カードを作る(目的、媒体、目標と実績、達成の区分、反省点、ページ)
- 最近その業種で作った提案を20件選び、当時、類似実績に何を入れたかを控える
- 40件のカードをスプレッドシートにし、業種と予算の帯で絞って、20件の提案それぞれに近い案件を選ぶ
- 同じ20件について、手元のAIサービスにカードを貼り付け、施策・結果・反省点のまとめを作らせる
- その業種を長く担当している営業に、選ばれた案件が「思い当たる事例」と合っているかを見てもらう
20件は必ず、その業種を長く担当している人と一緒に見てください。 業種と予算で絞ることが、その人の記憶と合っているかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 担当者が思い当たる事例が上位に並ぶ | 取り込みと検索基盤の構築に進む |
| 条件は近いのに「これは別物」と言われる | カードの項目が足りない。 ターゲットや販路の区分を足して試し直す |
| まとめに施策の提案や結果の予測が混ざる | 指示の書き方で直る。構成は有効 |
2行目は失敗ではなく、担当者が暗黙に見ていた条件が1つ分かったということです。 多いのは「店頭で売るか、ECで売るか」の違いです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 1件のキャンペーンのページが上位を埋める | キャンペーン番号で collapse する。 項目は keyword 型にする |
collapse の inner_hits が使えない | 3.2から。ドメインを3.3以降で作る |
| 言葉の一致と埋め込みのスコアが釣り合わない | RRF で順位を統合する。 尺度をそろえる必要がない |
| 重みの合計が1.0にならない | score-ranker の重みは合計1.0。クエリの数と同じ長さにする |
| グラフの数字が埋め込みでつぶれる | 大きな画像は縮小される。ノート欄に数字を書いてもらう |
| 索引の次元が埋め込みと合わない | Cohere Embed v4 の既定は1,536。output_dimension を明示する |
| 反省点をAIが補う | 「記載なし」とさせる。補われた反省点は結論として広まる |
| まとめに結果の予測が入る | 指示で禁じ、提案書へ写す前に営業が読む |
上の2行が、この構成の失敗のほとんどです。 どちらも「ページ単位で探して、キャンペーン単位で見せる」という同じ要件から出ています。collapse がキャンペーン番号で効いているかどうかで、営業に使われるかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: クライアントの名前と商品、未発表の商品の情報、予算と媒体の配分、KPIの実績、振り返りでの社内の反省点、担当者の名前です。クライアントとの秘密保持の対象になる情報が中心です。
- クライアントごとの公開範囲を検索に反映させる … Amazon OpenSearch Service の細かなアクセス制御では、索引・文書・項目の単位で制限できます。文書レベルのセキュリティは、役割に対応付けたクエリに合う文書だけを検索で返します。 秘密保持の条件が厳しいクライアントの案件は、担当局の役割だけが見られるようにします
- 競合するクライアントの情報を混ぜない … 同じ業種の競合2社を担当しているなら、片方のチームにもう片方の実績が見えないように公開範囲を決めます
- 細かなアクセス制御は、有効にしたあと無効にできない … 有効にするには、ドメインへの通信がすべて HTTPS であること、保存時の暗号化、ノード間の暗号化が必要です。構築の最初に有効にします
- 提案書に載せる書き方を決める … 社内で検索結果を読むことと、ほかのクライアントの実績を提案書に載せることは別です。クライアント名を伏せる、数字を幅で示すなどの書き方を、法務と決めておきます
誤りが起きた場合のリスクは、見せてはいけないクライアントの実績が見えることと、根拠の無い数字が提案書に入ることの2つです。 前者は文書レベルのセキュリティで、後者は引用と人の確認で防ぎます。どちらも構築の最初に決める設計なので、後から足そうとしないでください。
10まず何から始めるか
1週目:業種と目的の区分を決める
営業局とプランニング局で、業種の区分(30程度)と目的の区分(6程度)、予算の帯の決め方を決めます。
2週目:40件のカードと20件の提案で試す
1つの業種の40件を手でカードにし、最近の提案20件で近い案件を選びます。担当者の思い当たる事例と合うかを見て、カードの項目を決めます。
3週目:取り出しの指示を作る
同じ資料を Claude に読ませてカードを取り出し、手で作った40件と比べます。null にすべき実績を計算で埋めていないか、反省点を補っていないかを最優先で見ます。
4週目:振り返りのたびの取り込みを始める
新しく振り返りが終わるキャンペーンから、担当者の確認付きでカードをためます。この時点では検索は業種と予算の絞り込みだけにします。
2か月目: OpenSearch Service のドメインを3.3以降で作り、細かなアクセス制御を有効にして、ページの埋め込みとハイブリッド検索、RRF、collapse を足します。3か月目以降: 過去の資料を業種ごとに一括で取り込み、引用付きのまとめを足します。提案書の類似実績に、目標に届かなかった案件の反省点が載るようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
score-ranker プロセッサーがクエリとフェッチの間で動き、RRF でハイブリッドクエリの結果を1つの順位にまとめること。各クエリのスコアを同じ尺度にそろえる必要がないこと。rank_constant の既定が60で1〜10,000であること。重みが0.0〜1.0で合計1.0、指定しなければ同じ重みになること。2.19で導入されたこと | OpenSearch Documentation: Score ranker processor | 2026-10-06 |
ハイブリッドクエリの collapse が3.1で導入され、項目の値ごとに最もスコアの高い文書だけを返すこと。項目が keyword か数値の型であること。collapse の中の inner_hits が3.2で導入されたこと。集計は collapse の前の結果に対して行われること | OpenSearch Documentation: Collapsing hybrid query results | 2026-10-06 |
| Amazon OpenSearch Service が OpenSearch 3.5、3.3、3.1、2.19 などをサポートしていること。索引・文書・項目の単位のセキュリティを持つこと | Amazon OpenSearch Service: What is Amazon OpenSearch Service? | 2026-10-06 |
| 細かなアクセス制御が索引・文書・項目の単位の制限を提供すること。文書レベルのセキュリティが役割のクエリに合う文書だけを返すこと。有効化に HTTPS・保存時の暗号化・ノード間の暗号化が必要で、有効にしたあと無効にできないこと | Amazon OpenSearch Service: Fine-grained access control | 2026-10-06 |
Cohere Embed v4 がテキストと画像を受け付け、inputs で文字と画像を交互に含む入力を埋め込めること。input_type に search_document と search_query があること。output_dimension が256/512/1,024/1,536で既定1,536であること。1回96件、約20MBが上限で、2,458,624ピクセルを超える画像は縮小、3,136ピクセル未満は拡大されること。PDFはページごとに画像にして情報を隣の文字に入れることが勧められていること | Amazon Bedrock: Cohere Embed v4 | 2026-10-06 |
検索結果ブロック(source・title・content)で自社の文書を渡すと、Claude が引用付きで回答すること。引用の最小単位が content のテキストブロックで、start_block_index で場所を示すこと。引用の有効・無効はリクエスト内で統一する必要があること。Claude API、Amazon Bedrock、Google Cloud で使えること | Claude Docs: Search results | 2026-10-06 |
新しい提案の施策と予算配分、ほかのクライアントの実績をどこまで提案書に載せるかは、営業局と法務で決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0434)についてのご相談はこちらから。
