社内文書チャット(RAG)の答えが正しいかを、10問で確かめました。最初は8問が正解で、合格の基準ちょうどでした。原因を調べて3つ直したところ、10問とも正解になりました。調べ方と、直した順番ごとの効き目をまとめます。
まとめ:Claude Code で AWS に社内文書チャットを作る まとめ
確かめ方
- 登録した文書は、架空の規程3つ(就業規則・経費精算規程・情報セキュリティ規程)
- この3つから、答えがはっきり書いてある質問を10問作った(例:「コアタイムは何時から何時まで?」「PC を紛失したら何時間以内にどこへ報告?」)
- 1問ごとに会話を新しくして、ブラウザの画面で質問した(前の質問の影響を避けるため)
- 正解かどうかの案は Claude が出し、最後は私が判断した
症状:書いてあるのに「情報がない」と答える
外れた2問は、どちらも経費精算規程の質問でした。
| 質問 | 文書に書いてあること | 答え |
|---|---|---|
| タクシーを使えるのはどんなとき? | 22時以降の帰宅、または荷物が多い場合(領収書が必要) | 「検索結果に利用条件の情報がない」 |
| 領収書がない3,000円未満の支出は? | 支払証明書で代用する | 「具体的な情報がない」と答えたうえで、一般論を紹介 |
2問目は出典に経費精算規程が付いていましたが、答えの中身は文書に基づいていませんでした。出典が付いていても、答えが文書どおりとは限りません。
原因:検索の段階で、答えの部分が見つかっていなかった
RAG は「① 質問に近い部分を文書から探す」「② 見つかった部分をもとに AI が答える」の2段階です。そこで Claude に、② の前の ① だけを10問で実行してもらい、上位5件に何が入っているかを調べました。
分かったことは3つです。
- 登録した覚えのない文書が入っていた。 GenU には AWS の利用ガイドの PDF が2つ(大きいほうは約46MB)、サンプルとして最初から入っていて、デプロイのときに自動で登録されていました
- 検索結果の大半が、その PDF だった。 タクシーの質問は、上位5件がすべて PDF で、規程は1件も入っていませんでした。正解した8問も、上位5件の大半は PDF でした
- 答え方の指示が空だった。 RAG チャットの初期の指示(システムプロンプト)は空で、「文書に無ければ無いと答える」といった指示がありませんでした
直し方3つと、それぞれの効き目
同じ10問で、1つ直すごとに確かめました。
| 状態 | 正解 | 外れた2問の様子 |
|---|---|---|
| 直す前 | 8 / 10 | AWS の内容や一般論で答える |
| A. PDF を外す | 8 / 10 | 「お答えできません」「情報がない」 |
| A + B. 答え方を指示する | 8 / 10 | 「登録された文書には記載がありません」(一般論は出なくなった) |
| A + B + C. 検索件数を増やす | 10 / 10 | 2問とも文書どおりに答え、出典も付いた |
A. 関係のない文書を外す
サンプルの PDF 2つを、文書の置き場所(S3)から消して、取り込み直しました。GenU の中のサンプル文書も、自分の3つに差し替えました。次にデプロイし直したときに、PDF がまた登録されないようにするためです。
B. 答え方を指示する
RAG チャットの初期のシステムプロンプトに、次の3点を書きました(GenU の packages/web/src/prompts/claude.ts)。
- 検索結果に書かれている内容だけを根拠にする
- 書かれていなければ「登録された文書には記載がありません」と答える
- 関係のない検索結果は使わない
これで、一般論や AWS の内容で答えることは止まりました。ただ、正解は増えませんでした。答えの部分が検索で見つからなければ、正しく答えようがないからです。
C. 検索件数を増やす
GenU の初期設定では、検索で取ってくる件数は5件です。これを50件にしました(packages/cdk/lambda/utils/bedrockKbApi.ts の numberOfResults)。
最初は30件で試しましたが、タクシーの質問は0件のままでした。PDF を外して文書が少なくなっても、件数が少ないと0〜4件しか返ってきませんでした。50件にすると、2問とも答えの部分が取れました。
S3 Vectors(検索用データの置き場所)は「だいたい近いもの」を探す方式なので、登録が少ないと取りこぼしが出るのではないかと考えています。これは私の推測で、公式の説明では確かめていません。
注意:同じ10問を何度も使った
直す作業の中で、同じ10問を何度も使いました。この10問に合わせた結果になっている可能性があります。別の質問でも確かめるつもりです。
最初からこう頼めばよかった
RAG の答えが外れる原因を調べてください。まだ直さないでください。
まず、答えを作る前の「検索」だけを実行して、上位に何の文書が入っているかを質問ごとに表にしてください。
登録した覚えのない文書が入っていないか、検索件数とシステムプロンプトの初期値も確認してください。
直す案は、1つずつ効き目を確かめられる順番で出してください。
前回:Windows から AWS にデプロイしてつまずいた4つ
次回:AWS の構築を Claude Code に任せるときの線引き

コメント