社内の規程集や過去の議事録をもとに、Claudeに質問へ答えさせたい場面があります。このレッスンでは、そのために何が要るかを、資料の大きさに分けて見ていきます。
まず考えること: 資料はコンテキストに収まるか
現行のモデルは、1回のリクエストに大きな文脈を渡せます。数十ページの規程集程度であれば、そのままドキュメントとして渡してしまうほうが、仕組みとしては単純で、壊れる箇所も少なくなります。
Files APIで一度アップロードしたファイルを、document ブロックとして渡す形になります。
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "document",
"source": {"type": "file", "file_id": file_id},
"title": "経費精算規程",
"citations": {"enabled": True},
},
{"type": "text", "text": "出張の際の宿泊費の上限はいくらですか?"},
],
}],
)
citations: {"enabled": True} を付けると、Claudeの答えに、資料のどの箇所を根拠にしたかという情報が添えられます。答えの文が、資料の実在する記述に基づいているかを、利用者側で確かめられるようになります。根拠のない思い込みでの回答を防ぐ、実務上重要な機能です。
資料が数十〜百数十ページ程度に収まる場合。仕組みが単純で、抜け漏れが起きにくい
資料が数千ページ規模、または頻繁に更新されて全部を毎回送るのが非現実的な場合
資料が収まりきらないとき
社内のナレッジベース全体のように、数千ページ規模の資料になると、話が変わります。毎回全部を送るのは、費用の面でも、コンテキストの上限の面でも現実的ではありません。
この場合に必要になるのが、検索拡張生成(RAG)と呼ばれる技術です。考え方はシンプルです。
資料を分割する
章や段落など、意味のまとまりでチャンクに分ける
埋め込みに変換する
各チャンクを、意味を表す数値のベクトルにする
保存する
ベクトルとチャンクの原文を、検索できる形で保存する
質問時に検索する
質問も埋め込みに変換し、近いチャンクを探す
見つけた部分だけ渡す
関連するチャンクだけをコンテキストに入れてClaudeに渡す
このコースでは、この5段階の実装までは踏み込みません。分割の仕方、ベクトルの保存先、検索の精度をどう上げるかは、それぞれが1つの専門領域になるほど奥が深いためです。ここでは、資料の量に応じてこの仕組みが要ることと、その入り口を押さえておきます。
補足
Anthropicは埋め込みモデルを提供していない
上の「02 埋め込みに変換する」の部分は、Anthropic自身のサービスでは提供されていません。公式ドキュメントでも、Voyage AIのような外部の埋め込みプロバイダを選ぶ必要があると案内されています。RAGを実装するときは、Claude APIに加えて、埋め込み用の別サービスと契約することになります。
仕組みを足す前に、費用で立ち止まる
検索の仕組みは、正しく作れば大きな資料からでも的確に答えを引き出せますが、作る手間と保守の手間がかかります。チャンクの分け方が悪いと、意味のつながった文章が途中で切れてしまい、検索結果の精度が落ちます。埋め込みを生成し直すたびに、別サービスへの費用も発生します。
資料の量が増えるたびにいきなり検索の仕組みに手を伸ばすのではなく、「そもそも、その資料は全部渡せる量なのか」を先に確認する価値があります。多くの社内向けの道具は、規程集1本、マニュアル1冊程度であれば、コンテキストに全部入れるだけで十分に動きます。
やってみよう
演習1: コンテキストに収まるか考える
自分がClaudeに読ませたい資料(規程集、マニュアル、過去のやり取りなど)を1つ思い浮かべてください。それはコンテキストに全部入れられる量ですか。ページ数や更新頻度から考えてみてください。
演習2: 収まらない場合の条件
もし収まらない量だった場合、埋め込みプロバイダを選ぶときに何を優先しますか。精度、費用、日本語での検索精度、更新のしやすさなど、自分の用途で外せない条件を挙げてください。
今日のまとめ
3行で振り返ります。
- 資料がコンテキストに収まる量なら、ドキュメントブロックと引用機能で根拠付きの答えを返す仕組みが最も単純
- 資料が収まりきらない規模になったら、チャンク化・埋め込み・検索という技術(RAG)が必要になる
- Anthropicは埋め込みモデルを自前で提供していない。RAGを組むときは外部の埋め込みプロバイダが別途必要になる
次のレッスンでは、費用と応答時間を抑えるキャッシュの仕組みと、考える時間を調整する拡張思考を扱います。
セルフチェック
1. 資料が数十ページ程度に収まる場合に、本文が勧めている方法はどれですか。
2. 資料が数千ページ規模になったときに必要になる技術はどれですか。
3. 埋め込みモデルについて正しい説明はどれですか。