RAGシステムをClaude Codeで構築する
RAG(Retrieval-Augmented Generation)システムは、外部ドキュメントを検索してLLMの回答精度を高める強力なアーキテクチャです。Claude Codeを使えば、複雑なパイプラインの設計から実装まで、対話しながら効率よく進めることができます。
まずClaude Codeにアーキテクチャを設計させる
Section titled “まずClaude Codeにアーキテクチャを設計させる”いきなりコードを書き始めるのではなく、まず全体設計をClaude Codeに相談しましょう。ターミナルで次のように入力します。
> RAGシステムを構築したい。ドキュメントはPDFで100件程度、 検索精度を重視したい。ベクターDBの選定から実装方針まで提案して。Claude Codeはプロジェクトのコンテキストを読み取りながら、ChromaDBやFAISSなどの選択肢をトレードオフ付きで提示してくれます。「ChromaDBで進める」と返答するだけで、次のステップに移れます。
※コンテキスト: Claudeが一度に記憶・参照できる会話・コードの範囲。上限を超えると古い情報が失われる。
埋め込み生成パイプラインを実装する
Section titled “埋め込み生成パイプラインを実装する”設計が固まったら、実際のコード生成に移ります。Claude Codeに「ChromaDBとOpenAI Embeddingsで埋め込み生成のモジュールを作って」と依頼すると、以下のようなコードを生成・ファイルに書き込んでくれます。
# embedder.py(Claude Codeが生成・配置)import chromadbfrom openai import OpenAI
client = OpenAI()chroma = chromadb.Client()collection = chroma.get_or_create_collection("docs")
def embed_and_store(doc_id: str, text: str) -> None: response = client.embeddings.create( model="text-embedding-3-small", input=text ) embedding = response.data[0].embedding collection.add( ids=[doc_id], embeddings=[embedding], documents=[text] )「テスト用のPDFで動作確認して」と続けると、Claude Codeはテストコードの作成と実行まで自動でやってくれます。
検索と回答生成を繋げる
Section titled “検索と回答生成を繋げる”最後に検索結果をプロンプトに組み込む部分を実装します。Claude Codeに以下のように依頼しましょう。
> ユーザーの質問を受け取り、ChromaDBで類似ドキュメントを 上位3件取得して、Claudeに渡すRAGチェーンを実装して。 取得件数は設定で変えられるようにしてほしい。Claude Codeはファイルの新規作成から既存モジュールへの参照追加まで一括で対応します。実装後に「エラーハンドリングが足りない箇所を指摘して」と聞けば、コードレビューもその場で完了できます。
Claude Codeを使ったRAG開発の最大のメリットは、設計・実装・レビューのサイクルをひとつの対話の中で回せる点です。ぜひ試してみてください。
※プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。