RAG (Retrieval-Augmented Generation)
LLM の知識は学習時点で固定されています。 社内ドキュメント・最新情報 を答えさせるには、検索結果を その場でプロンプトに注入 する必要があります。これが RAG。基本フロー
- ドキュメントを チャンク化 (例: 500 トークンずつ)。
- 各チャンクを embedding (ベクトル化)。
- ベクトル DB に格納 (FAISS / Chroma / pgvector / Pinecone)。
- クエリ時: a. ユーザー質問を embedding 化。 b. 類似度上位 K 件を取得。 c. プロンプトに wzxhzdk:1 として埋め込む。 d. Claude に回答させる。
例 (擬似)
wzxhzdk:0Chunk 設計のコツ
- 意味単位で分割 (見出し境界・段落境界)。
- 重複 (overlap) を 10-20% 入れて文脈切れを防ぐ。
- メタデータ (URL, タイトル, 更新日) を保持して引用に使う。
- 1 チャンクは 200〜800 トークンが目安。
Embedding の選び方
Anthropic は専用 embedding API を提供していないため、外部のものを使います: - OpenAItext-embedding-3-small/large
- Voyage AI (Anthropic 推奨)
- Cohere
- ローカル bge-large, multilingual-e5 等
詳細は次のレッスンで。Hallucination 対策
- 「context に無ければ不明と答える」 を強く指示する。
- 引用を必須にする。
- temperature を低めに (0.0〜0.3)。
- Citations 機能を活用 (第4章参照)。
- 関連度スコアが低いチャンクは閾値で除外。