Skip to content

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 chromadb
from 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はテストコードの作成と実行まで自動でやってくれます。

最後に検索結果をプロンプトに組み込む部分を実装します。Claude Codeに以下のように依頼しましょう。

> ユーザーの質問を受け取り、ChromaDBで類似ドキュメントを
上位3件取得して、Claudeに渡すRAGチェーンを実装して。
取得件数は設定で変えられるようにしてほしい。

Claude Codeはファイルの新規作成から既存モジュールへの参照追加まで一括で対応します。実装後に「エラーハンドリングが足りない箇所を指摘して」と聞けば、コードレビューもその場で完了できます。

Claude Codeを使ったRAG開発の最大のメリットは、設計・実装・レビューのサイクルをひとつの対話の中で回せる点です。ぜひ試してみてください。

プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。