コラム Claude Code入門 更新:

Claude CodeでLLMアプリを開発する方法!LangChain・LlamaIndexを使ったAIアプリ構築

Claude CodeでLLMアプリを開発する方法!LangChain・LlamaIndexを使ったAIアプリ構築
目次 (24項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. LLMアプリ開発の全体像
  4. LangChainとLlamaIndexの使い分け
  5. プロジェクト設計の相談
  6. 4. 2. LangChainを使ったアプリ実装
  7. 基本的なチェーンの実装
  8. カスタムエージェントの実装
  9. 5. 3. LlamaIndexを使ったRAGシステム
  10. 社内文書検索システムの構築
  11. チャンク戦略の最適化
  12. 6. 4. プロンプト管理の設計
  13. プロンプトのバージョン管理
  14. システムプロンプトの最適化
  15. 7. 5. ストリーミングレスポンスの実装
  16. FastAPIでのストリーミング
  17. 8. 6. LLMアプリの評価フレームワーク
  18. RAGasによる評価
  19. LangSmithでのトレーシング
  20. 9. 7. 本番環境での運用設計
  21. レートリミットとコスト管理
  22. フォールバック戦略
  23. 10. 8. まとめ
  24. 11. よくある質問(FAQ)

はじめに

「LLMを使ったアプリを作りたいけど、どのフレームワークを使えばいいかわからない」

「RAGシステムを構築したいが、ベクトルDBの設定が複雑で手が出ない」

「プロンプトエンジニアリングをコードに組み込む方法がわからない」

LLMアプリケーションの開発はLangChainやLlamaIndexなどのフレームワークが整備されて参入障壁が下がっていますが、依然として複雑な概念を理解する必要があります。Claude Codeを使えば、要件を伝えるだけでAIアプリのボイラープレートから実装・評価まで自律的に進められます。

目次

  1. LLMアプリ開発の全体像
  2. LangChainを使ったアプリ実装
  3. LlamaIndexを使ったRAGシステム
  4. プロンプト管理の設計
  5. ストリーミングレスポンスの実装
  6. LLMアプリの評価フレームワーク
  7. 本番環境での運用設計
  8. まとめ

1. LLMアプリ開発の全体像

LangChainとLlamaIndexの使い分け

フレームワーク 得意なケース 主な用途
LangChain 複雑なチェーン・エージェント チャットボット・エージェント・ワークフロー
LlamaIndex ドキュメント検索・RAG 社内文書検索・QAシステム
直接API使用 シンプルな用途 単純な生成タスク

プロジェクト設計の相談

> 以下の要件のLLMアプリを設計してください。

  要件:
  - 社内のSlackメッセージ・Notionドキュメントに基づいてQAに答えるチャットボット
  - 情報源を明示して回答する
  - 会話履歴を保持する
  - 多言語対応(日本語・英語)

  最適なフレームワーク・アーキテクチャ・ベクトルDBを提案してから
  実装を進めてください。

2. LangChainを使ったアプリ実装

基本的なチェーンの実装

> LangChainを使って以下のアプリを実装してください。

  機能:
  - PDFドキュメントを読み込む
  - ユーザーの質問に文書に基づいて回答する
  - 回答の根拠となる箇所を引用する
  - 会話履歴を考慮したフォローアップ質問に対応

  使用するモデル:Claude claude-sonnet-4-6
  ベクトルDB:Chroma(ローカル開発用)
  フレームワーク:LangChain v0.3

カスタムエージェントの実装

> 以下のツールを持つLangChainエージェントを作成してください。

  ツール一覧:
  - web_search:Tavily APIを使ったWeb検索
  - code_executor:Pythonコードを安全に実行
  - file_reader:ローカルファイルの読み込み
  - database_query:読み取り専用のSQLクエリ実行

  要件:
  - ReActフレームワークを使う
  - ツールの実行ログを記録する
  - 最大実行ステップ数の制限(無限ループ防止)
  - 実行コストの追跡

3. LlamaIndexを使ったRAGシステム

社内文書検索システムの構築

> LlamaIndexを使って社内文書検索システムを構築してください。

  データソース:
  - Notionのページ(Notion APIで取得)
  - Confluenceのドキュメント
  - Slack のピン留めメッセージ
  - GitHubのREADMEとWiki

  要件:
  - ハイブリッド検索(ベクトル検索 + BM25キーワード検索)
  - メタデータによるフィルタリング(更新日・作成者・カテゴリ)
  - Re-rankingによる精度向上
  - 差分更新(変更されたドキュメントのみ再インデックス)
  - ベクトルDB:Qdrant使用

チャンク戦略の最適化

> このドキュメントタイプに最適なチャンク戦略を実装してください。

  ドキュメントタイプ:技術仕様書(Markdown形式・見出し構造あり)

  要件:
  - 見出しに基づく階層的なチャンク分割
  - 親子チャンクの関係を保持(Small-to-Big Retrieval)
  - コードブロックは分割しない
  - チャンクオーバーラップの最適化

4. プロンプト管理の設計

プロンプトのバージョン管理

> このアプリのプロンプトを管理しやすい形に整理してください。

  要件:
  - プロンプトをYAML・JSONファイルで管理
  - バージョン管理(Gitで管理)
  - 環境ごとのプロンプト切り替え(開発・本番)
  - プロンプトの変数置換(Jinja2テンプレート形式)
  - A/Bテスト用のプロンプトバリアント管理

  LangSmithまたはPromptLayerとの連携も設定してください。

システムプロンプトの最適化

> このチャットボットのシステムプロンプトを最適化してください。

  現在の問題:
  - 回答が長すぎる
  - 日本語と英語が混在することがある
  - 情報源を正確に引用しないことがある

  改善したプロンプトを3パターン提案してから、
  評価データセットで性能を比較してください。

5. ストリーミングレスポンスの実装

FastAPIでのストリーミング

> FastAPIとLangChainを使って、
  LLMのレスポンスをServer-Sent Events(SSE)で
  ストリーミング配信するAPIを実装してください。

  要件:
  - トークンが生成されるたびにリアルタイムで配信
  - エラー時の適切なハンドリング
  - 接続切断時のクリーンアップ
  - フロントエンド(React)での受信サンプルコードも作成

6. LLMアプリの評価フレームワーク

RAGasによる評価

> このRAGシステムの品質をRAGasで評価してください。

  評価指標:
  - Faithfulness(生成回答の忠実度)
  - Answer Relevancy(回答の関連性)
  - Context Precision(コンテキストの精度)
  - Context Recall(コンテキストの網羅性)

  評価用のテストデータセット(QAペア20件)も作成してください。
  評価結果をダッシュボードで可視化してください。

LangSmithでのトレーシング

> LangSmithのトレーシングをこのアプリに組み込んでください。

  トレースする情報:
  - LLMへのリクエスト・レスポンス
  - 使用トークン数とコスト
  - 各ステップの実行時間
  - エラーのスタックトレース

  本番環境でもサンプリングレートを設定してトレーシングできるようにしてください。

7. 本番環境での運用設計

レートリミットとコスト管理

> このLLMアプリに以下の運用機能を実装してください:

  - ユーザーごとの1日あたりのリクエスト上限
  - トークン使用量のリアルタイム追跡
  - コストアラート(日次・月次)
  - レートリミット超過時の適切なエラーレスポンス
  - 管理者向けの使用量ダッシュボード

フォールバック戦略

> LLMプロバイダーが障害を起こした場合の
  フォールバック戦略を実装してください。

  プライマリ:Claude claude-sonnet-4-6
  フォールバック1:GPT-4o
  フォールバック2:Gemini 2.0 Flash
  最終手段:キャッシュされた類似の回答を返す

  LiteLLMを使ってプロバイダーを抽象化してください。

8. まとめ

LLMアプリ開発でのClaude Code活用ポイント:

  • フレームワーク選択(LangChain vs LlamaIndex)を要件に応じて相談できる
  • RAGシステムのチャンク戦略・ベクトルDB設定を自動最適化
  • プロンプト管理・バージョン管理の仕組みを自動構築
  • 評価フレームワークの設定・実行を自律的に実施

LLMアプリの主要コンポーネント:

  • データ取り込み・インデックス構築
  • 検索・リトリーバル(ハイブリッド検索)
  • 生成・プロンプト管理
  • 評価・モニタリング
  • コスト管理・レートリミット

次回の第29回:データ分析・可視化をする方法では、PandasとMatplotlibを使った分析をClaude Codeで自動化する方法を解説します。

よくある質問(FAQ)

Q. LLMアプリ開発でClaude Codeを使うと、どのモデルが内部で使われますか?

A. Claude Code自体はAnthropicのモデルを使ってコードを生成します。あなたが開発するLLMアプリで使うモデルは、要件に応じて自由に選択できます。Claude・GPT・Gemini・Llama等、どのモデルでも対応します。

Q. RAGシステムの精度が低い場合はどうすれば改善できますか?

A. Claude Codeに「RAGasでの評価スコアが低いです。チャンク戦略・埋め込みモデル・検索方法の改善案を提案してください」と相談することで、体系的な改善策を提案してくれます。

この記事はClaude Code入門シリーズ(第3部)の第28回です。← 第27回:セキュリティ診断第29回:データ分析・可視化 →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る
次の投稿 →