初めてのLangChain

―LangChainとLangGraphによるAI/LLMアプリケーションの構築

[cover photo]
TOPICS
AI/LLM
発行年月日
PRINT LENGTH
296
ISBN
978-4-8144-0130-7
原書
Learning LangChain
FORMAT
Print PDF EPUB
オンライン学習プラットフォーム
購読可
いますぐ読む
Ebook
4,620円
Ebookを購入する
Print
4,620円

LangChainは、大規模言語モデルを活用したアプリケーション開発を支えるフレームワークです。本書では、プロンプト設計、RAGインデックス構築、会話メモリ、外部ツール連携、自律エージェントについて詳しく説明し、基本理論から実装、テスト、CI/CD、運用監視、継続的改善までの全プロセスをPythonとJavaScriptによる豊富なサンプルコードで丁寧に解説しています。さらに、LangGraphによる高度なエージェントアーキテクチャ、外部データやツールの連携、監視や評価の手法まで網羅しており、社内文書検索、FAQボット、パーソナライズドアシスタント、業務自動化など、さまざまなLLMプロジェクト要件に対応できる内容となっています。

目次

はじめに

1章 LangChainによるLLMの基礎
    1.1 LangChainを設定する
    1.2 LangChainでLLMを使う
    1.3 LLMプロンプトを再利用する
    1.4 LLMの出力形式を指定する
        1.4.1 JSON出力
        1.4.2 出力パーサーを用いたマシンリーダブルな形式での出力
    1.5 LLMアプリケーションの多くのピースを組み立てる
        1.5.1 Runnableインターフェース
        1.5.2 命令型コンポジション
        1.5.3 宣言型コンポジション
    1.6 まとめ

2章 RAGによるデータのインデックス化
    2.1 LLMに関連するコンテキストを渡す
    2.2 テキストを埋め込み(数値表現)に変換する
        2.2.1 LLM登場以前の埋め込み
        2.2.2 LLMベースの埋め込み
        2.2.3 セマンティック埋め込み
    2.3 ドキュメントをテキストに変換する
    2.4 テキストを分割する
    2.5 テキストの埋め込みを生成する
    2.6 埋め込みをベクトルストアに保存する
        2.6.1 PGVectorを設定する
        2.6.2 ベクトルストアを使う
    2.7 ドキュメントの変更を追跡する
    2.8 インデックス化を最適化する
        2.8.1 MultiVectorRetriever:検索と回答生成に用いる情報を切り離す
        2.8.2 RAPTOR:木構造検索のための再帰的抽象化
        2.8.3 ColBERT:埋め込みの最適化
    2.9 まとめ

3章 RAGによるデータとのチャット
    3.1 RAGについて
        3.1.1 関連ドキュメントを検索する
        3.1.2 関連ドキュメントを用いてLLM予測を生成する
    3.2 クエリの変換
        3.2.1 Rewrite-Retrieve-Read
        3.2.2 マルチクエリ検索
        3.2.3 RAG-Fusion
        3.2.4 仮想ドキュメント埋め込み
    3.3 クエリルーティング
        3.3.1 論理ルーティング
        3.3.2 セマンティックルーティング
    3.4 クエリ構築
        3.4.1 テキストからメタデータへのフィルタリング
        3.4.2 テキストからSQLへの変換
    3.5 まとめ

4章 LangGraphを使ってチャットボットにメモリを追加する
    4.1 チャットボットメモリシステムの構築
    4.2 LangGraphについて
    4.3 StateGraphを作成する
    4.4 StateGraphにメモリを追加する
    4.5 チャット履歴を修正する
        4.5.1 メッセージをトリミングする
        4.5.2 メッセージをフィルタリングする
        4.5.3 連続するメッセージをマージする
    4.6 まとめ

5章 LangGraphによる認知アーキテクチャ
    5.1 LLM呼び出しアーキテクチャ
    5.2 チェーンアーキテクチャ
    5.3 ルーターアーキテクチャ
    5.4 まとめ

6章 エージェントアーキテクチャの基本
    6.1 Plan-Doループ
    6.2 LangGraphエージェントを構築する
    6.3 常に最初にツールを呼び出す
    6.4 多くのツールを扱う
    6.5 まとめ

7章 エージェントアーキテクチャの拡張
    7.1 リフレクションアーキテクチャ
    7.2 LangGraphのサブグラフ
        7.2.1 サブグラフを直接呼び出す
        7.2.2 関数でサブグラフを呼び出す
    7.3 マルチエージェントアーキテクチャ
        7.3.1 スーパーバイザーアーキテクチャ
    7.4 まとめ

8章 LLMを最大限に活用するパターン
    8.1 構造化された出力
        8.1.1 中間出力
        8.1.2 LLM出力をトークンごとにストリーミングする
        8.1.3 ヒューマンインザループモダリティ
        8.1.4 マルチタスクLLM
    8.2 まとめ

9章 AIアプリケーションのデプロイ
    9.1 前提条件
        9.1.1 依存パッケージをインストールする
        9.1.2 大規模言語モデル
        9.1.3 ベクトルストア
        9.1.4 バックエンドAPI
        9.1.5 LangSmithアカウントを作成する
    9.2 LangGraph Platform APIを理解する
        9.2.1 データモデル
        9.2.2 特徴
    9.3 LangGraph PlatformでAIアプリケーションをデプロイする
        9.3.1 LangGraph API Configを作成する
        9.3.2 LangGraphアプリをローカルでテストする
        9.3.3 LangSmith UIからデプロイする
        9.3.4 LangGraph Studioを起動する
    9.4 セキュリティ
    9.5 まとめ

10章 テスト評価、モニタリング、継続的改善
    10.1 LLMアプリケーションにおける開発サイクルにおけるテストテクニック
    10.2 設計フェーズ
    10.3 検証フェーズ
        10.3.1 データセットを作成する
        10.3.2 評価基準を定義する
        10.3.3 リグレッションテスト
        10.3.4 エージェントのエンドツーエンドのパフォーマンスを評価する
    10.4 本番運用フェーズ
        10.4.1 トレース
        10.4.2 本番環境でフィードバックを集める
        10.4.3 分類とタグ付け
        10.4.4 エラーのモニタリングと修正
    10.5 まとめ

11章 LLMを使って構築する
    11.1 インタラクティブなチャットボット
    11.2 LLMとの共同編集
    11.3 アンビエントコンピューティング
    11.4 まとめ

索引